MQTT

<< Click to Display Table of Contents >>

Navigation:  Komponenten > IoT >

MQTT

MQTT (Message Queuing Telemetry Transport)

 

Message Queuing Telemetry Transport (MQTT) ist ein offenes Netzwerkprotokoll für Machine-to-Machine-Kommunikation (M2M), das die Übertragung von Telemetriedaten in Form von Nachrichten zwischen Geräten ermöglicht, trotz hoher Verzögerungen oder beschränkter Netzwerke. Entsprechende Geräte reichen von Sensoren und Aktoren, Mobiltelefonen, eingebetteten Systemen in Fahrzeugen oder Laptops bis zu voll entwickelten Rechnern. Das MQTT-Protokoll ist auch unter älteren Namen wie „WebSphere MQTT“ (WMQTT), „SCADA-Protokoll“ oder „MQ Integrator SCADA Device Protocol“ (MQIsdp) bekannt. Die Internet Assigned Numbers Authority (IANA) reserviert für MQTT die Ports 1883 und 8883. MQTT-Nachrichten können mit dem TLS-Protokoll verschlüsselt werden.

 

Interessant ist, dass ein MQTT-Server („Broker“) die gesamte Datenlage seiner Kommunikationspartner hält, und so als Zustands-Datenbank benutzt werden kann. So ist es möglich, kleine unperformante MQTT-Geräte mit einem MQTT-Broker zu verbinden, wobei die Geräte Daten einsammeln und/oder Befehle entgegennehmen, während ein komplexes Lagebild nur auf dem MQTT-Broker entsteht und hier oder durch einen leistungsfähigen Kommunikationspartner ausgewertet werden kann. Stelleingriffe können so von einer oder mehreren leistungsfähigen Instanzen an den MQTT-Broker übermittelt und auf die einzelnen Geräte verbreitet werden. Dadurch eignet sich MQTT sehr gut für Automatisierungslösungen und findet im Bereich IoT durch die einfache Verwendung große Verbreitung.

 

MQTT ist ein Client-Server-Protokoll. Clients senden dem Server (“Broker”) nach Verbindungsaufbau Nachrichten mit einem Topic, welches die Nachricht hierarchisch einstuft; zum Beispiel Gebäude/Stockwerk/Raum/Temperatur oder Steckdose/Zimmer/11/Momentanleistung. Clients können diese Topics abonnieren, wobei der Server die empfangenen Nachrichten an die entsprechenden Abonnenten weiterleitet.

 

 
MQTT-Publish-Subscribe

 

 

Nachrichten bestehen immer aus einem Topic und dem Nachrichteninhalt. Nachrichten werden mit einer definierbaren Quality of Service (QoS) versendet: at most once  (0 = die Nachricht wird einmal gesendet und kommt bei Verbindungsunterbrechung möglicherweise nicht an), at least once (1 = die Nachricht wird so lange gesendet, bis der Empfang bestätigt wird, und kann beim Empfänger mehrfach ankommen) und exactly once (2 = hierbei wird sichergestellt, dass die Nachricht auch bei Verbindungsunterbrechung genau einmal ankommt). Außerdem kann mit dem Retain-Flag der Server angewiesen werden, die Nachricht zu diesem Topic zwischenzuspeichern. Clients, die dieses Thema neu abonnieren, bekommen als erstes die zwischengespeicherte Nachricht zugestellt.

 

Beim Verbindungsaufbau können Clients einen „letzten Willen“ in Form einer Nachricht definieren (Testament). Falls die Verbindung zum Client unerwartet verloren geht, wird diese Nachricht publiziert und dabei an die entsprechenden Abonnenten gesendet.

 

 

 

oEisBär MQTT Client

 

 

 

oEisBär MQTT Broker

 

 

 

oEisBär MQTT Bridge