I have found that if you want something to happen reliably you have to keep on doing it until it’s done. With home automation lots of things can go wrong that prevent an automation from executing that should have executed: HA was down at the time of the event, HA never got an event because of a network issue, HA got the event and executed the automation but some other element dropped it (zigbee device not reachable at that particular moment, etc)
So if I really want something to happen I have found that I need to trigger the event several times in order to make sure that it gets done.
As an example, I want my outdoor lights to turn on when the sun goes down, and off when the sun comes up. Lots of people probably do that. I used to do it by having an EVENT trigger based on sun.sun, but I don’t do that anymore–it’s just not reliable enough. Lots of days I come out in the morning and find the lights are still on, when they should be off. Some days it works, some days it doesn’t. Probably zigbee issue? Or network issue? Anyway, it happens.
So I solved that by switching the trigger to a time pattern: Trigger an event every 30min, with condition sun above the horizon and outdoor lights are on, and turn the outdoor lights off. So that works pretty well! But it runs all day long.
I’d really like to be able to use a range.
I have lots of examples like that, where I have moved to using time pattern triggers to ensure something happens reliably. Mostly routines that turn devices off: turn lights off when no one is around, turn heaters off when no one is around, turn the alarm on if no one is home. I have achieved reliability with time patterns.
But some of my time patterns are clunky. If I want something to happen every evening hour I have to set up a different time pattern trigger for 7pm, 8pm, 9pm, 10pm, and 11pm. I should be able to say 7-11 for that.