Funktionsweise, Vorteile & Anwendungsbeispiele

Was ist MQTT?

MQTT ist ein robustes Netzwerkprotokoll für den Datenaustausch zwischen Maschinen, Geräten und anderen Anwendungen. Es basiert auf einem Publish-Subscribe-Modell und hat sich als eines der wichtigsten Protokolle für das Internet of Things (IoT) etabliert. MQTT wird sowohl in der Industrie als auch in der Heimautomatisierung vielfach eingesetzt.

Erklärung

Wie funktioniert MQTT?

MQTT ist ein offenes und ressourcensparendes Netzwerkprotokoll für den Austausch von Nachrichten zwischen Geräten, Maschinen und anderen Systemen. Aufgrund seiner Verlässlichkeit hat es sich als eines der wichtigsten Protokolle für das Internet of Things (IoT) etabliert. Im OSI-Modell ist MQTT auf der Anwendungsschicht angesiedelt.

Im Mittelpunkt der Kommunikation steht bei MQTT der sogenannte MQTT-Broker.

MQTT-Clients schicken Nachrichten zu einem Topic (deutsch: Thema) an den Broker. Der Broker wiederum leitet diese Nachrichten automatisch an alle Clients weiter, die das jeweilige Topic abonniert haben. Damit agiert der MQTT-Broker als zentraler Vermittler zwischen den MQTT-Clients.

Diese Kommunikationsstruktur hat einen wichtigen Vorteil: Der leistungsfähige, oft in der Cloud betriebene Broker verwaltet Sitzungen und Daten, während die beteiligten Client-Geräte lediglich ausgewählte Nachrichten schicken und erhalten. Dadurch sind auch kleinere, weniger leistungsfähige Geräte wie Sensoren, eingebettete Geräte und industrielle Steuerungen in der Lage, an der MQTT-Kommunikation teilzunehmen. Außerdem wird die Netzwerkbandbreite weniger stark ausgelastet.

Zudem definiert MQTT bestimmte Mechanismen zum Umgang mit Verbindungsunterbrechungen (siehe „Wie geht MQTT mit Verbindungsabbrüchen um?“).

MQTT-Kommunikation einfach erklärt

Im Regelfall läuft der Datenaustausch über MQTT folgendermaßen ab:

1. Geräte oder andere Anwendungen übermitteln Nachrichten an einen MQTT-Broker (auch MQTT-Server). Diese Nachrichten sind jeweils mit einem Topic versehen. MQTT-Clients, die auf diese Weise Nachrichten über den MQTT-Broker veröffentlichen, werden auch als Publisher bezeichnet.

2. Geräte oder andere Anwendungen abonnieren ausgewählte Topics bei dem MQTT-Broker. Der Broker sendet neue Nachrichten zu einem Topic automatisch an Clients, welche dieses Topic abonniert haben (Subscriber).

Verschiedene MQTT-Clients kommunizieren demnach nie direkt miteinander, sondern immer über einen zentralen Broker.

Ein MQTT-Broker ist keine Datenbank und speichert im Normalfall keine früheren Nachrichten zu einem Topic. Mithilfe sogenannter „Retained Messages“ können jedoch ausgewählte Nachrichten dauerhaft gespeichert und automatisch an neue Abonnenten eines Topics übermittelt werden.

Was ist ein MQTT-Broker?

Ein MQTT-Broker ist ein Server, der oft in der Cloud betrieben wird. Er übernimmt die Verteilung von Nachrichten an die MQTT-Clients. Dazu muss er die Sitzungen der Clients speichern, d.h. welche Clients welche Topics abonniert haben.

Was ist ein MQTT-Client?

Ein MQTT-Client kann sowohl als Publisher als auch Subscriber auftreten. Ein Subscriber-Client empfängt neue Nachrichten zu einem oder mehreren Topics, die er abonniert hat. Ein Publisher-Client veröffentlicht Nachrichten zu einem Topic, die dann durch den Broker an die Subscriber weitergeleitet werden. Genau genommen ist der MQTT-Client ein kleines Programm, welches auf einem Sensor, Rechner oder einem anderen Gerät installiert ist und die MQTT-Funktionalität ermöglicht.

Was sind MQTT-Topics?

Jede MQTT-Nachricht ist einem bestimmten Topic zugeordnet. Der MQTT-Broker verwaltet Topics und die dazugehörigen Nachrichten in einer hierarchischen Struktur, die einem Dateisystem auf einem PC ähnelt.

Ein Topic könnte z.B. nach dem folgenden Muster aufgebaut sein:

Produktionsstandort/Produktionslinie/Anlage/Messwert

Clients können beliebige Hierarchieebenen eines Topics abonnieren.

Was ist die MQTT-Payload?

Die MQTT-Payload ist der eigentliche Inhalt einer MQTT-Nachricht. Zusätzlich zu diesem Inhalt muss für jede Nachricht ein Topic und ein Quality of Service (QoS)-Level spezifiziert werden.

Was ist die Quality of Service (QoS)?

Die Quality of Service (QoS) einer MQTT-Nachricht definiert, wie oft die Nachricht an die Subscriber eines Topics verschickt wird.

Folgende QoS sind möglich:

“At most once” (0): Die Nachricht wird nur einmal verschickt und es erfolgt keine Bestätigung über die erfolgreiche Zustellung.

“At least once” (1): Die Nachricht wird wiederholt versendet, bis eine Empfangsbestätigung vorliegt.

“Exactly once” (2): Durch einen Austausch zwischen Client und Broker wird sichergestellt, dass die Nachricht genau einmal zugestellt wird. Dies ist die zuverlässigste QoS, erfordert aber eine mehrfache Datenübertragung zwischen Client und Broker und ist daher auch am ressourcenintensivsten.

Wie geht MQTT mit Verbindungsabbrüchen um?

Wenn die Verbindung eines Publisher-Clients zum Broker unerwartet abbricht, kann eine sogenannte „Last Will“-Nachricht zu einem bestimmten Topic an den Broker gesendet werden. Mithilfe dieser können Abonnenten des Topics benachrichtigt werden, dass der Client nicht mehr erreichbar ist.

Ist der Abonnent eines Topics nicht erreichbar, können Nachrichten durch den Broker zwischengespeichert und zu einem späteren Zeitpunkt gesendet werden.

Welche Sicherheitsmaßnahmen gibt es bei MQTT?

Die Berechtigungen von MQTT-Clients werden durch den Broker verwaltet. Hier kann festgelegt werden, welche Clients auf welche Topics zugreifen können. Außerdem ist es üblich, dass Clients sich gegenüber dem Broker mit Benutzernamen und Passwort authentifizieren müssen.

Die übermittelten Daten werden in der Regel mittels TLS verschlüsselt.

Vorteile

Was sind die Vorteile von MQTT?

Der Datenaustausch per MQTT bietet zentrale Vorteile für die IoT-Kommunikation – vor allem dann, wenn kleinere Geräte oder begrenzte Netzwerkressourcen vorhanden sind.

Geringe Netzwerkauslastung:
MQTT ist ein leichtgewichtiges und effizientes Protokoll. Datenpakete (Header) sind schlank, da MQTT ein binäres Nachrichtenformat verwendet (HTTP beispielsweise nutzt ein textbasiertes Nachrichtenformat).

Kommunikation über instabile Netzwerke:
Aufgrund der geringen Netzwerkauslastung (siehe oben) und den Mechanismen zum Umgang mit Verbindungsabbrüchen eignet sich MQTT auch für den Datenaustausch in unzuverlässigen Netzwerken.

Geringe Anforderungen an Geräteressourcen:
Die schlanken Datenpakete, die verteilte Client-Server-Struktur und die Möglichkeiten zum Umgang mit Verbindungsabbrüchen ermöglichen einen zuverlässigen Datenaustausch mit ressourcenärmeren Geräten wie z.B. Sensoren.

Skalierbarkeit:
Da der Nachrichtenaustausch per MQTT über einen zentralen Broker stattfindet, können prinzipell jederzeit weitere Geräte als Clients integriert werden. MQTT-Broker selbst sind oft in der Cloud angesiedelt und sehr leistungstark.

Sicherheit:
MQTT unterstützt sowohl die Authentifizierung von Kommunikationsteilnehmern als auch Verschlüsselungsmechanismen wie TLS.

Einfachheit:
Vor allem auf Client-Seite ist MQTT sehr einfach zu implementieren und zu benutzen.

Anwendungsbeispiele

Wo wird MQTT eingesetzt?

Die Einsatzgebiete von MQTT sind äußerst vielfältig. Die Kommunikation über MQTT zeichnet sich durch ihre geringe Netzwerkauslastung sowie die geringen Anforderungen an Systemressourcen beteiligter Geräte aus (siehe auch „Was sind die Vorteile von MQTT?“).

Deshalb wird das Protokoll vor allem dort eingesetzt, wo kleinere Geräte zuverlässig Daten austauschen sollen. Für das Internet of Things (IoT), Industrial Internet of Things (IIoT) und Edge Computing ist MQTT daher eines der wichtigsten Protokolle.

In vielen Fällen werden mithilfe von MQTT Daten zwischen Geräten und Cloud-Umgebungen übermittelt. So integrieren z.B. Cloud-Umgebungen wie Microsoft Azure und Amazon Web Services eigene MQTT-Broker, um MQTT-Daten von IoT-Geräten zu verarbeiten.

Zu den wichtigsten Anwendungsbereichen von MQTT gehören die folgenden:

  • Industrielle Produktion: Datenaustausch mit Produktionsanlagen (siehe auch Edge Computing)
  • Logistik: Tracking von Gütern und Lagerbeständen
  • Gesundheitswesen: Kommunikation mit medizinischen Geräten
  • Energieversorgung: Überwachung von Energieverbräuchen und Stromnetzkomponenten
  • Fahrzeugvernetzung: Überwachung von Fahrzeugen und Kommunikation mit Verkehrssystemen
  • Finanzdienstleistungen: Echtzeit-Datenfeeds und Kommunikation zwischen Handelsplattformen
  • Landwirtschaft: Überwachung von Geräten, Bewässerungssystemen und Umweltbedingungen
  • Sicherheitssysteme: Einsatz in Überwachungskameras und Alarmsystemen

MQTT eignet sich insbesondere für Umgebungen, in denen Edge Computing und Cloud Computing miteinander kombiniert werden sollen. Daten von Edge-Geräten können unter Verwendung von MQTT an zentrale Cloud-Plattformen übermittelt werden.

MQTT für die Produktion

MQTT-Kommunikation mit manubes

Auch manubes, unsere Cloud-Plattform für digitales Produktionsmanagement, nutzt MQTT zur Kommunikation mit industriellen Maschinen, Geräten und Cloud-Plattformen.

manubes kann als Subscriber an einen MQTT-Broker angebunden werden und dadurch Zugriff auf verschiedenste Datenquellen erhalten – darunter z.B. Sensoren, Steuerungen und andere Geräte. Diese Daten lassen sich mit manubes nicht nur in Form von Datenmodellen speichern und strukturieren, sondern auch interaktiv und in Echtzeit visualisieren.

Umgekehrt ist manubes als Publisher in der Lage, Daten an Cloud-Plattformen wie Microsoft Azure zu senden, welche einen MQTT-Broker integrieren.

Die oben genannten Anwendungsfälle und viele weitere Szenarien lassen sich mit manubes im Rahmen automatisierter Workflows umsetzen. Im Zusammenspiel ermöglichen die manubes-Features eine Entwicklung und Verwaltung vollumfänglicher Industrie-Anwendungen auf No-Code-Basis (siehe auch Citizen Development).

Digitales Produktionsmanagement in der Cloud

Mit der Cloud-Plattform manubes können Produktionsprozesse gezielt automatisiert und sämtliche Bereiche einer Produktion in Echtzeit visualisiert werden.

Die manubes-Plattform bietet weltweiten Zugriff per Webbrowser, eine intuitive Bedienung und maximale Sicherheit für Produktionsdaten.

Lernen Sie manubes kennen!

manubes bringt das industrielle Produktionsmanagement in die Cloud: Unsere innovative Plattform bietet spezialisierte Werkzeuge zur Anbindung von Produktionssystemen, Verwaltung und Visualisierung von Produktionsdaten sowie zur Automatisierung von Produktionsprozessen. manubes-Nutzer profitieren von einer leistungsfähigen Infrastruktur, weltweitem Zugriff und maximaler Sicherheit.