Smart Home für Tüftler: Heimautomatisierung mit Home Assistant und ESP

Wer sein Zuhause mit ein wenig Elektronik intelligenter machen möchte, hat die Wahl zwischen den Lösungen vieler Anbieter. Unterschiede zwischen den verschiedenen Smart-Home-Systemen bestehen - wie könnte es anders sein - in Komfort und Preis. Die hier vorgestellte Lösung Home Assistant, im Zusammenspiel mit ESPHome, ist eine der günstigsten, aber der Offenheit wegen auch leistungsfähigsten Lösungen. Wer tiefer in die Materie einsteigen möchte, sollte allerdings ein wenig Spaß am Basteln mitbringen.
Home Assistant(öffnet im neuen Fenster) ist eine kostenlose Open-Source-Software für die Heimautomatisierung, die von einer großen Community von Tüftlern und DIY-Begeisterten entwickelt und unterstützt wird. Über unzählige Integrationen lassen sich Tausende verschiedene Geräte ins smarte Heim bringen. Das Mischen von Geräten verschiedener Anbieter wie Ikeas Trådfri mit Phillips Hue oder Spotify ist also nicht nur möglich, sondern der Normalfall.
Home Assistant ist für die großen Betriebssysteme (Windows, MacOS, Linux) und verschiedene Bastelrechner erhältlich. Bei der Wahl der Plattform sollte bedacht werden, dass der Rechner durchgängig laufen muss. Eine in der Anschaffung und vom Stromverbrauch günstige und zugleich etablierte Lösung ist der Raspberry Pi in der Version 4 (oder derzeit leichter zu bekommen: Version 3). Darüber hinaus werden eine Micro-SD-Karte, ein Netzwerkkabel und eine Spannungsquelle für den Raspberry Pi benötigt.
Einfache Installation per Image
Die Installation der Heimautomatisierung ist dank fertiger Images schnell erledigt. Auf der Downloadseite(öffnet im neuen Fenster) wählt man Raspberry Pi aus und kopiert dann die dort angegebene Download-URL für 32- oder 64-Bit in Balena Etcher(öffnet im neuen Fenster) (Option Flash from URL). Das Flash-Tool lädt das Image und schreibt es auf die mindestens 32 GByte große Micro-SD-Karte (bevorzugt Application Performance Class 2, A2).






Ist das Image geschrieben, wird die Micro-SD-Karte in den Raspberry Pi geschoben, dieser über ein Ethernetkabel mit dem heimischen Netzwerk verbunden und mit Spannung versorgt. Monitor, Tastatur und Maus sind nicht erforderlich, die Einrichtung erfolgt nach der Installation über eine Webseite, die ein paar Minuten nach dem Start des Raspberry Pis unter http://homeassistant.local:8123 im Browser erreichbar ist. Netzwerktechnik hat leider ihre Tücken, bei Problemen fahndet man am besten im Router nach der IP-Adresse des Raspberry Pi und verwendet diese statt homeassistant.local .
Ist die Weboberfläche zu sehen, geht es ans initiale Einrichten von Home Assistant. Zunächst werden im Assistenten grundlegende Informationen wie Benutzername, Passwort, Einheiten und Standort abgefragt. Die danach angezeigten Geräte und Dienste, die als Integrationen angeboten werden, überspringt man am besten zunächst mit "fertig", sie lassen sich später gezielt einrichten. Danach landet man auf der Startseite. Links findet sich ein Menü und im Hauptbereich rechts daneben werden schon erste spannende Daten zum Smart Home preisgegeben: Der Raspberry Pi hat Strom und das Wetter könnte besser sein.






Nach ein wenig Umschauen in den umfangreichen Menüs kommt bald der Wunsch auf, eigene Sensoren in das Smart Home einzubringen. Die Möglichkeiten dazu sind schier unbegrenzt, für so manche gilt das auch beim Preis. Mit ein wenig Bastelgeschick muss es aber nicht teuer werden. So lassen sich beispielsweise ganz einfach die beliebten ESP8266/ESP32-Mikrocontroller anbinden, die dann Daten von beliebigen Sensoren (zum Beispiel Temperatur, Luftdruck, Luftfeuchtigkeit oder CO 2 -Konzentration der Luft) an die Heimautomatisierung weitergeben.
Verkabeln von Sensor und Board
Als Beispiel wird hier ein ESP8266-basiertes Mikrocontrollerboard mit Namen NodeMCU Amica integriert, das man für etwa 6 Euro beim Elektronikhändler des Vertrauens bekommt. Als Sensor dient der barometrische Sensor BME280, mit dem sich Temperatur, Luftfeuchtigkeit und Luftdruck relativ genau messen lassen. Er ist derzeit - stark im Preis gestiegen - für etwa 18 Euro erhältlich. Für beide Bauteile gibt es aber eine ganze Reihe von Alternativen, die teilweise deutlich günstiger sind. Der Anschluss des Sensors erfolgt über die I2C-Schnittstelle, die Belegung der Pins ist in der folgenden Tabelle wiedergegeben und auch auf dem Foto ersichtlich:
| BME280 | NodeMCU |
|---|---|
| VIN | 3,3 V |
| GND | GND |
| SCL | GPIO5 (=D1) (SCL) |
| SDA | GPIO4 (=D2) (SDA) |






Arbeiten mit den ESPHome Command Line Utilities
Mit ESPHome(öffnet im neuen Fenster) lassen sich ESP-Mikrocontroller durch einfaches Anpassen einer Konfigurationsdatei "programmieren", es muss also kein Programmcode geschrieben und somit keine Programmiersprache beherrscht werden.
Vorausgesetzt, auf dem Rechner finden sich eine aktuelle Python-Version und der zugehörige Paketmanager pip , erfolgt die Installation der ESPHome Command Line Utilities mit den folgenden Kommandos:
pip3 install wheel pip3 install esphome
Danach überprüft man am besten die erfolgreiche Installation durch Eingabe von esphome version . Wird hier eine Versionsnummer ausgegeben, hat alles geklappt. Die Konfigurationsdatei für den ESP kann man mit ein wenig Übung von Hand anlegen, aber für den Einstieg bietet sich der Assistent an. Er wird mit folgendem Kommando gestartet:
esphome wizard test.yaml
Nach der Beantwortung der Fragen zu Name, ESP-Typ, Board, WLAN-Netzwerk und OTA-Updates liegt die YAML-Datei im Dateisystem. Sie sieht folgendermaßen aus:
esphome: name: livingroom esp8266: board: nodemcu # Enable logging logger: # Enable Home Assistant API api: password: "" ota: password: "" wifi: ssid: "DeinWLANName" password: "DeinWLANPasswort" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Livingroom Fallback Hotspot" password: "lqoafOb79A38" captive_portal:Was hier noch fehlt, sind die Informationen zum Sensor. Sie werden von Hand mit Hilfe eines Texteditors am Ende der Datei ergänzt:
i2c: sda: 4 scl: 5 sensor: - platform: bme280 temperature: name: "Temperatur" oversampling: 16x humidity: name: "Luftfeuchtigkeit" address: 0x76 update_interval: 60sDie Daten wurden der ESPHome-Dokumentation aus den Abschnitten I2C(öffnet im neuen Fenster) und BME280(öffnet im neuen Fenster) entnommen. Besonders wichtig sind die korrekten GPIO-Pins für SDA und SCL. Wer noch nicht mit dem Markup-Format YAML zu tun hatte, sollte unbedingt beachten, dass die Einrückungen durch Leerzeichen eine wichtige Rolle spielen. Im Netz finden sich zahlreiche Beschreibungen des Formats.
Der ESP wird als Nächstes mit Konfiguration und der ESPHome-Software beschrieben. Dazu wird das Board über ein USB-(Daten!-)Kabel an den Rechner angeschlossen und das folgende Kommando ausgeführt:
esphome run test.yaml
Das Ganze dauert dann eine Weile. Plattform-Manager, Tool-Manager und Library-Manager werden installiert, kompiliert und die Software samt Konfiguration auf den ESP übertragen. Zwischendurch ist auszuwählen, ob die Daten über USB oder Over The Air auf das Board übertragen werden sollen. Hier wird ersteres durch die Eingabe von 1 bestätigt.
ESPHome-Integration in Home Assistant
Das Board kann danach mit Hilfe eines gängigen USB-Netzteils direkt über eine Steckdose mit Spannung versorgt werden, die Verbindung zum Rechner ist nicht mehr erforderlich. Nach dem Start des Boards verbindet sich der ESP via WLAN mit dem Netzwerk und möchte Teil des Smart Home werden. In Home Assistant gibt es deshalb eine neue Benachrichtigung (ganz unten im Menü), die darauf hinweist, dass neue Geräte gefunden wurden (New Devices discovered).






Durch einen Klick auf Check it out landet man auf der Seite der Integrationen, wo man das entsprechende Gerät vom Typ ESPHome sucht und dort den Button Konfigurieren klickt.






Das neue Gerät wird dann Home Assistant zugefügt und einem Wohnbereich zugeordnet. Unter Einstellungen ᐳ Geräte und Dienste findet man anschließend unter Geräte das Gerät livingroom und unter Entitäten die beiden Entitäten Luftfeuchtigkeit und Temperatur .
Dem Dashboard (Menüpunkt Übersicht ) wird das neue Gerät automatisch zugefügt, dort sind dann auch die Messwerte Temperatur und Luftfeuchtigkeit zu sehen.






Die Möglichkeiten des Home Assistant sind praktisch unbegrenzt und dieser Artikel hat nur einen kleinen Ausschnitt vorgestellt. Es ist kein Problem, beispielsweise Sensoren für Niederschlagsmenge, Windgeschwindigkeit oder die Kohlendioxidkonzentration in der Raumluft zuzufügen.
Mit Hilfe von Kameras, Bewegungsmeldern und Türöffnungssensoren lässt sich eine Alarmanlage zusammenstellen. Zudem lassen sich Geräte über Zigbee anbinden. Es können Sensordaten statt auf einer Webseite auf einem LCD- oder E-Ink-Display angezeigt werden. Oder das Garagentor kann sich auf Knopfdruck öffnen.
Viel Spaß beim Basteln!



