Rauchmeldergruppe Fehler im trigger.to_state

Hallo,

ich habe eine Rauchmeldergruppe (binary) erstellt und wollte über eine Automation eine pushover Nachricht erstellen, die auch mitteilt, welcher Rauchmelder ausgelöst hat.

So sieht mein Code aus:

alias: Sicherheit - Rauchalarm entdeckt
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.rauchmeldergruppe
    to: "on"
condition: []
action:
  - service: notify.pushover
    data:
      message: >-
        {% for entity in trigger.to_state.attributes.entity_id %} {% if
        states(entity) == 'on' %} {{ state_attr(entity,'friendly_name') }} 
        meldet Rauchalarm!  {% endif %} {% endfor %}
      title: Rauch endeckt!
      data:
        sound: persistent
        priority: 2
        retry: 60
        expire: 3600
mode: single

Aber ich erhalte diese Fehlermeldung beim Testen der Aktion:

Error rendering data template: UndefinedError: ‘trigger’ is undefined

Was mache ich falsch?

Du triggerst die Automation manuell, nehme ich an. Dann gibt es keinen auslösenden Trigger. Deshalb ist dieser undefined.

Kann ich es trotzdem testen? Zustand auslösen?

Du kannst dir einen Helfer, z. B. input_boolean (Schalter), anlegen und diesen zusätzlich als Trigger festlegen. Dann den Schalter einmal aktivieren.

Edit:
Oder du versuchst über Entwicklerwerkzeuge - Zustände den Zustand eines Sensors manuell zu überschreiben.

Oder Testspray verwenden … :slightly_smiling_face:
Einfacher sollte das sein was @sirector empfiehlt.

BTW: Für so etwas gibt es schon Blueprints.
Blueprint Smoke Sensor - Blueprints Exchange - Home Assistant Community (home-assistant.io)

Aber eine Rauchmeldergruppe anzulegen ist auch ein interessanter Ansatz. Vielen Dank für die Idee.

Testspray ist da und es klappt doch nicht. Die Rauchmeldergruppe ist auf on, aber mehr auch nicht.

Nun wollte ich doch eine Automation mit allen Rauchmeldern als Auslöser erstellen. Nur dann passt ja dieses nicht mehr:

message: >-
        {{ expand('binary_sensor.rauchmeldergruppe') | selectattr('state', 'eq',
        'on') | map(attribute='name') | list | join (', ') }} - meldet
        Rauchentwicklung.

Das bezog sich ja auf die Gruppe. Wie kann ich das denn jetzt ändern, damit der Auslöser mit übertragen wird? Ich habe Auslöser ja nun so viele? Meine Automation sieht jetzt vorerst so aus mit den falschen Message Daten noch drinnen:

alias: Sicherheit - Rauchalarm entdeckt
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.rauchmelder_esszimmer_oben_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_flur_keller_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_flur_oben_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_flur_unten_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_gastezimmer_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_kuche_unten_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_schlafzimmer_oben_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_schlafzimmer_unten_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_wohnzimmer_oben_rauchmelder_alarmstatus
    to: primary_alarm
  - platform: state
    entity_id:
      - sensor.rauchmelder_wohnzimmer_unten_rauchmelder_alarmstatus
    to: primary_alarm
condition: []
action:
  - service: notify.pushover
    data:
      message: >-
        {{ expand('binary_sensor.rauchmeldergruppe') | selectattr('state', 'eq',
        'on') | map(attribute='name') | list | join (', ') }} - meldet
        Rauchentwicklung.
      title: Rauchmelder melden Rauchentwicklung!
      data:
        sound: persistent
        priority: 2
        retry: 60
        expire: 3600
  - service: notify.notify
    data:
      title: Rauchmelder melden Rauchentwicklung!
      message: >-
        {{ expand('binary_sensor.rauchmeldergruppe') | selectattr('state',
        'eq',     'on') | map(attribute='name') | list | join (', ') }} -
        meldet     Rauchentwicklung.
  - service: notify.persistent_notification
    data:
      message: >-
        {{ expand('binary_sensor.rauchmeldergruppe') | selectattr('state',
        'eq',     'on') | map(attribute='name') | list | join (', ') }} -
        meldet     Rauchentwicklung.
      title: Rauchmelder melden Rauchentwicklung!
mode: single

Die in der template.yaml angelegten binary Sensoren sehen so aus. Diese habe ich aus den Netz kopiert. Ich hoffe der Fehler liegt nicht darin irgendiwe:

- binary_sensor:
  - name: Rauchmelder Esszimmer oben
    state: |
      {{ states('sensor.rauchmelder_esszimmer_oben_rauchmelder_alarmstatus') | string != "idle_off" }}
    unique_id: rauchmelder_wohnzimmer
    device_class: smoke

Versuche es mit

message: Alarm erkannt von {{ trigger.from_state.name }}
2 „Gefällt mir“

Perfekt. Danke Dir. Wochenende gerettet :smiley: