🤖Automationen
Eine Automation hat drei Teile: Trigger (wann?), Conditions (nur wenn …) und Actions (was tun?). Dazu kommen Modi, Scripts, Szenen, Blueprints und Helfer.
🧩Aufbau: UI und YAML
Bewegung im Flur → Licht an, nach 2 Minuten wieder aus. Jede neue Bewegung startet die Wartezeit neu.
Der UI-Editor speichert in automations.yaml – beides ist dieselbe Automation. Die id braucht der Editor, um sie wiederzufinden. Seit 2024.10 heißen die Schlüssel triggers:/trigger:, conditions: und actions:/action: (alte Schreibweise platform:/service: funktioniert weiter).
📚Bausteine im Überblick
| Trigger | feuert, wenn … | Beispiel |
|---|---|---|
| state | Zustand (oder Attribut) einer Entität ändert sich | to: "on", from:, for: |
| numeric_state | Zahl über-/unterschreitet eine Schwelle – nur beim Überschreiten | above: 25 |
| time | feste Uhrzeit oder Zeit aus einem input_datetime | at: "22:00:00" |
| time_pattern | regelmäßig, z. B. jede 5. Minute | minutes: "/5" |
| sun | Sonnenauf-/-untergang mit Versatz | event: sunset, offset: "-00:30:00" |
| event | beliebiges Event auf dem Bus | event_type: timer.finished |
| mqtt | Nachricht auf einem MQTT-Topic | topic: haus/klingel |
| template | Template wird wahr | value_template: "{{ … }}" |
| homeassistant | Start/Stopp von Home Assistant | event: start |
| zone · device · webhook · tag · calendar … | und viele weitere |
| Condition | prüft … |
|---|---|
| state | Entität hat (gerade) einen Zustand |
| numeric_state | Wert liegt über/unter einer Grenze |
| time | Uhrzeit-Fenster und Wochentage (über Mitternacht möglich) |
| sun | vor/nach Sonnenauf-/-untergang |
| template | Template ergibt wahr |
| trigger | welcher Trigger (id) hat ausgelöst |
| and · or · not | Bedingungen verknüpfen |
| zone · device | Person in Zone, gerätespezifisch |
| Action | tut … |
|---|---|
| action: domain.service | Action aufrufen (light.turn_on, notify.…, scene.turn_on) |
| delay | warten (Sekunden oder HH:MM:SS) |
| wait_template / wait_for_trigger | warten, bis etwas passiert (mit timeout) |
| condition | Inline-Bedingung: ist sie falsch, endet die Ausführung |
| choose · if/then/else | Verzweigungen |
| repeat | Schleifen: count, while, until, for_each |
| parallel · sequence | Aktionen gleichzeitig oder als Gruppe |
| event · variables · stop | Event feuern, Variablen setzen, beenden |
to/from feuert der State-Trigger auch bei reinen Attributänderungen. Mit to: null nur bei echten Zustandswechseln.trigger/0, condition/0, action/1) – der beste Debugger. Standardmäßig werden die letzten 5 gespeichert (trace: stored_traces).🔀Modi: single · restart · queued · parallel
Auf die obere Zeitachse klicken, um Auslösungen (▼) hinzuzufügen oder zu entfernen. Jede Ausführung: Event → delay: 20 → fertig.
mode: single – (Standard) Läuft schon eine Ausführung, wird keine neue gestartet – Warnung im Log.mode: restart – Laufende Ausführung stoppen, neu beginnen (nur wenn die Conditions erfüllt sind).mode: queued – Nacheinander, garantiert in Reihenfolge. max zählt laufende + wartende.mode: parallel – Unabhängige Ausführungen gleichzeitig. max begrenzt die Anzahl.Legende: farbiger Balken = Ausführung, blass mit ✕ = durch restart gestoppt, gelbe Linie = wartet in der Warteschlange, ⚠ = verworfen (Log: „Already running“ bzw. „Maximum number of runs exceeded“; Stufe über max_exceeded, Standard warning).
- alias: Flurlicht bei Bewegung
mode: restart # jede neue Bewegung startet die 2 Minuten neu
triggers:
- trigger: state
entity_id: binary_sensor.flur_bewegung
to: "on"
actions:
- action: light.turn_on
target: { entity_id: light.flur }
- delay: 120
- action: light.turn_off
target: { entity_id: light.flur }
- alias: Klingel-Durchsagen
mode: queued
max: 25 # Standard wäre 10
max_exceeded: silent # Standard: warning📜Scripts, Szenen, Blueprints, Helfer
📜 Scripts
Eine Folge von Actions ohne Trigger – aufrufbar wie eine Action (script.gute_nacht), mit Feldern (Parametern) und denselben Modi wie Automationen.
gute_nacht:
alias: Gute Nacht
mode: single
fields:
helligkeit:
description: Restlicht im Flur in %
example: 10
sequence:
- action: light.turn_off
target: { area_id: wohnzimmer }
- action: light.turn_on
target: { entity_id: light.flur }
data:
brightness_pct: "{{ helligkeit | default(10) }}"🎬 Szenen
Eine Szene speichert Zielzustände: „Wohnzimmer gedimmt, Rollladen zu“. scene.turn_on stellt sie her. Der Zustand der Szenen-Entität ist der Zeitstempel der letzten Aktivierung.
- id: fernsehabend
name: Fernsehabend
entities:
light.wohnzimmer_decke:
state: "on"
brightness: 77
cover.schlafzimmer_rollladen: closed
light.flur: "off"Im Simulator: Taster lang drücken → Szene „Fernsehabend“.
🧩 Blueprints
Vorlagen für Automationen/Scripts mit Eingaben (!input). Einmal schreiben, mehrfach mit anderen Entitäten nutzen – oder per URL aus der Community importieren.
blueprint:
name: Licht bei Bewegung
domain: automation
input:
sensor:
name: Bewegungsmelder
selector:
entity:
filter: { domain: binary_sensor, device_class: motion }
lampe:
name: Licht
selector:
target:
entity: { domain: light }
mode: restart
triggers:
- trigger: state
entity_id: !input sensor
to: "on"
actions:
- action: light.turn_on
target: !input lampe🎚️ Helfer
Virtuelle Entitäten für Zustand in Automationen – in der UI unter Einstellungen → Geräte & Dienste → Helfer.
input_booleaninput_numberinput_selectinput_datetimeinput_text · input_buttoncountertimerTemplate-Sensor · Gruppe · Schwellwert …🧪Templates
data:, Nachrichten), kommen Templates zum Einsatz. Probieren Sie sie im Template-Tester gegen das Musterhaus aus.