Home Assistant Automationen erstellen – der komplette Einsteiger-Guide 2026
Automationen sind das Herzstück von Home Assistant. Sie lassen dein Smart Home wirklich „smart“ werden: Licht geht automatisch an, wenn du nach Hause kommst; die Heizung dreht sich runter, wenn du das Fenster öffnest; das Radio spielt, wenn der Wecker klingelt. In diesem Guide lernst du Schritt für Schritt, wie du Home Assistant Automationen erstellen, verstehen und optimieren kannst.
Voraussetzung: Home Assistant läuft auf deinem Raspberry Pi. Zigbee-Geräte sind über Zigbee2MQTT oder ZHA eingebunden.
Inhalt
- Grundprinzip: Trigger – Condition – Action
- Deine erste Automation im UI-Editor
- Alle wichtigen Trigger-Typen
- Conditions: Automationen einschränken
- Actions: Was Home Assistant tun soll
- 10 praktische Automations-Beispiele
- Automationen in YAML schreiben
- Automationen debuggen
- Profi-Tipps für komplexe Automationen
- FAQ
Grundprinzip: Trigger – Condition – Action
Jede Home-Assistant-Automation folgt demselben Schema:
| Teil | Bedeutung | Beispiel |
|---|---|---|
| Trigger | Was die Automation auslöst | Bewegung erkannt, Zeit 18:00, Tür geöffnet |
| Condition | Wann sie ausgeführt wird (optional) | Nur wenn es draußen dunkel ist, nur Werktags |
| Action | Was passiert | Licht einschalten, Nachricht senden, Szene aktivieren |
Merkhilfe: „WENN Trigger UND Condition DANN Action.“ Eine Automation kann mehrere Trigger, mehrere Conditions und mehrere Actions haben.
Deine erste Automation im UI-Editor
Navigiere in Home Assistant zu Einstellungen → Automationen & Szenen → Automation erstellen.
Schritt 1: Trigger hinzufügen
Klicke auf „Trigger hinzufügen“. Wähle den Trigger-Typ aus der Liste:
- Status – eine Entität ändert ihren Status
- Zeit – zu einer bestimmten Uhrzeit
- Sonnenaufgang/-untergang – relativ zum Sonnenstand
- Numerischer Status – wenn ein Wert über/unter eine Schwelle fällt
Schritt 2: Condition hinzufügen (optional)
Conditions schränken ein, wann die Automation laufen soll. Beispiel: „Nur wenn Licht bereits aus“ verhindert, dass das Licht beim zweiten Bewegungsimpuls neu eingeschaltet wird.
Schritt 3: Action definieren
Die Action legt fest, was passiert. Häufigste Optionen: „Dienst aufrufen“ (z. B. light.turn_on), „Szene aktivieren“, „Verzögerung“, „Benachrichtigung senden“.
Schritt 4: Speichern und testen
Klicke „Speichern“. Oben rechts gibt es den Button „Ausführen“ zum manuellen Testen – so musst du nicht auf den echten Trigger warten.
Alle wichtigen Trigger-Typen
Status-Trigger
Der häufigste Trigger: Eine Entität wechselt von einem Zustand in einen anderen.
1 2 3 4 5 6 | trigger: - platform: state entity_id: binary_sensor.bewegungsmelder_flur_occupancy to: "on" # Bewegung erkannt # from: "off" # optional: nur wenn vorher aus # for: "00:00:30" # optional: muss 30 Sek. bestehen |
Zeit-Trigger
1 2 3 | trigger: - platform: time at: "07:00:00" # täglich um 7 Uhr morgens |
Zeitbasierter Muster-Trigger (cron-ähnlich)
1 2 3 4 | trigger: - platform: time_pattern hours: "/1" # jede Stunde # minutes: "0" # zur vollen Stunde |
Sonnenaufgang/-untergang-Trigger
1 2 3 4 | trigger: - platform: sun event: sunset offset: "-00:30:00" # 30 Minuten vor Sonnenuntergang |
Numerischer Status-Trigger
1 2 3 4 | trigger: - platform: numeric_state entity_id: sensor.thermostat_wohnzimmer_temperature below: 18 # Trigger wenn Temp unter 18°C fällt |
Webhook-Trigger
1 2 3 4 | trigger: - platform: webhook webhook_id: mein_geheimer_webhook_id # Aufruf: POST https://ha.local/api/webhook/mein_geheimer_webhook_id |
Conditions: Automationen einschränken
Status-Condition
1 2 3 4 | condition: - condition: state entity_id: input_boolean.abwesenheitsmodus state: "off" # Nur wenn Abwesenheitsmodus AUS |
Zeit-Condition
1 2 3 4 5 6 7 8 9 10 | condition: - condition: time after: "07:00:00" before: "22:00:00" weekday: # optional: nur bestimmte Tage - mon - tue - wed - thu - fri |
Sonnen-Condition (Tag/Nacht)
1 2 3 4 | condition: - condition: sun after: sunset # nach Sonnenuntergang after_offset: "-00:30:00" |
Numerische Condition
1 2 3 4 | condition: - condition: numeric_state entity_id: sensor.aqara_p1_flur_illuminance_lux below: 50 # Nur wenn Helligkeit unter 50 Lux |
UND / ODER Verknüpfungen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | condition: - condition: and # ALLE müssen erfüllt sein conditions: - condition: sun after: sunset - condition: state entity_id: person.philipp state: home # oder: - condition: or # EINE muss erfüllt sein conditions: - condition: state entity_id: binary_sensor.tuersensor_contact state: "on" - condition: state entity_id: binary_sensor.fenstersensor_contact state: "on" |
Actions: Was Home Assistant tun soll
Dienst aufrufen
1 2 3 4 5 6 7 8 | action: - service: light.turn_on target: entity_id: light.wohnzimmer_decke data: brightness_pct: 60 color_temp_kelvin: 3000 # warmweiß transition: 2 # 2 Sekunden Übergang |
Verzögerung
1 2 3 4 5 6 | action: - delay: minutes: 5 # 5 Minuten warten - service: light.turn_off target: entity_id: light.flur |
Benachrichtigung
1 2 3 4 5 | action: - service: notify.mobile_app_iphone_von_philipp data: title: "Smart Home Alert" message: "Türe seit 10 Minuten offen!" |
Szene aktivieren
1 2 3 4 | action: - service: scene.turn_on target: entity_id: scene.filmabend |
Skript ausführen
1 2 | action: - service: script.guten_morgen_routine |
Bedingte Action (choose)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | action: - choose: - conditions: - condition: state entity_id: sun.sun state: below_horizon sequence: - service: light.turn_on target: entity_id: light.flur data: brightness_pct: 30 - conditions: - condition: state entity_id: sun.sun state: above_horizon sequence: - service: light.turn_on target: entity_id: light.flur data: brightness_pct: 100 |
10 praktische Automations-Beispiele
1. Licht bei Bewegung (mit Ausschaltverzögerung)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | alias: Flur - Licht bei Bewegung trigger: - platform: state entity_id: binary_sensor.bewegungsmelder_flur_occupancy to: "on" condition: - condition: numeric_state entity_id: sensor.bewegungsmelder_flur_illuminance_lux below: 50 action: - service: light.turn_on target: entity_id: light.flur data: brightness_pct: 80 - wait_for_trigger: - platform: state entity_id: binary_sensor.bewegungsmelder_flur_occupancy to: "off" for: minutes: 3 - service: light.turn_off target: entity_id: light.flur mode: restart |
2. Willkommen zuhause – Lichter & Heizung
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | alias: Ankunft zuhause trigger: - platform: state entity_id: person.philipp to: home condition: - condition: sun after: sunset action: - service: scene.turn_on target: entity_id: scene.willkommen - service: climate.set_temperature target: entity_id: climate.thermostat_wohnzimmer data: temperature: 21 mode: single |
3. Heizung runter bei geöffnetem Fenster
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | alias: Fenster offen - Heizung drosseln trigger: - platform: state entity_id: binary_sensor.fenstersensor_wohnzimmer_contact to: "on" for: minutes: 3 action: - service: climate.set_hvac_mode target: entity_id: climate.thermostat_wohnzimmer data: hvac_mode: "off" - service: notify.mobile_app_iphone data: message: "Fenster offen – Heizung Wohnzimmer ausgeschaltet" mode: single |
4. Gute-Nacht-Routine
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | alias: Gute Nacht Routine trigger: - platform: time at: "22:30:00" condition: - condition: time weekday: [mon, tue, wed, thu, sun] action: - service: light.turn_off target: area_id: wohnzimmer - service: climate.set_temperature target: entity_id: climate.thermostat_schlafzimmer data: temperature: 18 - service: lock.lock target: entity_id: lock.haustuer mode: single |
5. Akku-Warnung für Zigbee-Sensoren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | alias: Akku-Warnung Sensoren trigger: - platform: numeric_state entity_id: - sensor.aqara_p1_flur_battery - sensor.snzb04p_wohnzimmer_battery - sensor.snzb02p_kueche_battery below: 20 action: - service: notify.mobile_app_iphone data: title: "Akku schwach!" message: "{{ trigger.to_state.attributes.friendly_name }}: {{ trigger.to_state.state }}%" mode: parallel max: 10 |
6. Außenbeleuchtung bei Sonnenuntergang
1 2 3 4 5 6 7 8 9 10 11 12 | alias: Außenlicht bei Sonnenuntergang trigger: - platform: sun event: sunset offset: "00:10:00" action: - service: light.turn_on target: entity_id: light.aussenbeleuchtung data: brightness_pct: 100 mode: single |
7. Spülmaschine fertig – Benachrichtigung
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | alias: Spülmaschine fertig trigger: - platform: numeric_state entity_id: sensor.steckdose_kueche_power below: 5 for: minutes: 5 condition: - condition: numeric_state entity_id: sensor.steckdose_kueche_power above: 0.5 # Vorher wirklich in Betrieb action: - service: notify.mobile_app_iphone data: message: "Spülmaschine ist fertig! 🍽️" mode: single |
8. Wecker-Automation – Morgenlicht
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | alias: Wecker Morgenlicht trigger: - platform: time at: input_datetime.weckzeit action: - service: light.turn_on target: entity_id: light.schlafzimmer data: brightness_pct: 1 color_temp_kelvin: 2700 - repeat: count: 30 sequence: - delay: seconds: 30 - service: light.turn_on target: entity_id: light.schlafzimmer data: brightness_pct: "{{ [repeat.index * 3, 100] | min }}" mode: single |
9. Urlaubsmodus – Anwesenheitssimulation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | alias: Urlaubsmodus - Licht simulieren trigger: - platform: time_pattern hours: "/1" condition: - condition: state entity_id: input_boolean.urlaubsmodus state: "on" - condition: sun after: sunset before: sunrise action: - service: light.turn_on target: entity_id: - light.wohnzimmer - light.kueche data: brightness_pct: "{{ range(30, 80) | random }}" - delay: minutes: "{{ range(20, 45) | random }}" - service: light.turn_off target: entity_id: - light.wohnzimmer - light.kueche mode: single |
10. Niederschlags-Warnung (Wetterintegration)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | alias: Regenwarnung - Fenster schließen trigger: - platform: state entity_id: weather.mein_ort attribute: precipitation_probability above: 70 condition: - condition: state entity_id: binary_sensor.fenstersensor_wohnzimmer_contact state: "on" # Fenster offen action: - service: notify.mobile_app_iphone data: title: "Regenwarnung!" message: "Fenster Wohnzimmer ist offen – Regen erwartet!" mode: single |
Automationen in YAML schreiben
Der UI-Editor ist für Einsteiger ideal, aber für komplexe Automationen ist YAML mächtiger. Du findest die YAML-Ansicht jeder Automation über den Button „YAML bearbeiten“ oben rechts.
Alternativ kannst du Automationen direkt in der Datei automations.yaml pflegen:
1 2 3 4 5 6 | # Pfad auf dem Pi: /config/automations.yaml # SSH-Zugang: ssh homeassistant@homeassistant.local vi /config/automations.yaml |
Automations-ID – immer setzen
Jede Automation sollte eine eindeutige ID haben. Sie wird beim Erstellen über den UI-Editor automatisch vergeben, aber in YAML musst du sie selbst setzen:
1 2 3 4 | - id: "automation_flur_licht_bewegung" alias: Flur - Licht bei Bewegung trigger: ... action: ... |
Automationen debuggen
Trace-Funktion nutzen
Öffne eine Automation → Klicke „Traces“. Hier siehst du jeden Durchlauf mit Zeitstempel, welcher Trigger ausgelöst hat, ob Conditions erfüllt waren und welche Actions ausgeführt wurden. Bei fehlschlagenden Automationen ist der Trace das erste, was du prüfen solltest.
Entwicklertools → Zustände
Unter Entwicklertools → Zustände kannst du den aktuellen Zustand jeder Entität prüfen und Zustände manuell setzen – ideal zum Testen von Conditions.
Entwicklertools → Dienste
Unter Entwicklertools → Dienste kannst du jeden Service manuell aufrufen. So testest du Actions ohne den Trigger manuell auslösen zu müssen.
Log-Datei prüfen
1 2 | # Auf dem Pi (SSH): tail -f /config/home-assistant.log | grep -i automation |
Profi-Tipps für komplexe Automationen
Tipp 1: Input-Helfer verwenden
Erstelle unter Einstellungen → Geräte & Dienste → Helfer Input-Booleans und Input-Datetimes. So kannst du Automationen über das Dashboard ein-/ausschalten:
input_boolean.urlaubsmodus– Anwesenheitssimulation an/ausinput_boolean.schlafmodus– Nachtmodus an/ausinput_datetime.weckzeit– Weckzeit variabel
Tipp 2: Mode richtig wählen
| Mode | Verhalten bei erneutem Trigger | Typischer Einsatz |
|---|---|---|
single | Neue Ausführung wird ignoriert | Ankunft zuhause, Routine |
restart | Laufende Automation wird neu gestartet | Licht mit Ausschaltverzögerung |
queued | Neue Ausführung wird in Queue gestellt | Sequenzielle Aufgaben |
parallel | Mehrere Ausführungen gleichzeitig | Akku-Warnungen mehrerer Geräte |
Tipp 3: Templates nutzen
In Actions und Conditions kannst du Jinja2-Templates verwenden:
1 2 3 4 5 6 7 | action: - service: notify.mobile_app_iphone data: message: > Es ist {{ now().strftime('%H:%M') }} Uhr. Temperatur im Wohnzimmer: {{ states('sensor.thermostat_temperature') }}°C. Letzter Trigger: {{ trigger.to_state.attributes.friendly_name }} |
Tipp 4: Skripte für Wiederverwendung
Wenn dieselbe Action-Sequenz in mehreren Automationen vorkommt (z. B. „alle Lichter aus + Heizung runter“), erstelle ein Skript unter Einstellungen → Automationen & Szenen → Skripte. Automationen rufen dann nur noch script.NAME auf.
Tipp 5: Personen-Tracking für Anwesenheit
Nutze die person-Entität statt device_tracker direkt. Die Person-Entität kombiniert mehrere Tracker (Handy-GPS, WLAN-Anmeldung) und ist zuverlässiger:
1 2 3 4 | trigger: - platform: state entity_id: person.philipp to: not_home # bei Verlassen |
FAQ
Warum löst meine Automation manchmal nicht aus?
Prüfe in den Traces, ob der Trigger ausgelöst wurde. Falls ja, prüfe die Conditions – eine nicht erfüllte Condition ist der häufigste Grund. Falls der Trigger nie ausgelöst wird, prüfe, ob die Entität wirklich ihren Zustand ändert (Entwicklertools → Zustände).
Kann ich Automationen zeitlich einschränken?
Ja – entweder mit einer Zeit-Condition (after: "07:00:00", before: "22:00:00") oder mit einem Zeit-Pattern-Trigger. Du kannst auch weekday angeben, um nur an bestimmten Wochentagen auszulösen.
Wie viele Automationen kann ich erstellen?
Technisch unbegrenzt. In der Praxis läuft Home Assistant auf einem Raspberry Pi 5 mit 200+ Automationen problemlos. Bei sehr vielen Automationen empfiehlt sich die Organisation in Packages (YAML-Ordner pro Raum/Thema).
Was ist der Unterschied zwischen Automation und Skript?
Eine Automation läuft automatisch bei einem Trigger. Ein Skript wird manuell aufgerufen (per Dashboard-Button, Sprache oder aus einer Automation). Skripte sind ideal für Aktionssequenzen, die du mehrfach verwenden möchtest.
Wie kann ich eine Automation vorübergehend deaktivieren?
Öffne die Automation → Schalter oben links ausschalten. Die Automation ist dann inaktiv, bleibt aber konfiguriert. Alternativ per YAML: initial_state: false verhindert, dass sie nach einem Neustart aktiv ist.
Gibt es Automationen-Vorlagen zum Download?
Ja – die Home Assistant Community (community.home-assistant.io) bietet tausende Automation-Blueprints zum direkten Import. Unter Einstellungen → Automationen → Blueprints kannst du sie direkt in deiner Installation verwenden.







