Einführung in MQTT: Alles läuft über den Broker

MQTT eignet sich hervorragend für Sensoren und IoT-Anwendungen. Wir geben eine Einführung in das Protokoll für Machine-to-Machine-Kommunikation.

Artikel von Florian Bottke/seeseekey.net veröffentlicht am
Nicht alle Maschinen brauchen einen Broker, um miteinander zu kommunizieren.
Nicht alle Maschinen brauchen einen Broker, um miteinander zu kommunizieren. (Bild: Pixabay)

Wer Daten von A nach B übermitteln möchte, hat unzählige Möglichkeiten dies zu tun. Je nach Anforderung und Anwendungsfall sieht die ideale Möglichkeit der Datenübermittlung anders aus. Für die Kommunikation zwischen Sensoren und im IoT-Bereich hat das Protokoll MQTT den Standard gesetzt.

Inhalt:
  1. Einführung in MQTT: Alles läuft über den Broker
  2. Wenn die Verbindung plötzlich abbricht
  3. Drei unterschiedliche Qualitätsstufen

Immer dort, wo verteilte Systeme miteinander kommunizieren müssen, eignet sich MQTT. MQTT steht für Message Queue Telemetry Transport und ist architektonisch relativ einfach aufgebaut. MQTT ist Nachrichten-orientiert und zentralisiert.

  • Die MQTT-Architektur (Bild: Florian Bottke, Screenshot: Golem.de)
  • Die Kommunikation zwischen Client und Broker (Bild: Florian Bottke, Screenshot: Golem.de)
  • Das OSI-Modell (Bild: Florian Bottke, Screenshot: Golem.de)
  • MQTTBox unter Mac OS (Bild: Florian Bottke, Screenshot: Golem.de)
Die MQTT-Architektur (Bild: Florian Bottke, Screenshot: Golem.de)

Für MQTT wird ein Broker benötigt, die zentrale Instanz, an welche alle Clients ihre Nachrichten senden und sie von diesem Broker empfangen.

Im Umkehrschluss bedeutet dies, dass sich die Clients untereinander nicht kennen.

Stellenmarkt
  1. Sachbearbeiter (w/m/d) für den IT-Support im Vor-Ort-Service
    KommunalBIT AöR, Fürth
  2. SAP-Projektmanager (d/m/w)
    DEGEWO AG, Berlin-Tiergarten
Detailsuche

Die gesamte Kommunikation läuft über den Broker ab. Die Nachrichten werden nicht einfach wahllos an den Broker geschickt, sondern an ein sogenanntes Topic, ein Thema, zum Beispiel bad/lichtsensor1.

Diese Topics sind hierarchisch aufgebaut und werden wie ein Pfad, mit einem Slash als Trennzeichen, definiert.

Die Topics können von anderen Clients abonniert werden, so dass diese bei einer neuen Nachricht das Topic betreffend informiert werden.

Durch den hierarchischen Aufbau ist es möglich, alle Topics einer bestimmten Hierarchieebene zu abonnieren. So würde der Topic:

  1. bad/#

alle Untertopics von bad abonnieren. Eine weitere Möglichkeit ist, an einer bestimmten Stelle im Pfad das Sonderzeichen Plus zu benutzen:

  1. +/lautsprecher/

In diesem Beispiel würden alle Lautsprecher aller Zimmer abonniert, so wären sowohl bad/lautsprecher als auch wohnzimmer/lautsprecher abgedeckt.

Nach der Verbindung mit einer CONNECT-Nachricht antwortet der Broker mit einer CONNACK-Nachricht. Damit ist die Verbindung etabliert. Der Client abonniert in dem Beispiel (siehe unten) den Topic bad/lichtsensor1. Nun kann der Broker den Client über Nachrichten, die dieses Topic betreffen, informieren.

Wenn eine solche Nachricht eingeht, reagiert der Client, indem er auf dem Topic bad/lautsprecher die Nachricht bzw. den Wert on hinterlässt. Soll die Verbindung später wieder beendet werden, so wird eine DISCONNECT-Nachricht gesendet.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
  • Die MQTT-Architektur (Bild: Florian Bottke, Screenshot: Golem.de)
  • Die Kommunikation zwischen Client und Broker (Bild: Florian Bottke, Screenshot: Golem.de)
  • Das OSI-Modell (Bild: Florian Bottke, Screenshot: Golem.de)
  • MQTTBox unter Mac OS (Bild: Florian Bottke, Screenshot: Golem.de)
Die Kommunikation zwischen Client und Broker (Bild: Florian Bottke, Screenshot: Golem.de)
Wenn die Verbindung plötzlich abbricht 
  1. 1
  2. 2
  3. 3
  4.  


Smolo 20. Jan 2022

So schlimm würde ich das jetzt nicht bezeichnen. Ich bin schon ein großer Freund von...

Bernte 19. Jan 2022

Vielen Dank für diese Liste! Einen SMA Wechselrichter und einen Node Red Pi habe ich...

Zombieanfuehrer 18. Jan 2022

Vielen Dank! :)

FlashBFE 18. Jan 2022

Wie der Artikel schon richtig beginnt, gibt es Protokolle wie Sand am Meer. Und hier wird...



Aktuell auf der Startseite von Golem.de
Raumfahrt
Starliner fliegt nach mehr als zwei Jahren zum zweiten Mal

Nach einem fehlgeschlagenen Testflug, klemmenden Treibstoffventilen und vielen Verzögerungen ist Boeings Starliner erfolgreich abgehoben.
Von Frank Wunderlich-Pfeiffer

Raumfahrt: Starliner fliegt nach mehr als zwei Jahren zum zweiten Mal
Artikel
  1. Entwickler im Ukrainekrieg: Es ist schwierig, aber das Team unterstützt mich
    Entwickler im Ukrainekrieg
    "Es ist schwierig, aber das Team unterstützt mich"

    Bereits im März sprach Golem.de mit zwei IT-Fachkräften aus Kyjiw. So geht es ihnen jetzt, mehr als zwei Monate nach Beginn des Ukrainekriegs.
    Ein Bericht von Daniel Ziegener

  2. Kitty Lixo: Nach Sex mit Mitarbeitern Instagram-Account zurückerhalten
    Kitty Lixo
    Nach Sex mit Mitarbeitern Instagram-Account zurückerhalten

    Laut einer Sexdarstellerin muss man nur die richtigen Leute bei Facebook sehr intim kennen, um seinen Instagram-Account immer wieder zurückzubekommen.

  3. Cloud API: Whatsapp öffnet Plattform für Unternehmen
    Cloud API
    Whatsapp öffnet Plattform für Unternehmen

    In nur wenigen Minuten sollen auch kleine Unternehmen künftig einen API-Zugang zu Whatsapp einrichten können - und das kostenfrei.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Borderlands 3 gratis • Inno3D RTX 3070 günstig wie nie: 614€ • Kingston SSD 2TB günstig wie nie: 129,90€ • MindStar (u. a. Palit RTX 3050 339€) • Samsung Soundbar + Subwoofer 3.1.2 wireless günstig wie nie: 228,52€ • PNY RTX 3080 12GB günstig wie nie: 974€ • Dualsense + 1TB-SSD 176,58€ [Werbung]
    •  /