MQTT ist ein leichtgewichtiges Publish-Subscribe Netzwerkprotokoll, das Nachrichten zwischen IOT und IIOT Geräten transportiert. Das MQTT Protokoll läuft normalerweise über TCP/IP. Es ist für Verbindungen mit entfernten Standorten konzipiert, bei denen ein „kleiner Code-Fußabdruck“ erforderlich ist oder die Netzwerkbandbreite begrenzt ist. Das Protokoll ist ein offener OASIS-Standard und eine ISO-Empfehlung (ISO/IEC 20922). Das MQTT Protokoll ist eine ideale Wahl und wird häufig für IIOT Geräte, IOT, Smart Home Systeme und Hausautomatisierungssysteme eingesetzt.
Endknoten mit den Mikrocontrollern ESP8266, ESP32, Raspberry Pi und Arduino kommunizieren mit anderen MQTT Clients der perfekte Anwendungsfall für Maker, Freiberufler und Prototypen.
Wie spielt MQTT eine wichtige Rolle in IOT/IIOT/Smart Home Systemen/Heimautomatisierungssystemen?
Das MQTT Protokoll definiert zwei Arten von Netzwerkeinheiten: einen Nachrichten-Broker und eine Anzahl von Clients. Ein MQTT Broker ist ein Server, der alle Nachrichten von den Clients empfängt und dann die Nachrichten an die entsprechenden Zielclients weiterleitet.
Sogar ein Raspberry Pi, ESP8266, ESP32, Arduino und andere kleine Steuergeräte funktionieren als MQTT Client.
MQTT-Client im MQTT-Protokoll
Ein MQTT Client ist ein beliebiges Gerät (von einem Mikrocontroller bis hin zu einem vollwertigen Server), auf dem eine MQTT Bibliothek läuft und das sich über ein Netzwerk mit einem MQTT Broker verbindet.
Wenn ein Herausgeber neue Daten zu verteilen hat, sendet er eine Kontrollnachricht mit den Daten an den verbundenen Broker. Der MQTT Broker verteilt dann die Informationen an alle MQTT Clients, die sich für dieses Thema angemeldet haben.
Der Herausgeber muss keine Daten über die Anzahl oder den Standort der Abonnenten haben, und die Abonnenten müssen ihrerseits nicht mit Daten über die Herausgeber konfiguriert sein.
MQTT-Broker im MQTT-Protokoll
Wenn ein Broker eine Nachricht zu einem Thema empfängt, für das es keine aktuellen Abonnenten gibt, verwirft der Broker die Nachricht, es sei denn, der Herausgeber der Nachricht hat die Nachricht als zurückgehaltene Nachricht gekennzeichnet. Eine zurückgehaltene Nachricht ist eine normale MQTT Nachricht, bei der das Kennzeichen für zurückgehaltene Nachrichten auf true gesetzt ist. Der Broker speichert die letzte zurückgehaltene Nachricht und die entsprechende QoS für das ausgewählte Topic.
Jeder Client, der ein Topic Muster abonniert, das mit dem Topic der zurückbehaltenen Nachricht übereinstimmt, erhält die zurückbehaltene Nachricht sofort nach dem Abonnieren. Der Broker speichert nur eine aufbewahrte Nachricht pro Thema. Dies ermöglicht es neuen Abonnenten eines Themas, den aktuellsten Wert zu erhalten, anstatt auf die nächste Aktualisierung durch einen Herausgeber zu warten.
Wenn ein Publishing Client zum ersten Mal eine Verbindung zum Broker herstellt, kann er eine Standardnachricht einrichten, die an die Abonnenten gesendet wird, wenn der Broker feststellt, dass der Publishing-Client unerwartet die Verbindung zum Broker unterbrochen hat.
Clients interagieren nur mit einem Broker, aber ein System kann mehrere Broker Server enthalten, die Daten auf der Grundlage der aktuellen Themen ihrer Abonnenten austauschen.
Eine minimale MQTT Kontrollnachricht kann bis zu zwei Byte an Daten umfassen.
Eine Kontrollnachricht kann bei Bedarf fast 256 Megabyte an Daten enthalten. Es gibt definierte Nachrichtentypen, die verwendet werden, um einen Client mit einem Broker zu verbinden und die Verbindung zu trennen, um Daten zu veröffentlichen, um den Empfang von Daten zu bestätigen und um die Verbindung zwischen Client und Server zu überwachen.