In diesem Blogbeitrag wird unser technischer Support, Erik Osse, das Nachrichten-Protokoll MQTT vorstellen. Anschließend zeigt er an einem konkreten Anwendungsbeispiel, wie man den Datenversand über die Webseite unseres Datenkonzentrators MUC.easyplus konfigurieren kann.
MQTT steht für Message Queuing Telemetry Transport.
Es wurde vor allem für eingeschränkte Geräte und Netzwerke mit hoher Latenz und geringer Bandbreite entwickelt. Somit eignet sich MQTT vor allem für die Machine-to-Machine (M2M) Kommunikation. Dadurch können beispielsweise selbst batteriebetriebene Geräte an Orten mit schlechtem oder fast gar keinem Mobilfunkempfang eingesetzt werden und energie- und dateneffizient Messwerte übertragen.
Zum Informationsaustausch verwendet MQTT das Publisher- / Subscriber-Prinzip (Veröffentlicher und Abonnent). Mittelpunkt und Betreiber der Kommunikation ist der Broker. Dieser empfängt die Daten eines Publishers zu einem bestimmten Thema (Topic) und lässt diese Daten allen Abonnenten des Themas zukommen. Dies bedeutet, dass Sender und Empfänger nicht direkt miteinander kommunizieren müssen.
Der MUC.easyplus ist als Datenkonzentrator in diesem Prinzip der Publisher. Dieser erfasst die Verbräuche der angeschlossenen Zähler und veröffentlicht die Daten in einem Thema auf dem Broker. Ein Abonnent dieses Themas könnte zum Beispiel ein Monitoring- oder Energiemanagementsystem sein, welches die Daten weiterverarbeitet.
In meinem Anwendungsbeispiel möchte ich Verbrauchsdaten mit dem MUC.easyplus erfassen und diese in der Microsoft Azure Cloud veröffentlichen. Diese Daten möchte ich mit einem Websocket Client von HiveMQ abonnieren und einfach visualisieren.
Hierzu habe ich mir einen kostenlosen Account bei HiveMQ Cloud erstellt. Anschließend kann man ebenfalls kostenlos und unkompliziert ein neues Cluster erstellen. Ich habe mich für einen Cluster vom Cloud Provider Microsoft Azure entschieden. Unter „Manage Cluster“ kann ich die Informationen zu meinem Cluster einsehen.
Bevor ich nun mit der Konfiguration des Datenversands am MUC.easyplus starte, lege ich noch einen Benutzer MUC.easy mit zugehörigem Passwort im „Access Management“ von HiveMQ Cloud an.
Der Datenversand wird über die Webseite des MUC.easyplus im Tab Server konfiguriert. Beim Konfigurieren des Datenversands fällt mir auf, dass ich nicht die Möglichkeit hatte ein Thema anzulegen. Denn wie bereits in der Einleitung erwähnt, muss man als Publisher immer ein Thema angeben. Dieses ist wie eine Art Pfadangabe auf einem FTP- oder Webserver zu verstehen. Ich muss also angeben, in welchem Thema ich die Daten veröffentlichen möchte.
Nach einer kurzen Recherche habe ich herausgefunden, dass das Thema nicht parametriert werden kann und „my/test/topic“ lautet. Die Konfiguration des Datenversands sieht anschließend wie folgt aus:
Um nun die Daten einzusehen, welche im Thema „my/test/topic“ veröffentlicht werden, bietet HiveMQ einen Websocket Client an. Mit dieser Funktionalität kann mein Browser als MQTT-Client agieren. Das erspart mir in meinem Fall die Einrichtung eines Systems, welches die Daten verarbeitet und anzeigt bzw. visualisiert. Außerdem kann ich sofort sehen, ob der Datenversand wie gewünscht funktioniert. Ich öffne also in meinem Browser den HiveMQ Websocket Client. In das Eingabefeld „Host“ kopiere ich erneut die URL des Brokers „xxx.s1.eu.hivemq.cloud“. Den zu verwendenden Port für den Websocket Client entnehme ich den Verbindungseinstellungen meines Clusters (Connection Settings) und trage diesen ein. Nun trage ich noch den Benutzernamen und das Passwort ein und verbinde mich.
Nachdem nun die Verbindung zum Broker steht, klicke ich unter „Subscriptions“ auf „Add New Topic Subscription“ und kopiere das Topic „my/test/topic“ in das Eingabefeld.
Anschließend werden mir in Echtzeit alle eingehenden Nachrichten in diesem Thema angezeigt.
Mit diesem Blogbeitrag haben wir einen grundlegenden Einblick in das Protokoll MQTT vermittelt und an einem konkreten Anwendungsbeispiel gezeigt, wie einfach der Datenversand per MQTT in die Cloud konfiguriert werden kann.
Wir haben gemeinsam mit anderen Kunden diese Form der Filterung erneut verwendet und angepasst. Hierbei sollten zum Beispiel die Daten an Server 1 per MQTT gesendet werden.
Wenn Sie in kommenden Projekten MQTT verwenden möchten oder generell Fragen zum Datenversand haben, können Sie uns selbstverständlich im Support per Telefon (+49 3677 7613066) oder per E-Mail (support@solvimus.de) kontaktieren.