“turn on light at sunset” will trigger at sunset and turn on the lights but you don’t want them to.
Ah, got it. I misread your sentence as “all your other automations will be triggered” rather than “can be triggered”. I get it now.
Yes, that’s a pitfall. But the pattern I use today already solves it. For example, here’s how I would do Away/Vacation today (by disabling automations from running):
- Create three groups. One with all light automations, one with all climate automations, and one with the “fake lighting” automations.
- When entering “Away”, turn off light and climate groups
- When leaving “Away”, turn on light and climate groups
- When entering “Vacation”, turn off light and climate groups, turn on “fake lighting” group
- When leaving “Vacation”, turn on light and climate groups
Each mode assumes the same default starting state, adds/removes features accordingly, then restores to default when done.
(Note: It might be possible for the “leaving old mode” trigger to happen after the “enter new mode” trigger, but I’ve never seen it happen, and can think of a few solutions if it does)
what you describe does not sound scalable/maintainable. For example I don’t understand why you need to check your modes when you add a step to an automation.
A new step might now offend one of your modes when it didn’t before. So, even if just in your head, you need to review the modes to see if you need to add a conditional.
Worse, when you add a new mode you need to review each automation and add duplicate conditionals to each “offender”.
To me, that’s what wasn’t scalable. Adds duplication, adds logic branching making the automation harder to reason about, and I found myself needing to remember special snow-flake things for certain steps types.
Now, adding a new house mode trivial. I don’t have to change any automations, I just make one automation that turns on a few existing groups.
The annoying part is maintaining those groups. Hence my WTH. Services are like self-descriptive “groups” that represent the same category of actions. If I could disable services, I wouldn’t need as many groups. All automations would run freely, but certain steps wouldn’t.