Send an alert when my Garage Door has been left opened for 15 minutes

Just the slightly janky and limited Automation approach. It works well and is easy to understand but “dumb” compared to alerts. The limiting factor Alerts for me is still calling a script when the alert triggers. I have the script triggering a TTS message on my wall panel via MQTT which cannot currently be called from alerts. I think TTS support was added into the Alert feature but only for actual TTS messages not view MQTT the way I have to do it currently. But I could be wrong.

alias: 'Security: Garage Door Remains Open'
description: ''
trigger:
  - platform: state
    entity_id: cover.garage_door
    for: '00:15:00'
    from: closed
  - platform: state
    entity_id: cover.garage_door
    for: '00:30:00'
    from: closed
  - platform: state
    entity_id: cover.garage_door
    for: '00:45:00'
    from: closed
  - platform: state
    entity_id: cover.garage_door
    from: closed
    for: '00:60:00'
  - platform: state
    entity_id: cover.garage_door
    from: closed
    for: '00:75:00'
  - platform: state
    entity_id: cover.garage_door
    from: closed
    for: '00:90:00'
condition: []
action:
  - service: script.turn_on
    data: {}
    entity_id: script.garage_door_alert_wall_panel
  - data: {}
    service: script.turn_on
    entity_id: script.garage_door_alert_phones
mode: single

Only downside to the current method really is that it doesn’t loop forever as specific intervals. So basically you have to repeat the triggers for the intervals you want. I don’t find this that big of a deal for now since I figure if it’s still open after that many alerts it’s probably on purpose or the crappy MyQ integration is probably broken again and it’s actually closed already but still shows as open. In either case I don’t actually want it to keep alerting endlessly I want it to “give up” after a while.

Apparently you can setup an automation or something to watch for an alert to trigger and then run a script but I don’t like that kind of abstraction. If I go to troubleshoot that later I have to hunt and poke around for what’s sending (or not sending) the alerts since there is no direct connection between the Alert and the script, they’re abstracted away from each other.

I am using this a a filtered card. How can one add the time it has been open to card? Thanks