MQTT: Das Protokoll, auf dem IoT basiert
Das Internet der Dinge ist heutzutage in aller Munde. Wenn es nach der Industrie geht soll am besten jedes Gerät irgendwie vernetzt sein. Und auch im kleineren Umfeld wird die Vernetzung von Kleinstgeräten immer interessanter, da Mikrocontroller wie Arduino oder Raspberry Pi immer günstiger werden und somit ganz billige Geräte zum Messen und übertragen von Sensordaten ermöglichen.
Man stelle sich nun Milliarden kleiner Geräte vor, die Sensordaten messen und ebenso zahlreiche weitere Geräte, die Interesse an eben diesen gemessenen Daten haben. Schnell wird klar, dass nicht jedes kleine Gerät tausende von anderen Geräten mit Informationen versorgen kann oder Geräte beliebig oft Daten anfordern können. Und hier kommt MQTT ins Spiel.
MQTT oder auch Message Queuing Telemetry Transport ist ein sogenanntes Lightweight-Protokoll das Informationen zwischen Geräten und Systemen transportiert und dabei möglichst wenig Übertragungsdaten fordert. Bei den Unmengen von Informationen die künftig zwischen physischen Geräten untereinander ausgetauscht werden, ist dies ein nicht zu verachtender Faktor. Laut Ericsson werden im Jahr 2020 bereits 50 Milliarden Geräte über das Internet verbunden sein. Für alle kleinen Geräte ist MQTT daher das Protokoll der Wahl.
Das MQTT Protocol wurde bereits im Jahr 1999 zur Überwachung einer Ölpipeline entwickelt. Das Ziel war, Sensordaten mit möglichst wenig Bandbreite und Batteriestrom über eine Satellitenverbindung zu übertragen. Jedes Gerät hat die gemessenen Daten exakt einmal versendet und eben nicht an jeden Computer der diese Daten abgreifen wollte. Möglich macht dies ein MQTT Broker, der Daten von Geräten einmalig empfängt und umgehend an andere Geräte, so genannte MQTT Clients, weiterleitet. Damit jedes Gerät auch nur die Daten erhält die für das Gerät relevant sind, werden so genannte Topics abonniert.
Im Kleinen lässt sich dies so beispielhaft darstellen: Ein MQTT Client wie ein Raspberry Pi misst und sendet Daten als Publisher zu einem bestimmten MQTT Topic zum MQTT Broker, zum Beispiel „Wohnzimmer/Temperatur“. Ein anderer MQTT Client wie zum Beispiel ein Smartphone hat das Topic als Subscriber abonniert und bekommt dann vom Broker die Nachricht mit dem neuen Temperaturwert direkt weitergeleitet. Daten die ein Gerät nicht abonniert hat, empfängt es auch nicht. Der Unterschied zu üblichen Internetprotokollen ist eben, dass die Daten nicht immer wieder auf Verdacht nach Änderung aktiv abgerufen werden müssen, sondern nur dann direkt weitergeleitet werden, wenn es auch wirklich etwas Neues gibt.
Für wen sich das nun interessant anhört, dem sei das MQTT Tutorial von HiveMQ nahegelegt. Dort finden sich neben einer Erklärung auch direkt einige einfache Code-Beispiele, wie sich das Ganze für den privaten aber auch geschäftlichen oder industriellen Bereich schnell realisieren lässt.