Weblog

ESPhome und Home Assistant

17.08.2025 4 Min. Lesezeit

Ein sanfter Einstieg in die Welt der Heimautomatisierung

Stell dir vor, du könntest dein Zuhause ein kleines bisschen „intelligenter“ machen - nicht mit teuren Geräten oder komplizierter Technik, sondern mit einfachen Bauteilen, etwas Bastelspaß und einer Prise Neugier. Genau hier kommt ESPHome ins Spiel. ESPHome ist ein Open-Source-Projekt, das es dir ermöglicht, Mikrocontroller wie den ESP8266 oder ESP32 ganz einfach zu programmieren, um Sensoren auszulesen, Daten zu sammeln und diese direkt an Home Assistant zu senden - eine beliebte Plattform zur Heimautomatisierung.

Was ist ESPHome?

ESPHome ist eine Software, die auf einem Mikrocontroller läuft - also einem kleinen, günstigen Computerchip, der über WLAN kommunizieren kann. Du schreibst keine klassische Programmiersprache, sondern beschreibst in einer einfachen YAML-Datei, was dein Gerät tun soll: „Lies diesen Sensor aus“, „Schalte jenes Relais“, „Sende die Temperatur an Home Assistant“. ESPHome kümmert sich um den Rest. Es übersetzt deine Beschreibung in funktionierenden Code, lädt ihn auf den Mikrocontroller und sorgt dafür, dass dein Gerät sich automatisch mit Home Assistant verbindet.

Die Integration in Home Assistant

Home Assistant erkennt Geräte, die mit ESPHome laufen, automatisch im Netzwerk. Sobald dein Sensor-Node online ist, erscheint er in Home Assistant wie von Zauberhand. Du kannst dann die Daten visualisieren, Automatisierungen erstellen („Wenn die Luftqualität schlecht ist, schicke mir eine Nachricht“) oder sie einfach nur beobachten. Die Integration ist so nahtlos, dass man fast vergisst, wie viel Technik im Hintergrund arbeitet.

Ein Beispielprojekt

Ein Umweltsensor für dein Zuhause

Nehmen wir an, du möchtest einen Sensor bauen, der die Lichtstärke, die Luftqualität (Feinstaub), den CO₂-Gehalt sowie Temperatur, Luftfeuchtigkeit und Luftdruck misst. Dafür kombinieren wir vier Sensoren:

  • BH1750 für die Lichtstärke
  • PMS5003 für Feinstaub (PM1.0, PM2.5, PM10)
  • SCD4X für CO₂, Temperatur und Luftfeuchtigkeit
  • BME280 für Temperatur, Luftfeuchtigkeit und Luftdruck

Die Idee

Du möchtest wissen, wie „gesund“ die Luft in deinem Wohnzimmer ist. Vielleicht hast du Pflanzen, ein Haustier oder möchtest einfach nur sicherstellen, dass du regelmäßig lüftest. Ein kleiner Kasten, der all diese Werte misst und dir in Home Assistant anzeigt, wäre perfekt.

Der erste Schritt: Komponenten besorgen

Du brauchst:

  • Einen ESP32 (z. B. ein DevKit C)
  • Die vier Sensoren (BH1750, PMS5003, SCD4X, BME280)
  • Ein Breadboard und Jumperkabel
  • Ein USB-Kabel zum Programmieren
  • Optional: ein kleines Gehäuse für später

Aufbau auf dem Breadboard

Du steckst den ESP32 auf das Breadboard. Die Sensoren verbindest du wie folgt:

  • BH1750 und BME280 nutzen I²C - das heißt, sie teilen sich zwei Datenleitungen (SDA und SCL). Diese verbindest du mit den entsprechenden Pins des ESP32 (z. B. GPIO21 für SDA, GPIO22 für SCL).
  • SCD4X nutzt ebenfalls I²C - perfekt, denn I²C erlaubt mehrere Geräte am selben Bus.
  • PMS5003 nutzt UART - also eine serielle Verbindung. Du verbindest TX des Sensors mit RX des ESP32 (z. B. GPIO16) und RX mit TX (z. B. GPIO17).

Vergiss nicht, GND und 3.3 V oder 5 V korrekt zu verbinden - je nach Sensor.

Die Software: ESPHome konfigurieren

Du installierst ESPHome auf deinem Computer oder direkt als Add-on in Home Assistant. Dann erstellst du ein neues Gerät, z. B. umweltsensor.yaml. In dieser Datei beschreibst du, welche Sensoren du angeschlossen hast. Das sieht etwa so aus:

esphome:
  name: umweltsensor
  platform: ESP32
  board: esp32dev

wifi:
  ssid: "DeinWLAN"
  password: "DeinPasswort"

logger:

api:
  encryption:
    key: "..."
ota:

i2c:
  sda: 21
  scl: 22
  scan: true

uart:
  rx_pin: 16
  tx_pin: 17
  baud_rate: 9600

sensor:
  - platform: bh1750
      name: "Lichtstärke"
  - platform: bme280
    temperature:
      name: "Temperatur BME280"
    humidity:
      name: "Luftfeuchtigkeit BME280"
    pressure:
      name: "Luftdruck"
      address: 0x76
  - platform: scd4x
    co2:
      name: "CO2"
    temperature:
      name: "Temperatur SCD4X"
    humidity:
      name: "Luftfeuchtigkeit SCD4X"
  - platform: pmsx003
    type: PMSX003
    pm_1_0:
      name: "PM1.0"
    pm_2_5:
      name: "PM2.5"
    pm_10_0:
      name: "PM10"

Du lädst diese Konfiguration über USB auf den ESP32. Danach verbindet sich das Gerät automatisch mit deinem WLAN und erscheint in Home Assistant.

Der fertige Sensor-Node

Wenn alles funktioniert, kannst du den Aufbau auf eine kleine Lochrasterplatine oder ein eigenes PCB übertragen. Du packst alles in ein Gehäuse mit Lüftungsschlitzen (damit die Sensoren korrekt messen können) und stellst es ins Wohnzimmer. In Home Assistant siehst du nun in Echtzeit, wie sich CO₂-Werte, Feinstaubbelastung und Temperatur verändern. Du kannst Benachrichtigungen einrichten, wenn die Luftqualität schlecht wird, oder Automatisierungen starten, z. B. ein Fenster öffnen lassen (wenn du einen Aktuator hast).

π