Home Assistant – wie es innen funktioniert
Home Assistant ist eine quelloffene Hausautomations-Plattform in Python, die lokal läuft. Im Kern arbeiten drei Bausteine zusammen: ein Event Bus, eine State Machine mit dem Zustand jeder Entität und eine Registry für Actions. Alles andere – Geräte, Automationen, Dashboards – sind Integrationen darum herum. Erklärt an einem erfundenen Musterhaus.
🏗️Architektur: klickbares Diagramm
Event Bus
Über den Event Bus laufen alle Ereignisse: state_changed, call_service, automation_triggered, homeassistant_start … Jeder Baustein kann Events feuern und abonnieren. Die Entwickler-Doku nennt ihn „the beating heart of Home Assistant“.
- ▸Event = event_type + data + origin + time_fired + context
- ▸Filter pro Event-Typ
- ▸state_reported nur mit Entitäts-Filter (sehr häufig)
Tipp: Kästen im Diagramm anklicken.
📦Installationsarten
Home Assistant OS
empfohlenKomplettsystem mit Supervisor und Apps – auf Green/Yellow vorinstalliert, sonst als Image für Raspberry Pi, x86-64 oder VM.
Home Assistant Container
unterstütztNur der Core als Docker-Container. Kein Supervisor, keine Apps – MQTT-Broker, Zigbee2MQTT & Co. betreibt man selbst.
Home Assistant Core
veraltetPython-Paket in einer virtuellen Umgebung. Seit 2025.6 als veraltet markiert, Unterstützung bis 2025.12 – danach nur noch auf eigene Verantwortung.
Home Assistant Supervised
veraltetSupervisor auf einem selbst verwalteten Debian. Ebenfalls seit 2025.6 veraltet, Unterstützung bis 2025.12; Doku-Hinweise wurden entfernt.
# Home Assistant Container (Docker Compose) – Beispiel
services:
homeassistant:
image: ghcr.io/home-assistant/home-assistant:stable
container_name: homeassistant
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host
# danach im Browser: http://192.0.2.20:8123🗓️Versionen: YYYY.M
Patch 1 zu 2026.9: nur Fehlerbehebungen.
Keine semantische Versionierung: „2026.10“ ist nicht „inkompatibel zu 2026.9“, sondern einfach der nächste Monat. Breaking Changes stehen in jedem Release-Blog.
Termine nach der Regel „erster Mittwoch“ berechnet; per Release-Blog belegt sind 2026.2 (4. Februar), 2026.8 (5. August) und 2026.9 (2. September). Verschiebt sich ein Release, gilt der Blog auf home-assistant.io.
🧭Kapitel
Datenmodell
Integration → Config Entry → Gerät → Entität, das State-Objekt, Areas/Floors/Labels – plus Simulator für last_changed vs. last_updated.
Ereignisfluss
Taster gedrückt → state_changed → Trigger → Condition → light.toggle → Lampe → neuer State. Mit Context-Kette, Schritt für Schritt.
Automationen
Trigger, Conditions, Actions in YAML und UI, die vier Modi als Zeitstrahl, Scripts, Szenen, Blueprints und Helfer.
Template-Tester
Jinja2-Templates gegen das Musterhaus auswerten – mit den typischen Fallen (states() liefert Text!).
Simulator
Das Musterhaus live: Bewegung, Taster, Fenster – Automationen reagieren, Zeit vorspulen, Log und Traces lesen.
Schnittstellen
REST- und WebSocket-API mit Token-Platzhalter, MQTT-Discovery, Zigbee, Z-Wave, Matter/Thread und ESPHome.
Betrieb & Vergleich
Dashboards, Energie, Backups, Updates, Fernzugriff, Sicherheit – und der Vergleich mit ioBroker, openHAB und der HomeMatic-Zentrale.