ESP8266 mit DHT11 und Domoticz-Anbindung

ESP8266 mit DHT11 und Domoticz-Anbindung

Ziel war es, mit einem Temperatursensor (DHT11) und einem ESP8266 NodeMCU Temperatur und Luftfeuchtigkeit auszulesen und diese Daten auszugeben bzw. sie ebenfalls an Domoticz zu übergeben.

Dazu wurde der ESP8266 so programmiert, dass er als Webserver funktioniert und die Daten sowohl als Webseite als auch als JSON-Objekt ausgibt.

Zunächst mussten ein paar Bibliotheken in der Arduino IDE nachinstalliert werden:

  • Unter „Datei“ > „Voreinstellungen“ muss „http://arduino.esp8266.com/stable/package_esp8266com_index.json“ unter „Zusätzliche Boardverwalter-URLs“ eingetragen werden.
  • Anschließend muss über „Werkzeuge“ > „Board“ > „Boardverwalter…“ der ESP8266 nachinstalliert werden.
  • Über den Menüpunkt „Sketch“ > „Bibliothek einbinden“ > „Bibliotheken verwalten…“ müssen die „DHT sensor library“ und die „DHT sensor library for ESPx“ nachinstalliert werden.
  • Abschließend musste noch „ArduinoJson“ nachinstalliert werden.

Sind alle Bibliotheken und das Board installiert, kann mit dem Upload des Sketches fortgefahren werden.

Anschließend konnte der ESP8266 unter der vergebenen IP-Adresse erreicht werden.

Das JSON-Objekt konnte ebenfalls ausgegeben werden.

Im Domoticz Hardware Tab wurde ein neues Gerät hinzugefügt. Hier wurde als Typ „HTTP/HTTPS poller“ gewählt. Die Methode Daten zu holen ist GET und der Datentyp, welcher geholt wird, ist „application/json“. Die URL ist jene, welche das JSON-Objekt bereitstellt, und das Intervall zur Aktualisierung setzen wir zunächst auf 30 Sekunden. Als „Kommando“ wurde das LUA-Script eingetragen, welches die Daten aufbereitet.

Abschließend musste im Hardware Tab ein virtueller Sensor erstellt werden:

Das LUA-Script, welches die Daten aufbereitet, musste ebenfalls erstellt werden. Hierzu wurde sich per SSH auf die Domoticz-Maschine aufgewählt und das entsprechende Script im Verzeichnis ~/domoticz/scripts/lua_parsers angelegt.

Der Inhalt des Scripts ist folgender:

Als idx_temp wird der Geräte Index (IDX) (!) des virtuellen Sensors aus dem Domoticz Geräte Tab verwendet. Der idx_temp legt also fest, welches Gerät upgedatet werden soll. Die Werte für Temperatur und Luftfeuchtigkeit werden aus dem JSON-Objekt extrahiert und der „hum_stat“ definiert den „Humidity Status“ den Domoticz für einen Temperatur/Luftfeuchtigkeitssensor benötigt. Dieser kann vier Werte annehmen:

  • 0=Normal
  • 1=Angenehm
  • 2=Trocken
  • 3=Nass

Und lässt sich relativ einfach ermitteln. Abschließend wird die Funktion „domoticz_updateDevice“ aufgerufen welche als Parameter den Geräteindex, nvalue, und die Werte für Temperatur, Luftfeuchtigkeit und den Luftfeuchtigkeitsstatus mitgegeben bekommt.

Am Ende wurde der Temperatursensor im Temperatur Tab angezeigt:

Ein Gedanke zu „ESP8266 mit DHT11 und Domoticz-Anbindung

Schreibe einen Kommentar

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