ESPHome für Einsteiger – Eigene Smart-Home-Sensoren bauen mit Home Assistant
Gekaufte Smart-Home-Sensoren kosten 15–30 € pro Stück, laufen oft über eine Cloud und liefern genau das, was der Hersteller vorgesehen hat – nicht mehr. Mit ESPHome baut ihr euch Sensoren für 3–5 € selbst, genau nach euren Anforderungen, vollständig lokal und direkt in Home Assistant integriert.
Preisvergleich: ESP32 + BME280 = ~8 € selbst gebaut vs. 15–30 € für fertige Zigbee-Sensoren. ESPHome lohnt sich ab 3–5 gleichartigen Sensoren oder für spezielle Messgrößen wie CO2.
ESPHome ist ein Framework, das ESP8266- und ESP32-Mikrocontroller per YAML-Konfiguration in Smart-Home-Geräte verwandelt. Ihr beschreibt in einer Textdatei, welche Sensoren angeschlossen sind und was sie tun sollen – ESPHome kompiliert daraus eine fertige Firmware. Kein Programmieren nötig.
In diesem Guide zeige ich euch, wie ihr vom ersten ESP32 bis zum fertig laufenden Temperatur-Sensor in Home Assistant kommt – Schritt für Schritt.
Was ihr braucht
Mindestausstattung für den ersten Sensor
| Bauteil | Empfehlung | Preis (ca.) | Wofür |
|---|---|---|---|
| Mikrocontroller | ESP32 Dev Board | ~4–6 € | Basis für alle Projekte, WLAN + Bluetooth |
| Temperatursensor | BME280 Modul | ~3–5 € | Temperatur + Luftfeuchtigkeit + Luftdruck |
| USB-Kabel | Micro-USB oder USB-C (je nach Board) | vorhanden | Erstflash per USB, danach OTA |
| Jumper-Kabel | Dupont-Kabel-Set | ~3 € | Sensor mit ESP32 verbinden |
Tipp: Kauft gleich ein 5er-Pack ESP32-Boards – der Stückpreis sinkt auf ~3 €, und für weitere Projekte habt ihr dann immer Boards vorrätig.
Weitere beliebte Sensoren für spätere Projekte
- DHT22 – günstigste Temperatur/Feuchte-Option, ~2 €
- MH-Z19B – CO2-Sensor, ideal für Schlaf- und Arbeitszimmer, ~18 €
- D1 Mini (ESP8266) – kleiner als ESP32, reicht für einfache Sensoren, ~3 €
Schritt 1: ESPHome Add-on in Home Assistant installieren
- In Home Assistant: Einstellungen → Add-ons → Add-on Store öffnen
- Nach „ESPHome“ suchen → Installieren
- Nach der Installation: Starten aktivieren + In der Seitenleiste anzeigen aktivieren
- Add-on starten → Web-UI öffnen – der ESPHome Device Builder öffnet sich
Hinweis: ESPHome läuft als Add-on nur auf Home Assistant OS und Supervised. Bei Home Assistant Container müsst ihr ESPHome separat als Docker-Container starten.
Schritt 2: Erstes Gerät anlegen
- Im ESPHome Device Builder: New Device klicken
- Gerätename eingeben (z.B.
sensor-wohnzimmer– nur Kleinbuchstaben, Bindestriche erlaubt) - Board-Typ wählen: ESP32 (oder ESP8266 für D1 Mini)
- WLAN-Zugangsdaten eingeben – ESPHome trägt sie sicher in die Konfiguration ein
- Next → Gerät wird als Konfigurationsdatei angelegt
Schritt 3: Firmware erstellen und per USB flashen
Beim allerersten Flash muss der ESP32 per USB mit dem Computer verbunden sein, der Home Assistant betreibt (oder ihr nutzt einen Browser-basierten Flasher über WebSerial).
- Im Device Builder beim neuen Gerät auf Install klicken
- Plug into this computer wählen (bei direktem USB-Anschluss) oder Manual download für späteres Flashen
- Port auswählen (z.B.
/dev/ttyUSB0) und flashen - Nach dem Flash: ESP32 verbindet sich automatisch mit eurem WLAN
- In Home Assistant erscheint das Gerät als „Entdeckt“ unter Einstellungen → Geräte & Dienste → ESPHome → Übernehmen
Ab jetzt laufen alle weiteren Updates per OTA (Over-the-Air) – kein USB-Kabel mehr nötig.
Schritt 4: BME280-Sensor einbinden
Jetzt kommt der interessante Teil. Verbindet den BME280 mit dem ESP32:
| BME280 Pin | ESP32 Pin |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
Dann öffnet ihr im ESPHome Device Builder die Konfiguration eures Geräts (Edit) und ergänzt folgende Zeilen:
i2c:
sda: GPIO21
scl: GPIO22
sensor:
- platform: bme280_i2c
temperature:
name: "Wohnzimmer Temperatur"
humidity:
name: "Wohnzimmer Luftfeuchtigkeit"
pressure:
name: "Wohnzimmer Luftdruck"
address: 0x76
update_interval: 60sDanach im Device Builder auf Install → Wirelessly klicken – ESPHome kompiliert die neue Firmware und flasht sie per OTA. Nach etwa einer Minute erscheinen drei neue Sensoren in Home Assistant: Temperatur, Luftfeuchtigkeit und Luftdruck.
YAML-Grundstruktur erklärt
Jede ESPHome-Konfiguration folgt dem gleichen Aufbau:
esphome:
name: sensor-wohnzimmer # Gerätename (Hostname im Netzwerk)
esp32:
board: esp32dev # Board-Typ
wifi:
ssid: !secret wifi_ssid # WLAN-Name (aus secrets.yaml)
password: !secret wifi_password
api: # Home Assistant API – auto-discovery
encryption:
key: "euer-zufälliger-key"
ota: # Over-the-Air Updates
- platform: esphome
password: "ota-passwort"
logger: # Logs im Device Builder anzeigensecrets.yaml: WLAN-Zugangsdaten nie direkt in die Konfiguration schreiben. ESPHome hat eine zentrale secrets.yaml-Datei, die alle Passwörter bündelt – so bleiben Konfigurationsdateien teilbar.
Projektideen für Einsteiger
| Projekt | Hardware | Kosten | Schwierigkeit |
|---|---|---|---|
| Temperatur/Feuchte-Sensor | ESP32 + BME280 | ~8 € | ⭐ Einsteiger |
| CO2-Monitor | ESP32 + MH-Z19B | ~22 € | ⭐ Einsteiger |
| Bewegungsmelder (PIR) | D1 Mini + HC-SR501 | ~5 € | ⭐ Einsteiger |
| Türkontakt | D1 Mini + Reed-Kontakt | ~4 € | ⭐ Einsteiger |
| Schaltbare Steckdose mit Relay | ESP32 + 5V Relay-Modul | ~7 € | ⭐⭐ Mittel |
| Präsenzerkennung (mmWave) | ESP32 + LD2410 | ~12 € | ⭐⭐ Mittel |
ESPHome-Sensoren lassen sich nahtlos in Home Assistant Automationen einbinden – z.B. Licht einschalten wenn der PIR-Sensor auslöst, oder Benachrichtigung wenn der CO2-Wert einen Grenzwert überschreitet.
Häufige Probleme und Lösungen
| Problem | Ursache | Lösung |
|---|---|---|
| ESP32 wird beim Flashen nicht erkannt | Kein CP2102/CH340-Treiber installiert oder USB-Kabel ohne Datenleitungen | CP2102-Treiber installieren; Kabel mit Datenleitungen (nicht nur Ladekabel) verwenden |
| OTA-Flash schlägt fehl | ESP32 im gleichen WLAN-Subnetz wie HA? Firewall blockiert Port 3232? | ESP32 und HA müssen im gleichen VLAN/Subnetz sein; Erstflash immer per USB |
| BME280 zeigt keine Werte (Sensor-Fehler) | Falsche I2C-Adresse (0x76 vs 0x77) oder Verkabelung | Adresse auf 0x77 ändern; SDA/SCL-Pins prüfen; 3.3V statt 5V verwenden |
| Gerät erscheint nicht in HA | ESPHome-Integration in HA nicht aktiv oder Gerät noch nicht im WLAN | Einstellungen → Geräte & Dienste → ESPHome-Integration hinzufügen; Gerätelogs im Device Builder prüfen |
| Kompilierung schlägt mit YAML-Fehler fehl | Einrückungsfehler (YAML ist whitespace-sensitiv) | Immer 2 Leerzeichen pro Einrückungsebene, keine Tabs; Log-Ausgabe im Device Builder lesen |
ESPHome vs. fertige Zigbee-Sensoren
Ihr fragt euch vielleicht, wann ESPHome die bessere Wahl ist – und wann ihr lieber einen fertigen Zigbee-Sensor kaufen solltet:
| Kriterium | ESPHome (DIY) | Fertige Zigbee-Sensoren |
|---|---|---|
| Preis | ~5–10 € pro Sensor | 15–30 € pro Sensor |
| Einrichtungszeit | 30–60 Min. (erst) | 5–10 Min. |
| Anpassbarkeit | Unbegrenzt (YAML) | Eingeschränkt |
| Akku-Betrieb | Möglich (Deep Sleep) | Ja, oft jahrelang |
| Bastelaufwand | Nötig | Keiner |
Fazit: ESPHome lohnt sich, wenn ihr viele gleichartige Sensoren braucht, spezielle Messgrößen (CO2, Bodenfeuchtigkeit, mmWave-Präsenz) oder maximale Flexibilität wollt. Für schnellen Einstieg ohne Lötkolben sind fertige Zigbee-Sensoren wie die in unserem Artikel zu den besten Zigbee-Sensoren vorgestellten Modelle die bessere Wahl.
Häufige Fragen (FAQ)
Muss ich programmieren können, um ESPHome zu nutzen?
Nein. ESPHome nutzt YAML – das ist keine Programmiersprache, sondern eine strukturierte Konfigurationsdatei. Ihr beschreibt in einfachem Text, welche Sensoren vorhanden sind, und ESPHome erledigt den Rest. Für einfache Sensor-Projekte reicht Copy-Paste aus der Dokumentation vollständig aus.
Was ist der Unterschied zwischen ESP8266 (D1 Mini) und ESP32?
Der ESP32 ist leistungsfähiger: mehr GPIOs, schnellerer Prozessor, Bluetooth zusätzlich zu WLAN und mehr RAM. Für einfache Sensoren (Temperatur, Bewegung, Kontakt) reicht der günstigere D1 Mini (ESP8266) völlig. Für komplexere Projekte (mmWave, CO2 + Display, Relay-Steuerung) nehmt einen ESP32.
Funktioniert ESPHome auch ohne Home Assistant?
Ja – ESPHome-Geräte können auch direkt per MQTT kommunizieren oder eine eigene Web-UI anzeigen. Die nahtlose Integration in Home Assistant ist aber der Hauptvorteil: automatische Discovery, kein MQTT-Broker nötig, alle Sensoren erscheinen direkt als HA-Entitäten.
Wie viele ESPHome-Geräte kann ich parallel betreiben?
Praktisch unbegrenzt. Ein normaler Home-Assistant-Server auf Raspberry Pi 4 oder Home Assistant Green verwaltet problemlos 20–50 ESPHome-Geräte gleichzeitig. Die Geräte kommunizieren lokal im WLAN, jeder ESP braucht einen eigenen Platz im WLAN-Netz (IP-Adresse).
Ist ESPHome sicher? Die ESP-Geräte sind ja im Heimnetz.
ESPHome-Geräte kommunizieren ausschließlich lokal – keine Cloud, keine externen Server. Die API zwischen ESP und Home Assistant ist mit einem zufälligen Schlüssel verschlüsselt. Empfehlenswert ist ein separates IoT-VLAN für ESPHome-Geräte. Mehr dazu in unserem Artikel zum Thema Smart Home absichern.
Kann ich vorhandene Shelly-Geräte auf ESPHome flashen?
Ältere Shelly-Geräte (Shelly 1, 2.5, Plug S) basieren auf dem ESP8266 und können mit ESPHome geflasht werden – dann habt ihr volle YAML-Kontrolle. Shelly Gen2 und Gen3 laufen auf anderen Chips und sind nicht mehr mit ESPHome flashbar. Für aktuelle Shelly-Geräte ist die native Shelly Home Assistant Integration die bessere Wahl.







