Seit Dezember 2017 unterstützt AnyViz das MQTT Protokoll um Daten, von beliebigen IoT-Geräten, in unser Cloud-Portal zu übertragen. Wir möchten diesen Blogbeitrag nutzen um das Protokoll näher zu erklären und die Vor- und Nachteile aufzuzeigen.
MQTT ist ein offenes Protokoll, welches für die Übertragung von Daten zwischen Maschinen (M2M) konzipiert wurde. Da es recht einfach zu implementieren ist, wird es von vielen Endgeräten unterstützt. Die zu übertragenden Daten werden in sogenannten Topics (Themen) organisiert, welche hierarchisch gegliedert werden können:
- Maschine1/Antrieb/Status
- Maschine1/Antrieb/Geschwindigkeit
- Maschine2/Temperatur
Der Nachrichteninhalt (oder auch Payload genannt) ist im Protokoll nicht spezifiziert. Häufig wird der Inhalt in Form eines UTF8-Strings übertragen, welcher entweder den Wert in Klartext oder ein komplexes Objekt in Form der JSON-Notation enthält. Das Übertragen von Werten im Binärformat ist ebenso üblich.
Für den Datenaustausch via MQTT wird ein sog. Broker (Vermittler) benötigt. Zu diesem Broker können sich entsprechende Clients verbinden und Daten bereitstellen oder abonnieren. Detailliertere Informationen können in der Spezifikation des Protokolls nachgelesen werden.
MQTT bei Anyviz
Das Team von AnyViz ist stets bestrebt, den Umgang mit Daten und Protokollen so einfach wie möglich zu gestalten. Aus diesem Grund dient der AnyViz-Server selbst als Broker. Sobald ein MQTT Gerät erfolgreich mit einem Kundenprojekt verknüpft ist, erscheinen automatisch alle Topics, die vom Endgerät zur Verfügung gestellt werden. Besonders komfortabel gestaltet sich die Handhabung von JSON-Objekten. Diese werden von AnyViz automatisch erkannt und werden übersichtlich dargestellt. Wie einfach die Ankopplung via MQTT an AnyViz erfolgt, ist in unserer MQTT-Dokumentation beschrieben.
Vorteile des MQTT Protokolls
- Sehr weite Verbreitung aufgrund der geringen Komplexität
- Die zu übertragende Datenmenge ist relativ gering, da das Protokoll selbst sehr schlank ist
Nachteile des MQTT Protokolls
- Da der Nachrichteninhalt nicht spezifiziert ist, müssen Sender und Empfänger zunächst eine Notation aushandeln. Dazu ist technisches Wissen und nicht zuletzt ein gewisser Konfigurationsaufwand erforderlich
- Der Funktionsumfang beschränkt sich auf das Senden und Empfangen von Daten. Funktionen, wie das Übertragen von gepufferten Daten nach Verbindungsausfall oder das Routen von Webseiten, wie sie im AnyViz-Protokoll zur Verfügung stehen, sind nicht möglich
Beispiele von MQTT Endgeräten
Nahezu jedes IoT-Gateway unterstütz auch das MQTT Protokoll. Exemplarisch kann hier der IoT-Router INSYS icom MRX genannt werden, ein von uns auf Kompatibilität getestetes Gerät. Für viele SPS Plattformen stehen Bibliotheken für die MQTT-Kommunikation zur Verfügung. So können selbst Siemens Steuerungen über eine quelloffenen Bibliothek darüber kommunizieren.