Tech Insights

Protokolle im Blick: MQTT im IoT

Entdecken Sie die Welt von MQTT im IoT anhand seiner Geschichte, Architektur und praktischen Anwendungen. Erfahren Sie, wie MQTT eine effiziente Kommunikation zwischen Geräten mit geringem Overhead und minimalem Stromverbrauch ermöglicht. Lernen Sie seine zentrale Rolle in SCADA-Systemen, in der Gesundheitsüberwachung und bei Umweltsensoren kennen. Werfen Sie einen Blick auf die Zukunft von MQTT inmitten der sich wandelnden IoT-Kommunikationsprotokolle.

TagoIO Team ·
Protokolle im Blick: MQTT im IoT

Die Welt des Internet of Things (IoT) wächst rasant, und eine der Schlüsseltechnologien, die eine effiziente und zuverlässige Kommunikation zwischen IoT-Geräten ermöglicht, ist MQTT, kurz für Message Queuing Telemetry Transport. In diesem Blog betrachten wir MQTT: von seiner Geschichte und Entwicklung über seine Architektur, QoS-Stufen, Topics und Payloads bis hin zu seiner Rolle in IoT-Anwendungen.

Was ist MQTT?

MQTT ist ein leichtgewichtiges, quelloffenes Messaging-Protokoll, das für eine effiziente Echtzeitkommunikation zwischen Geräten entwickelt wurde, besonders in ressourcenbeschränkten Umgebungen. Es wurde Ende der 1990er Jahre von Dr. Andy Stanford-Clark (IBM) und Arlen Nipper (Arcom) entwickelt. MQTT zeichnet sich durch geringen Overhead und minimalen Bandbreiten- und Stromverbrauch aus, was es zur idealen Wahl für viele IoT-Anwendungen macht.

Seit seinen Anfängen hat MQTT in Sachen Geschichte und Entwicklung einen langen Weg zurückgelegt. Ursprünglich wurde es zur Überwachung von Ölpipelines entwickelt, hat sich seither aber zu einem der IoT-Kommunikationsstandards entwickelt. Das Protokoll adressierte den Bedarf an zuverlässigem Messaging mit geringer Bandbreite und niedriger Latenz in entfernten und unzuverlässigen Netzwerken.

Warum MQTT in der IoT-Ära wichtig ist

MQTT ist in vielen IoT-Anwendungen entscheidend, in denen einige wenige oder Millionen von Geräten miteinander verbunden sind. Sein leichtgewichtiger Charakter und seine Zuverlässigkeit machen es perfekt für zahlreiche IoT-Anwendungen, in denen Geräte oft nur begrenzte Ressourcen und eine zeitweise Konnektivität haben. MQTT stellt sicher, dass Daten effizient und sicher zwischen IoT-Geräten und zentralen Systemen übertragen werden.

Außerdem sorgt der geräteunabhängige Charakter von MQTT dafür, dass Geräte unterschiedlicher Hersteller reibungslos kommunizieren und so die Interoperabilität fördern. Die durch MQTT-Topics und -Payloads bereitgestellte gemeinsame Sprache schafft ein standardisiertes Kommunikationsgerüst und erlaubt die Einbindung unterschiedlichster IoT-Geräte in ein zusammenhängendes Ökosystem.

MQTT-Architektur

Client-Server-Modell

MQTT basiert auf einem Client-Server-Modell, bei dem Clients die Geräte oder Anwendungen sind, die über MQTT kommunizieren, während der Server als Broker bezeichnet wird. Der Broker ist dafür zuständig, Nachrichten zu empfangen, weiterzuleiten und an die passenden Clients zuzustellen. Broker bilden das Rückgrat der MQTT-Kommunikation und fungieren als Vermittler, die den Nachrichtenfluss steuern. Clients können sowohl Publisher als auch Subscriber sein und Nachrichten über den Broker senden und empfangen.

Viele IoT-Plattformen bieten einen integrierten MQTT-Broker; ein Beispiel ist TagoIO, wo Sie Ihre MQTT-Geräte einbinden und Skripte zur Datenverarbeitung erstellen, Benachrichtigungen einrichten und diese Daten visualisieren können.

Publish/Subscribe-Kommunikationsmodell

MQTT nutzt ein Publish/Subscribe-Kommunikationsmodell, bei dem Publisher Nachrichten zu bestimmten Topics senden und Subscriber Interesse an bestimmten Topics bekunden. Das entkoppelt Sender und Empfänger und ermöglicht eine besser skalierbare und flexiblere Kommunikation. Eine Wetterstation könnte beispielsweise Temperaturdaten unter “weather/temperature” veröffentlichen, während eine mobile Anwendung dieses Topic abonniert, um Aktualisierungen bei Temperaturänderungen zu erhalten.

Was ist Quality of Service bei MQTT

MQTT bietet drei Quality-of-Service-Stufen (QoS), die die Zustellgarantien für Nachrichten festlegen:

  1. QoS 0 - Höchstens einmal: Diese Stufe garantiert keine Zustellung. Die Nachricht wird einmal gesendet, und der Sender erwartet weder eine Bestätigung noch eine Garantie für die Zustellung. Diese Stufe eignet sich für unkritische Daten, bei denen ein Nachrichtenverlust akzeptabel ist.

  2. QoS 1 - Mindestens einmal: Diese Stufe bietet eine garantierte Zustellung, kann aber zu Duplikaten führen. Die Nachricht wird mindestens einmal gesendet, und der Sender erwartet eine Bestätigung vom Empfänger. Bleibt die Bestätigung aus, sendet der Sender die Nachricht erneut. Diese Stufe ist für kritische Daten geeignet, bei denen ein Nachrichtenverlust nicht akzeptabel ist.

  3. QoS 2 - Genau einmal: Diese Stufe bietet eine garantierte Zustellung ohne Duplikate. Die Nachricht wird genau einmal gesendet, und der Sender erwartet eine Bestätigung vom Empfänger. Bleibt die Bestätigung aus, sendet der Sender die Nachricht erneut. Diese Stufe eignet sich für kritische Daten mit null Toleranz gegenüber Nachrichtenverlust.

Die Wahl der QoS-Stufe hängt von den konkreten Anforderungen der Anwendung ab. Die richtige QoS-Stufe wirkt sich auf die Nachrichtenzustellung aus und beeinflusst die Duplizierung von Nachrichten sowie den Netzwerk-Overhead.

MQTT-Topics und -Payloads

MQTT-Topics und -Payloads sind zwei wesentliche Bestandteile des MQTT-Protokolls. Topics sind wie Kanäle, in die Nachrichten veröffentlicht und aus denen sie abonniert werden. Sie sind hierarchisch aufgebaut und helfen, Nachrichten zu organisieren.

Nachrichten-Payloads enthalten die eigentlich zu übertragenden Daten. Je nach Anforderungen der Anwendung können sie in verschiedenen Formaten vorliegen, etwa JSON, XML oder binär. Das Payload-Format sollte anhand der Bedürfnisse der Anwendung und der verfügbaren Ressourcen gewählt werden.

Ein Blick auf reale Anwendungsfälle mit MQTT

Wenn wir die Effizienz von MQTT in der IoT-Kommunikation betrachten, lohnt sich der Blick darauf, wie sich dieses Protokoll reibungslos in Geräte verschiedener Hersteller wie Dragino, RAK Wireless, Seeed Studio und Khomp integrieren lässt. Sehen wir uns reale Anwendungsfälle an, die die Vielseitigkeit von MQTT über verschiedene IoT-Geräte hinweg zeigen.

  1. SCADA-MQTT-Systeme (Supervisory Control and Data Acquisition): MQTT wird häufig in SCADA-Systeme integriert, um den Echtzeit-Datenaustausch zwischen Feldgeräten und dem zentralen Überwachungssystem zu ermöglichen. Es hilft, Daten von verschiedenen Sensoren und Geräten zu erfassen und zu verwalten, die über eine industrielle Umgebung verteilt sind.

  2. Gesundheitsüberwachung mit tragbaren Sensoren: In Gesundheitsszenarien kommen tragbare Sensoren unterschiedlicher Anbieter zum Einsatz, von denen jeder eigene Überwachungsfunktionen bietet. Unabhängig von der Marke können tragbare Sensoren Vitaldaten unter einem standardisierten Topic wie “health/patient1/vital-signs” veröffentlichen. Die Interoperabilität von MQTT sorgt für eine reibungslose Integration und erlaubt es medizinischem Fachpersonal, Patienten mit unterschiedlichen Sensortypen zu überwachen.

  3. Umweltüberwachung mit verschiedenen Sensoren: Die Umweltüberwachung kombiniert Sensoren mehrerer Hersteller, die Parameter wie Luftqualität, Geräuschpegel oder Strahlungserkennung liefern. Die topicbasierte Kommunikation von MQTT erlaubt es Umweltsensoren, Daten unter gemeinsamen Topics wie “environment/air-quality” oder “environment/noise-levels” zu veröffentlichen. Diese Interoperabilität vereinfacht die Einbindung unterschiedlicher Umweltsensoren in ein umfassendes Überwachungssystem.

Was bringt die Zukunft für MQTT?

MQTT sticht als äußerst vorteilhaftes Kommunikationsprotokoll für IoT-Lösungen heraus und gewinnt als bevorzugte Option an Aufmerksamkeit. Dennoch bietet das weite Feld der IoT-Protokolle verschiedene Alternativen, wobei CoAP ein bemerkenswerter Mitbewerber ist. Ein besonderes Merkmal von CoAP ist seine Fähigkeit, über TCP/IP und UDP zu arbeiten, was es von MQTT abhebt, das überwiegend mit TCP/IP in Verbindung gebracht wird. Die fortlaufende Entwicklung des IoT-Umfelds lässt offen, welches Kommunikationsprotokoll sich am breitesten durchsetzen wird. Während technologische Fortschritte das IoT-Ökosystem weiter prägen, wird das dynamische Zusammenspiel zwischen MQTT, CoAP und anderen Mitbewerbern letztlich darüber entscheiden, welches Protokoll am besten zu den vielfältigen und sich wandelnden Anforderungen von IoT-Anwendungen passt.