Disable TTS with Actionable Notification

Hey everyone,

I’m also failing with my automation.
The goal is:
As soon as my water detector detects water in the basement (simulated in the test automation using a test button), my HomePod reports via TTS that water has been detected and should repeat this until my “Turn off alarm” notification is pressed.

Here’s my automation:

alias: Test2
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_button.testtaste
    id: Testtaste
conditions: []
actions:
  - variables:
      action_silence: "{{ 'SILENCE_' ~ context.id }}"
    enabled: true
  - action: notify.mobile_app_iphone
    metadata: {}
    data:
      message: Test
      title: Test
      data:
        actions:
          - action: "{{ action_silence }}"
            title: Alarm deaktivieren
            icon: sfsymbols:bell.slash
    enabled: true
  - repeat:
      sequence:
        - action: tts.cloud_say
          metadata: {}
          data:
            entity_id: media_player.sonos_one
            message: Test {{ trigger.to_state.name }}
      until:
        - condition: template
          value_template: "{{ wait.trigger.event.data.action == action_silence }}"
  - wait_for_trigger:
      - trigger: event
        event_type: mobile_app_notification_action
        event_data:
          action: "{{ action_silence}}"
    timeout:
      hours: 0
      minutes: 10
      seconds: 0
      milliseconds: 0
    continue_on_timeout: false
    enabled: true
mode: single

Unfortunately, the text is only played once, and the push notification appears.

I assume it’s due to the until template.

until:
        - condition: template
          value_template: "{{ wait.trigger.event.data.action == action_silence }}"

Does anyone have any ideas about this?

Best regards
Marco

Well the action_silence in the last code block needs ' ' around it.
I would probably start with this as two automations.
One that handles the message and sets a boolean to on/off.
And the other that does the speaking which then checks this boolean for stopping the message.