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.