MQTT ist ein recht einfaches und gerade im IoT Bereich verbreitetes Protokoll für die Übermittlung von Nachrichten zwischen verschiedenen Endgeräten.

Dieser Beitrag beschreibt die Einbindung von MQTT in ioBroker zum Senden und Empfangen von Nachrichten.

Die Installation des MQTT Brokers Mosca habe ich bereits in einem anderen Beitrag beschrieben.


Installation des MQTT Adapters

Als erstes installieren wir den Adapter MQTT Broker/Client über die Administrationsoberfläche von ioBroker. Auch wenn wir nur den Client benötigen empfehle ich trotzdem diesen Adapter, da er deutlich aktueller ist als der ebenfalls verfügbare Adapter MQTT Client.

Nach der Installation öffnet sich wie gewohnt direkt wieder die Konfigurationsseite der Adapterinstanz.

Hier wählen wir im Reiter Verbindung als Typ Client/subscriber aus und tragen die IP-Adresse und den Port unseres MQTT Brokers, sowie den Benutzernamen und das Passwort für die Verbindung ein.

Im Reiter MQTT Einstellungen sollte bei Subscribe patterns eine mit Komma getrennte Liste der zu empfangenden Topics eingetragen werden. Die Maske für Bekanntgeben von eigenen States empfehle ich ebenfalls so anzupassen, dass nur die States gesendet werden, die man auch senden möchte. Zumindest sollte dies auf mqtt.0.* beschränkt werden, da sonst alle ioBroker States bei Veränderungen gesendet werden. Die Client ID ist in den meisten Fällen gleich dem Benutzernamen für den Login.

Diese Einstellungen bestätigen wir mit Speichern und Schließen.

Anschließend kann die Adapterinstanz mit einem Klick auf den noch roten Play-Button gestartet werden. Kurz darauf sollte der Punkt vor der Instanz grün werden, was eine erfolgreiche Verbindung zum MQTT Broker anzeigt.


MQTT Objekte in ioBroker

Für alle empfangenen Topics legt der MQTT Adapter automatisch Objekte innerhalb der Adapterinstanz an.

Beispiel: Für die Topic esp-stall/sensor/0/value wird das Objekt mqtt.0.esp-stall.sensor.0.value angelegt und der empfangene Wert wird in den aktuellen State dieses Objektes geschrieben.

Beim Senden eines geänderten States erfolgt diese Umschlüsselung genau entgegengesetzt. Aus dem State für mqtt.0.esp-stall.switch.light.set wird die Topic esp-stall/switch/light/set mit dem entsprechenden Wert aus dem State.

Zusätzlich zu den automatisch angelegten Objekten können auch eigene Objekte manuell erstellt werden. Ebenso ist es möglich die automatisch erzeugten Objekte nachträglich nach den eigenen Bedürfnissen anzupassen.