SmartHome Teil 2 – ESPEasy Sensordaten an ioBroker senden

BME280 Sensordaten mit MQTT an ioBroker senden

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.

ioBroker MQTT

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).

ioBroker MQTT aktivieren

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.

ioBroker MQTT Einstellungen

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.

MQTT Status Fehler ioBroker

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 BME280 Sensor
Wemos D1 MiniBME280 Sensor
3V3VIN
GNDGND
D1SCL
D2SDA

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.

ESPEasy MQTT Konfiguration

Folgende Einstellungen müssen dabei zwingend gesetzt werden:

ProtocolHOME Assistant (openHAB) MQTT
Controller IPIP-Adresse der ioBroker Instanz
EnabledJa (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:

ESPEasy Sensor Konfiguration

Die Einstellungen an den markierten Punkten sind besonders wichtig:

(1) DeviceEnvironment – BMx280
(1) NameBME280 (frei wählbar)
(1) EnabledJa (Haken setzen)
(2) AltitudeHöhe über dem Meeresspiegel (wichtig für Luftdruckmessung)
(3) Send to ControllerHaken bei (1) setzen
(4) IntervalAbstand der Messungen in Sekunden

Nachdem alle Einstellungen mit einem Klick auf „submit“ gespeichert wurden, sollten die Messwert im „Devices“ Menü zu sehen sein:

ESPEasy BME280 Sensordaten

Auch die Statusanzeige des MQTT-Adapters in ioBroker sollte nun grün sein und den folgenden Status anzeigen:

ioBroker MQTT Status

Im „Objekte“ Fenster der ioBroker Installation sollten nun ebenso alle Messwerte des BME280 Sensors angezeigt werden:

ioBroker MQTT Messwerte

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.

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.