Sebastian

Automatisation à la maison II – Programmer vos propres appareils avec ESPHome

Die Qual der Wahl – welche Firmware für die eigenen Nodes?

IoT-Geräte sind seit nun schon einigen Jahren in aller Munde. In der DIY-Szene angekommen sind sie aber spätestens mit dem Aufkommen der ESP8266, des ESP32 und der guten Integration in das Arduino-Ökosystem. Nun kann man mit einfachsten Mitteln seine Geräte internettauglich machen.

Mittlerweile gibt es einige Bibliotheken und Frameworks, die diesen Prozess noch leichter machen und uns viele Probleme abnehmen. Ohne Anspruch auf Vollständigkeit gibt es:

ESPHome bietet ein speziell auf den Home Assistant zugeschnittenes und optimiertes Protokoll an. Zusätzlich gestaltet sich die Programmierung der einzelnen Nodes ähnlich einfach wie die Konfiguration einer Home Assistant Integration.

In diesem Artikel werden Sie deshalb einen Sensor zusammenstellen, programmieren und an Ihren Home Assistant Server einbinden.

Das Projekt

Zeitaufwand: 2h (Einsteiger)

Das benötigen Sie:

Das benötigen Sie außerdem: YAML-Datei (Download)

Die Hardwareplattform: D1-MINI und Sensor

Wegen seiner guten Verfügbarkeit und den vielen Shields habe ich mich für den D1-MINI als Plattform entschieden.

Als Sensor oder Aktor können Sie aus einem großen Katalog von schon integrierten auswählen. Ein nützlicher Kandidat ist der Temperatur und Luftfeuchtigkeitssensor DHT22, den es auch für den D1-MINI als Shield gibt.

Der Zusammenbau ist somit denkbar einfach – man muss nur jeweils die Pinheader auflöten und die Module danach aufeinander stecken.

Das Resultat sehen Sie hier:

Das Einrichten der Entwicklungsumgebung

ESPHome basiert auf PlatformIO und wird auf Github entwickelt.

Haben Sie bereits Python auf Ihrem PC eingerichtet, ist die Installation über pip kinderleicht:

pip3 install esphome

ESPHome wird fleißig weiterentwickelt und viele Features und Sensor-Integrationen landen erst zeitverzögert im offiziellen Packet.

Natürlich können Sie auch einfach die Beta Version testen oder sogar auf dem aktuellsten Commit arbeiten. Die Dokumentation können Sie dann unter der Subdomain “beta” erreichen, z.B. https://beta.esphome.io.

Das Erstellen der Node-Firmware

Nachdem Sie nun ESPHome installiert haben verbinden Sie den D1-MINI mit aufgestecktem Sensorshield mit einem USB-Kabel mit Ihrem PC.

Danach öffnen Sie eine Konsole und erstellen ein Projekt für Ihren Sensor mit:

esphome dht_node.yaml wizard

Sie werden von dem Wizard begrüßt und konfigurieren in wenigen Schritten das Projekt.

Zuerst brauchen Sie einen Namen für den Node. Sie wollen mit dem Node die Daten auf dem Balkon ermitteln, deswegen nennen Sie ihn “dht_balkon”.
Nachdem Sie mit Enter bestätigt haben wählen Sie im Schritt 2 als Controller “ESP8266” “d1_mini” als Board aus. Nun fehlen noch Ihre WLAN-Credentials, die Sie im Schritt 3 eingeben.

Im letzten Schritt können Sie das Passwort für OTA (Over-The-Air) Updates und gleichzeitig die Verbindung mit dem Home Assistant eingeben.

Falls Sie sich bei einem der Punkte noch nicht sicher sind – keine Sorge. Alle Daten können in der Konfigurationsdatei ersetzt und ergänzt werden.

Im nächsten Schritt öffnen wir dht_node.yaml und sehen, dass schon einige Einträge vorhanden sind. Die Dokumentation gibt Auskunft über alle Optionen, die sich Ihnen zu den Elementen bieten.

Nun legen Sie einen Sensorknoten in der Datei für Ihren DHT22 an. Dazu fügen Sie am Ende folgendes hinzu:

sensor:
  - platform: dht
    pin: D4
    model: DHT22
    temperature:
      name: "Temperatur Balkon"
    humidity:
      name: "Luftfeuchtigkeit Balkon"
    update_interval: 60s

Nach dem Speichern führen Sie in der Konsole im Projektordner einfach folgenden Befehl aus:

esphome dht_node.yaml run

Damit installieren sich alle notwendigen Pakete, es wird der Code generiert, kompiliert und auf das Gerät übertragen (Sie müssen beim ersten Mal den Serial Port als Programmiermethode auswählen).

Danach startet Ihr Node, sammelt seine Daten und Sie können sofort die Ausgabe des Datenloggers betrachten!

Sie erweitern das Projekt noch um einen weiteren Sensor, da Sie auch die Signalstärke des WLAN interessiert.

Dazu fügen wir dem Sensor-Knoten folgenden Eintrag hinzu:

  - platform: wifi_signal
    name: "WiFi Signal"
    update_interval: 60s

Dieses Mal werden Sie den Node jedoch nicht mehr via Serial programmieren, sondern Over-The-Air.

Sie können dazu den Node vom PC abstecken und z.B. mit einem USB-Ladegerät mit Strom versorgen.

Danach einfach noch einmal:

esphome dht_node.yaml run

und 2 als Programmiermethode eingeben:

Found multiple options, please choose one:
  [1] /dev/ttyUSB0 (USB2.0-Serial)
  [2] Over The Air (dht_balkon.local)
(number): 2

Sie finden die YAML-Datei oben unter “Das Projekt” diesem Artikel angefügt. Sie müssen nur noch die Passwörter und die WLAN SSID abändern.

Integration in Home Assistant

Sie öffnen wie im ersten Artikel beschrieben die Webseite von Ihrem Home Assistant Server. Danach kann es sein, dass unter Einstellungen > Integration bereits Ihr Node entdeckt wurde! Falls nicht ist das auch kein Problem, denn es kann einige Minuten dauern bis er registriert wird.

Sollten Sie nicht so lange warten wollen, können Sie auch auf das Plus drücken und in der Liste ESPHome auswählen und den Node so registrieren. Die Adresse ist in Ihrem Fall “dht_balkon.local”.

Am Ende werden Sie nah dem API-Passwort gefragt, dass Sie vorher in Ihrem Node festgelegt haben (siehe im Knoten “api”).

Nun erscheinen in der Übersicht alle Daten Ihres Sensors!

Dashboard selbst gestalten

Langsam aber sicher wird Ihr Dashboard unübersichtlich. Es wird Zeit die Aufbereitung der Daten selbst in die Hand zu nehmen.

Dazu drücken Sie oben rechts auf das Symbol mit den drei Punkten und wählen “Benutzeroberfläche konfigurieren” und dann “Ja”.
Danach wählen Sie unten rechts das Plus aus und klicken auf Gauge.
Sie wählen als Entität den “sensor.temperatur_balkon” und als Namen “Temperatur Balkon”.
Da es in Deutschland häufig unter 0 und selten über 100 Grad Celsius wird, ändern Sie am besten noch den Minimalwert auf -20 und den Maximalwert auf 60.

Danach speichern Sie und können das Ergebnis auf der Übersicht betrachten.

Die Konfiguration der Ansicht ist eine Kunst für sich und Sie können im Internet viele Beispiele finden.

In der Dokumentation sind die Details beschrieben, im Cookbook sind einfache Beispiele und Grundlagen und in den Lovelace Demos sind umfangreichere Beispiele live auszuprobieren. Lassen Sie sich inspirieren.

In Teil drei der Serie stelle ich Ihnen einen selbst entwickelten Licht-Controller vor und zeige wie Sie auch ihn in Home Assistant einbinden können.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *