Nach im ersten Teil die Installation und Grundkonfiguration abgeschlossen wurde, sollen nun auch verschiedene Sensordaten an ioBroker gesendet werden.
Im aktuellen Beispiel wird dies mit Hilfe eines Wemos D1 Mini , der ESPEasy Firmware und dem BME280 Temperatur- und Luftfeuchte-Sensor demonstriert. Zur Übertragung der Daten wird das quelloffene MQTT Protokoll genutzt.
ioBroker MQTT Adapter installieren
Damit die ioBroker Instanz MQTT Daten empfangen kann, muss die Funktionalität erst bereitgestellt werden. Dank der diversen integrierten Adapter ist dies jedoch in nur wenigen Minuten erledigt.
Was ist MQTT?
Message Queuing Telemetry Transport (MQTT) ist ein offenes Netzwerkprotokoll zur Übertragung von Telemetriedaten in Form von Nachrichten zwischen mehreren Geräten. Die Kommunikation findet dabei immer zwischen einem MQTT Client und einem MQTT Broker statt.

Vor allem im IoT Bereich hat sich MQTT in den letzten Jahren immer weiter etabliert. Das liegt einerseits an der einfachen Umsetzung und ressourcenfreundlichen Nutzung, und zum anderen an der großen SmartHome Community und dem Connected Car Umfeld.
Weitere Informationen zu MQTT findet ihr auf Wikipedia und nutzerfreundlich dargestellt bei doubleslash.de.
MQTT in ioBroker aktivieren
Damit die ioBroker Installation als MQTT Broker genutzt werden kann muss diese Funktionalität zunächst aktiviert werden. Dank der vielen integrierten Module ist dies jedoch kein Problem und in kurzer Zeit erledigt.
Als erste Schritt wechselt man dazu im Menü auf der linken Seite in den Reiter „Adapter“. Anschließend findet man den gewünschten MQTT Broker am einfachsten über die integrierte Suchfunktion (Punkt 2).
Die Suche listet nun mehrere Ergebnisse auf. Hier sollte der „MQTT Broker/Client“ ausgewählt werden. Mit einem Klick auf die drei vertikalen Punkte kann der gewünschte Adapter über das Plus-Symbol (Punkt 4) einfach installiert werden.
Nach der erfolgreichen Installation muss die MQTT Instanz noch konfiguriert und gestartet werden. Dies wird im Menüpunkt „Instanzen“ erledigt. Hier können verschiedene Einstellungen für den MQTT-Adapter festgelegt werden.
Wichtig ist vor allem der Adapter-Typ. Hier muss zwingend „Server/Broker“ ausgewählt werden. Außerdem sollte bei der erstmaligen Installation der Haken bei „rejectUnauthorized“ entfernt werden.
Im letzten Schritt wird nun die „mqtt.0“ Instanz mit einem Klick auf „aktivieren“ (Punkt 6 – siehe oben) gestartet.
Die Statusanzeige wechselt nun von grau auf gelb und zeigt einen Fehler bei „verbunden mit mqtt“ an. Dies ist jedoch ganz normal, da noch keine mqtt-Clients aktiv sind.

Damit ist die MQTT Installation abgeschlossen und die entsprechenden Clients können konfiguriert werden.
ESPEasy konfigurieren
Um nun Sensordaten vom Wemos D1 Mini per MQTT an ioBroker zu senden wird die ESPEasy Firmware von letscontrolit genutzt. Diese Firmware ist besonders einsteigerfreundlich und bietet die Möglichkeit diverse Sensoren, auch ohne besondere Programmierkenntnisse, auszulesen.
Hier gibt es eine Installationsanleitung für ESPEasy auf einem Wemos D1 Mini.
BME280 Sensor
Der BME280 Sensor misst nicht nur die Temperatur, sondern gleichzeitig auch Luftfeuchte und den atmosphärischen Luftdruck. Dank des günstigen Preises und der hohen Genauigkeit ist dieser Sensor perfekt für Smarthome Projekte geeignet.
Dank des I²C Protokolls muss der Sensor mit nur 4 Verbindungen an den Wemos D1 Mini angeschlossen werden:
Wemos D1 Mini | BME280 Sensor |
---|---|
3V3 | VIN |
GND | GND |
D1 | SCL |
D2 | SDA |
Sensordaten per MQTT an ioBroker senden
Nachdem die ESPEasy Firmware installiert, und der BME280 Sensor angeschlossen wurde können nun die Sensordaten ausgelesen werden. Dazu sollte als erstes die Weboberfläche des Wemos D1 aufgerufen werden.
Anschließend kann im Menüpunkt „Config“ der richtige Name überprüft werden. Dieser entscheidet später über die Bezeichnung (Topic) der Messwerte in ioBroker. Im gezeigten Beispiel lautet der Name „ESP-IotSpace“.
Danach wird im Menüpunkt „Controllers“ mit einem Klick auf „Add“ der MQTT Broker hinzugefügt.

Folgende Einstellungen müssen dabei zwingend gesetzt werden:
Protocol | HOME Assistant (openHAB) MQTT |
Controller IP | IP-Adresse der ioBroker Instanz |
Enabled | Ja (Haken setzen) |
Anschließend muss nur noch der BME280 Sensor eingerichtet, und für die Übertragung der Daten eingerichtet werden. Hierfür wechselt man in Menüpunkt „Devices“ und fügt über den „Add“ Button einen neuen Sensor hinzu:

Die Einstellungen an den markierten Punkten sind besonders wichtig:
(1) Device | Environment – BMx280 |
(1) Name | BME280 (frei wählbar) |
(1) Enabled | Ja (Haken setzen) |
(2) Altitude | Höhe über dem Meeresspiegel (wichtig für Luftdruckmessung) |
(3) Send to Controller | Haken bei (1) setzen |
(4) Interval | Abstand der Messungen in Sekunden |
Nachdem alle Einstellungen mit einem Klick auf „submit“ gespeichert wurden, sollten die Messwert im „Devices“ Menü zu sehen sein:

Auch die Statusanzeige des MQTT-Adapters in ioBroker sollte nun grün sein und den folgenden Status anzeigen:
Im „Objekte“ Fenster der ioBroker Installation sollten nun ebenso alle Messwerte des BME280 Sensors angezeigt werden:
Der angezeigte Messwert-Name heißt im MQTT-Jargon Topic und ist wie folgt aufgebaut:
ESP-Unit-Name / Sensor-Name / Messwert-Name
Fazit
Die Installation und Konfiguration einer ioBroker-Instanz ist in wenigen Minuten erledigt. Mit der benutzerfreundlichen ESPEasy Firmware können in nur wenigen Minuten verschiedene Sensordaten an ioBroker gesendet und verarbeitet werden.
Der nächste Teil der Smarthome Serie beschäftigt sich mit dem Speichern der Daten in einer InfluxDB und der Auswertung mit Hilfe von Grafana.
Danke für das Tutorial. Magst Du ggf. auch eines machen, das zeigt, wie ich Commands von IOBroker (am liebsten via mqtt) an ESPEasy schicken kann? Um bspw. NeoPixel steuern zu können?