ESP Easy Sensoren in FHEM einbinden

Mit ESP Easy lassen sich Sensoren schnell und ohne Programmierkenntnisse konfigurieren. Es steht eine große Anzahl an Devices zur Verfügung. Ein kleines Problem gibt es jedoch. Um die Sensordaten auszulesen, muss man auf die Weboberfläche jedes einzelnen Sensors gehen. Sehr komfortabel klingt das nicht. Da liegt es doch nahe, die Sensordaten an FHEM zu senden. In diesem Beitrag erkläre ich euch, wie ihr eure ESP Easy-Sensoren in FHEM einbindet. Verwendet wird dazu das MQTT-Protokoll.

Vorbereitung auf dem Raspberry Pi

Damit der Raspberry mit dem MQTT-Protokoll umgehen kann, muss das entsprechende Paket installiert werden. Folgende Erklärung bezieht sich auf den MQTT-Broker „Mosquitto“. Für die Installation muss zuerst der Paket-Sanierungs-Key importiert werden:

Nun kann die Paketliste heruntergeladen werden.

Vor dem eigentlichen Installieren sollten nun die Updateinformationen aktualisiert werden:

Nun kann mit dem eigentlichen Installieren von „Mosquitto“ begonnen werden:

Die Client-Befehle und die Python-Unterstützung werden direkt mitinstalliert. Ob die Installation erfolgreich war, kann man mit folgendem Befehl testen:

Mosquitto wird nun nach jeden Neustarten des Raspberrys automatisch mit gestartet. Gesteuert kann Mosquitto über folgende Befehle:

Test von Mosquitto

Um sich etwas mit dem MQTT-Protokoll vertraut zu machen, kann man einen kleinen Test durchführen. Dazu werden zwei SSH-Verbindungen zum Raspberry aufgebaut. Das eine Fenster dient zum Senden von MQTT-Topics (Nachrichten). Das zweite Fenster soll die gesendeten Nachrichten anzeigen.

Das erste Fenster wird auf „zuhören“ gesetzt:

In diesem Fenster wird ab sofort auf Nachrichten gelauscht, die mit dem Präfix „Test/“ abgesendet wurden. Im zweiten Fenster kann nun eine Nachricht gesendet werden:

Mosquitto Server

Mit dem „Temp“ lässt sich die Herkunft der Nachricht noch etwas einschränken. Zum Beispiel kann der Sensor 1 mit „/Temp1“ senden und der zweite Sensor mit „/Temp2“. In diesem kleinen Beispiel jetzt relativ uninteressant, aber später in Verbindung mit FHEM sehr nützlich.

Im Fenster 1 sollte nun die gesendete Nachricht angezeigt werden:

Mosquitto Client

Konfiguration von ESP Easy

Damit ESP Easy nun seine Werte an den MOSQUITTO-Broker auf den Raspberry sendet, sind einige Konfigurationen notwendig. Zuerst muss auf der Config-Seite das Protokoll „PiDome MQTT“ eingestellt werden. Die „Controller IP“ ist auf die IP-Adresse des Raspberrys zu setzen. Der MQTT-Brocker hört auf den Port 1883. Mit „Sensor Delay“ lässt sich der Intervall einstellen in Sekunden, in der Daten gesendet werden sollen. Des Weiteren ist es wichtig, dass eine einmalige individuelle „UnitNr“ vergeben wird.

EasyESP Config FHEM

Unter Devices muss nun der Sensor selber konfiguriert werden. Ich tue dies am Bespiel eines WeMos-DHT22-Sensors (Device: Temperature & Humidity – DHT). Der Sensor ist an Pin GPIO-2 angeschlossen. Der DHT Type ist entsprechend auf DHT 22 eingestellt. Der Name kann frei gewählt werden. Wichtig ist jedoch der „IDX/VAR“ Eintrag. Dieser muss einmalig und eindeutig sein. Mit dieser Nummer werden später die Sensordaten ausgelesen. Des Weiteren sollten die „Value Namen“ so angepasst werden, dass man erkennt, welche Werte dahinter stecken. Diese werden später gebraucht, um die Werte in FHEM anzeigen zu lassen.

WeMos DeviceDHT EasyESP

Bevor man mit dem Einrichten unter FHEM beginnt, sollte man unter „Tools“ in die Advanced-Einstellunge gehen. Hier sieht man unter „Publish Template“ die Syntax mit der die Daten gesendet werden.

EasyESP Advanced

Die „id“ ist die „IDX/Var“ die dem Sensor unter „Devices“ zugewisen wurde. Der „valname“ beschreibt den Namen des Sensorwertes.

Sollten alle Einstellungen korrekt sein, kann man mit folgendem Befehl den „Verkehr“ beobachten:

Sobald der Sensor Daten sendet werden diese angezeigt. Hier erkennt man nun sehr gut den Syntax des Sensors.

MOSQUITTO Log

In diesem Fall sendet der Sensor die Werte mit folgendem Syntax:

Diese sind später wichtig für Konfiguration unter FHEM. Mit ihr werden die Readings definiert.

Einrichtung in FHEM

Der Sensor sendet nun fleißig seine Daten ins Netzwerk. Diese werden vom MQTT-Broker auf dem Raspberry empfangen. Diese Nachrichten können wir nun in FHEM mitlesen und als Readings definieren.

Dazu wird erstmal der MQTT-Broker als Device definiert. Er bildet das Bindeglied zwischen dem MQTT-Broker auf dem Raspberry und der FHEM-Installation.

Die IP-Adresse ist der Adresse des Raspberrys auf dem Mosquitto eingerichtet ist.

MosquittoBroker FHEM

Nachdem der Broker definiert wurde, kann man sich an das Definieren des Sensors selber machen. Dieser wird als MQTT-Device definiert:

Der Name „WeMos_WZ“ kann beliebig angepasst werden. Damit das Device nun die Sensorwerte empfängt müssen noch einige Attribute hinzugefügt werden.

Das IODev entspricht den oben definierten MQTT-Broker. Die beiden subscribeReadings dienen dazu, die gesendeten MQTT-Nachrichten als Reading anzuzeigen. Dabei kann der Name des Readings „subscribeReading_NAME“ beliebig gewählt werden. Der anschließend angegebener Syntax muss jedoch dem entsprechend, welcher unter ESP Easy Eeangegeben wurde. Das stateFormat kann natürlich je nach Wunsch angepasst werden.

MQTT Device EasyESP WeMos FHEM

Die Sensordaten werden nun über den MQTT-Broker auf dem Raspberry an die FHEM-Installation gesendet. So lassen sich auch die kompakten WeMos-Sensoren leicht in FHEM einbinden. In meinem Alltagseinsatz haben die WeMos-Sensoren immer mehr die MySensors-Sensoren abgelöst. Ihre kompakte Bauweise und der schnelle Zusammenbau haben mich überzeugt. Des Weiteren laufen sie auf Dauer zuverlässiger. Bei meinen MySensors-Sensoren kommt es alle paar Wochen zu einem „einfrieren“ der Sensoren, der nur durch einen reboot des Sensors behoben werden kann. Ich bin gespannt was uns WeMos in der Zukunft noch an Sensoren bietet und bleibe diesbezüglich am Ball 😉

Nützliche ESP-Bausteine: WeMos

Relay Shield für WeMos D1 Mini Arduino, NodeMCU, ESP8266
  • kompatibel mit WeMos D1 Mini
  • bis zu 10 A bei maximal 277 V AC (12 A bei maximal 125 V AC)
  • perfekt zur Heimautomatisierung geeignet
WeMos D1 mini V2 ESP 8266 Node MCU NodeMCU Lua Arduino WiFi...
  • Verbesserungen: 1. Verwendung eines BRT (Bias Resistor Transistor), einfacher zu flashen. / 2. 30% vergrößerte Sendefläche der Antenne
  • Mirco USB Port zur Spannungsversorgung und zum Flashen
  • Äußerst kleine Abmessungen - Breadboard kompatibel
Micro SD Karten / TF Karten Shield für WeMos D1 Mini...
  • kompatibel mit WeMos D1 Mini
  • kann direkt auf das WeMos D1 Mini Grundmodul aufgesteckt werden

Letzte Aktualisierung am 3.12.2016 / Affiliate Links / Bilder von der Amazon Product Advertising API

3 Kommentare zu “ESP Easy Sensoren in FHEM einbinden

  1. Hi, eine kurze Frage

    ist in deinem Beispiel die MQTT Instanz und die FHEM Installation auf dem gleichen Gerät?
    Meines Wissens sind zusätzlich noch CPAN Pakete zu installieren damit das MQTT Modul in FHEM läuft.

    Mein Problem Aktuell ist das ich eine MQTT Instanz auf einem separaten Server habe und ich es nicht hin bekomme das sich das FHEM Modul damit connected.

    • Hallo Alec,
      bei mir läuft die MQTT-Instanz zusammen mit FHEM auf dem selben Raspberry.
      Von den Paketen CPAN habe ich bisher noch nichts gehört und benutze diese auch nicht. Ich habe mich aber mal im Internet umgeschaut. Einige Anleitungen (z.B. die von wenzlaff.de) nutzen diese. Vielleicht funktioniert eine Kommunikation zwischen zwei Raspberrys über MQTT nur mit diesen CPAN-Paketen. Am besten probierst du es einfach mal aus.
      Gruß Daniel

  2. Hallo Daniel, ist es denn möglich, die Kommunikation ereignisbasiert zu modellieren? Möchte gerne einen Magnetsensor installieren, der nur beim Wechsel zwischen 1/0 an FHEM sendet.

    Gruß Flo

Schreibe einen Kommentar

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

*