⚡Ereignisfluss: vom Taster zum Licht
Ein kurzer Druck auf den Flur-Taster schaltet das Wohnzimmerlicht. Dazwischen liegen elf Schritte durch Integration, State Machine, Event Bus, Automation und Action-Registry. Die Werte stammen aus einem echten Durchlauf der nachgebauten Engine (Tasten ← →).
Ausgangslage
Das Wohnzimmerlicht ist aus. Die Automation „Flur-Taster schaltet Wohnzimmerlicht“ (mode: single) hat sich beim Start beim Event Bus angemeldet und wartet auf Zustandsänderungen von event.flur_taster.
{"alias": "Flur-Taster schaltet Wohnzimmerlicht","mode": "single","triggers": [{"trigger": "state","entity_id": "event.flur_taster"}],"conditions": [{"condition": "template","value_template": "{{ trigger.to_state.attributes.event_type == 'single' }}"}],"actions": [{"action": "light.toggle","target": {"entity_id": "light.wohnzimmer_decke"}},{"action": "counter.increment","target": {"entity_id": "counter.taster_druecke"}}]}
🔗Warum der Context so wichtig ist
parent_id auf den auslösenden Context zeigt.user_id im Context. In Templates lässt sich so unterscheiden: trigger.to_state.context.user_id is not none → manuell geschaltet.parent_id) oder einer Condition lässt sich das erkennen – der Modus single verhindert nur Überlappung.🧾Die Automation dazu
# automations.yaml
- id: taster_wohnzimmer
alias: Flur-Taster schaltet Wohnzimmerlicht
mode: single
triggers:
- trigger: state
entity_id: event.flur_taster
conditions:
- condition: template
value_template: "{{ trigger.to_state.attributes.event_type == 'single' }}"
actions:
- action: light.toggle
target:
entity_id: light.wohnzimmer_decke
- action: counter.increment
target:
entity_id: counter.taster_drueckeEvent-Entitäten
Taster und Fernbedienungen werden in neueren Integrationen als Event-Entität (Domain event) abgebildet: Der Zustand ist der Zeitstempel des letzten Ereignisses, das Attribut event_type sagt, was passiert ist (single, double, long_press – die Werte liefert die Integration in event_types).
Weil sich der Zeitstempel bei jedem Druck ändert, feuert ein State-Trigger ohne to: zuverlässig – auch wenn zweimal hintereinander „single“ kommt.
Vereinfachung: Die Zigbee-Rahmen in Schritt 1 und 8 sind schematisch; echte ZHA-Geräte können je nach Modell andere Cluster/Befehle nutzen.