Alexa Media Player Wiederholung von Aktionen funktioniert nicht

Moin.
Ich habe eine Frage zu meiner Rauchmelder-Automation.

In kürze meine Automation (so wie sie sein soll):

  1. Ein Rauchmelder löst aus
  2. Über die ID kann ermittelt werden welcher ausgelöst hat
  3. Im “Dann”-Bereich gibt es eine If-Abfrage mit “Ausgelöst durch” damit die kommende Alexa Durchsage den passenden Text abspielt.
  4. Es soll eine Wiederholung starten bis ich draußen entweder unsere Reolink Klingel oder einen smarten Button auslöse um sicher zu gehen, dass alle raus sind.
  5. Die Wiederholung beinhaltet einen Alarmton / Sirene von den Amazon Sounds (amzn_sfx_scifi_alarm_01) und einer anschließenden Alexa Durchsage (TTS) um den Bereich anzugeben, in dem der Rauch erkannt wurde.

In meinen Augen habe ich eigentlich alles passend eingestellt. Nur wird da nichts wiederholt…

Wenn ich die einzelnen Komponenten teste, funktioniert jedes für sich. Nur die Wiederholung will nicht. Es werden nur einmal beide Sound (Sirene + TTS) abgespielt. Die Lautstärke wird auch richtig angepasst. Die Wiederholung dieser klappt aber nicht.

Hier der YAML-Code meiner Automation:

alias: Feuermelder
description: ""
triggers:
  - type: smoke
    device_id: 488c02164ed31b2a06a9cd3bc34f936b
    entity_id: b2f3773eedbbf1425efafc6bac94694a
    domain: binary_sensor
    trigger: device
    id: FM WZ NH
    alias: FM WZ NH
  - alias: FM SZ NH
    type: smoke
    device_id: d6537f7b998419c75914d7761d5c0e8c
    entity_id: 637fb16fa11d1178b88cf9dfe684c7da
    domain: binary_sensor
    trigger: device
    id: FM SZ NH
  - alias: FM FL NH
    type: smoke
    device_id: 4dfed92b184133c79ac2847f6c339c4d
    entity_id: b28e7de9191f73031d3c86bf41ece5b5
    domain: binary_sensor
    trigger: device
    id: FM FL NH
conditions: []
actions:
  - if:
      - alias: Wenn ausgelöst durch FM WZ NH
        condition: trigger
        id:
          - FM WZ NH
    then:
      - repeat:
          until:
            - type: is_on
              condition: device
              device_id: 16b3527d9127003c73ac7c6f311b0447
              entity_id: 65ec39974d97b64f985fb0a4c47a7d62
              domain: binary_sensor
          sequence:
            - sequence:
                - action: media_player.volume_set
                  metadata: {}
                  data:
                    volume_level: 1
                  target:
                    label_id: echo
                - data:
                    media:
                      media_content_id: amzn_sfx_scifi_alarm_01
                      media_content_type: sound
                      metadata: {}
                  action: media_player.play_media
                  target:
                    label_id: echo
                - action: notify.alexa_media
                  metadata: {}
                  data:
                    message: >-
                      Der Rauchmelder im Wohnzimmer im neuen Haus meldet Rauch.
                      Bei Gefahr das Haus in Richtung Auffahrt verlassen.
                    target:
                      - media_player.wohnzimmer
                      - media_player.kuche
                      - media_player.schlafzimmer
                      - media_player.lara
                      - media_player.henry
                      - media_player.linus
                      - media_player.lennox
                      - media_player.keller
                      - media_player.echo_partyraum
                      - media_player.janis_echo_dot
                      - media_player.buro
                      - media_player.tabletbrowser
mode: single

Vielleicht hat hier jemand eine Idee was hier an der Automation nicht richtig ist.

Kannst Die Automation auch ein wenig schlanker gestalten.
Packe die Raummelder in eine Gruppe (Helfer)
Dann brauchst Du nicht alle RM als Auslöser aufführen und auch die Unterscheidung bei der Aktion ist nicht mehr notwendig.

BTW: Die Media Plaxer kannst Du auch gruppieren und nur die Gruppe ansprechen.

triggers:
  - entity_id:
      - binary_sensor.alle_rauchmelder
    to: "on"
    trigger: state
      message: >-
        {% for entity in trigger.to_state.attributes.entity_id %} {% if
        states(entity) == 'on' %} {{ state_attr(entity,'friendly_name') }} 
        meldet Rauchalarm!  Bei Gefahr das Haus in Richtung Auffahrt verlassen.{% endif %} {% endfor %}

Bezüglich der Wiederholungen, füge eine Verzögerung am ende der Schleife. So das die Ansage auch zu ende ausgeführt werden kann, bevor diese wiederholt wird.

          sequence:
            - sequence:
                - action: media_player.volume_set
                  metadata: {}
                  data:
                    volume_level: 1
                  target:
                    label_id: echo
                - data:
                    media:
                      media_content_id: amzn_sfx_scifi_alarm_01
                      media_content_type: sound
                      metadata: {}
                  action: media_player.play_media
                  target:
                    label_id: echo
                - action: notify.alexa_media
                  metadata: {}
                  data:
                    message: >-
                      Der Rauchmelder im Wohnzimmer im neuen Haus meldet Rauch.
                      Bei Gefahr das Haus in Richtung Auffahrt verlassen.
                    target:
                      - media_player.wohnzimmer
                      - media_player.kuche
                      - media_player.schlafzimmer
                      - media_player.lara
                      - media_player.henry
                      - media_player.linus
                      - media_player.lennox
                      - media_player.keller
                      - media_player.echo_partyraum
                      - media_player.janis_echo_dot
                      - media_player.buro
                      - media_player.tabletbrowser
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 20
                    milliseconds: 0
mode: single

Noch ein Tipp: Verwende nicht die kryptischen Device ID’s, sondern arbeite ausschließlich mit Entitäten.

Gruß Osorkon.

Hi.
Danke für den Tipp mit der Verzögerung. Damit hat es mit den Wiederholungen geklappt.

Zu deinem Vorschlag die Automation schlanker zu machen, kann ich nur sagen, ich werde es versuchen, nur ist mir die Syntax überhaupt nicht geläufig. Ich verstehe gerne Sachen, die ich in meiner Automation aufnehme.

message: >-
        {% for entity in trigger.to_state.attributes.entity_id %} {% if
        states(entity) == 'on' %} {{ state_attr(entity,'friendly_name') }} 
        meldet Rauchalarm!  Bei Gefahr das Haus in Richtung Auffahrt verlassen.{% endif %} {% endfor %}

Hier zum Beispiel erkenne ich nicht, wie die Echo Geräte angesprochen werden. Auch sehe ich keine Gruppe, in die die Echo Geräte drin sind.

triggers:
  - entity_id:
      - binary_sensor.alle_rauchmelder
    to: "on"
    trigger: state

Hier verstehe ich das… (glaube ich). Ich muss eine Binärsensor-Gruppe erstellen, in die ich alle “Rauch”-Entitäten einfüge. Sobald einer in der Gruppe Rauch erkannt, triggert state (was ich nicht weiß, was es ist).

Hier wird nur die Nachricht generiert, auf welchen Geräten die Nachricht ausgegeben werden soll, definierst Du unter Zielen (target)

state = Zustand.
Ein Zustand Auslöser, wenn Zustand sich ändert zu “on”

Gruß Osorkon