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.

Nachtrag: Seit der ESPEasy-Version R120 lässt sich der Sensor direkt in FHEM einbinden, ohne den Umweg über MQTT machen zu müssen.

Einrichtung für Versionen kleiner als R120 – MQTT

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 😉

Einrichtung ab Version 120 – espBridge und ESPEasy

Solltet die verwendete ESPEasy Version noch nicht auf die aktuelle Version aktualisiert worden sein. Dann solltet ihr dies zunächst nachholen. Dazu einfach die aktuelle Version von der ESPEasy-Homepage downloaden. Stand Februar 2017: R147.

Nachdem man die Hardware (z.B. ein WeMos-Chip) an den Computer angeschlossen hat, kann man über die Datei „Flash.cmd“ den Flash-Vorgang starten und die Version R147 auf den Chip laden. Mehr Infos dazu auf meinem Blog-Beitrag zu ESPEasy.

Loggt man sich nun auf die Web-Oberfläche von ESPEasy ein, kann mit der Konfiguration begonnen werden.

Anstelle MQTT als Protokoll zu verwenden, kann man nun direkt FHEM auswählen.

Unter „Devices“ kann nun der Sensor selbst definiert werden. Mehr Infos dazu weiter oben. Beim verwendeten FHEM-Protokoll ist jedoch der IDX-Eintrag nicht mehr wichtig. Es ist nur notwendig die Readings einen Namen zu vergeben. Diese Namen werden später auch in FHEM für die Readings verwendet.

Einrichtung in FHEM

Die Einrichtung in FHEM erfolgt nun über ein Gateway-Device.

Befinden sich nun ESPEasy-Sensoren im Netzwerk, so werden diese automatisch in FHEM eingerichtet.

Nützliche ESP-Bausteine: WeMos

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

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

5 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

  3. Hallo Daniel,

    ist es auch möglich eine 4-Kanal Relaiskarte über den ESP8266 zu triggern?

    Ich würde gerne meine Leinwand (Rauf/Stop/Runter) über FHEM automatisieren.

    Gruß Marcel

  4. Hallo,

    die Net::MQTT Pakete müssen auf dem Raspberry, auf dem FHEM läuft, installiert werden. In der commandref zu MQTT und MQTT_DEVICE steht das auch so drinnen. Habe mich an die Anleitung hier gehalten. Damit funktioniert es auch.

    Gruß
    Andreas

Schreibe einen Kommentar

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

Hinweis: Das Betreiben dieser Homepage kostet einiges an Zeit und Geld. Ich bitte euch deswegen von eigenen Affiliate-Links abzusehen. Vielen Dank.

*