Maybe there is a way to already do this. I'm not sure. I would like to be able to have scenes that do not "turn on" if all the components of that scene just happen to be true. I want to create rules where the trigger is the scene turning on, but this is problematic when the scene can just be randomly triggered throughout the day.
I could create a virtual switch and make the virtual switch turn on the scene and also do whatever else I need. But to me that feels like a workaround. Now I have 2 virtual devices for the scene. There's already a virtual device for the scene.
My proposal: Add a "Scene has turned on [discrete]" trigger. With my switches, I get 2 different kinds of on; physical and digital. I'd like the same for scene switches.
EDIT: So the reason I want this, is not everything can be set in a scene. So I want to have rules that trigger when a scene is turned on, but only when I explicitly turn it on.
I didn't know any of them worked like that!
I get what you want, but from a programming perspective this might be where it becomes diffucult. Not all devices are "on" in the definition of a scene.
I'm talking about Rule Machine. If I make a trigger "Scene X has turned on" and all the devices in scene X just happen to be what the scene it, the scene "turns on" and will trigger my rule to run.
edit: I'm not sure you actually read my post. I mentioned the virtual switch workaround.
Could the scene be "turn on switch X" then the RM rule be to respond to the switching of that to on?
Because the scene sets about 20 devices. Talk about a cumbersome trigger... lol.
Fair enough. What about including a virtual switch in the scene definition? To capture that the scene has been activated?
A scene controller is basically already a virtual switch. I just feel like I shouldn't need yet another virtual device in my list just to control another virtual device that does basically the same thing.
So can't you use that scene controller to trigger the rules you want?
I can, but here's a simple example of what can happen.
- Setup a goodnight scene that turns off all the lights except for one in the bedroom.
- Setup a rule that locks the doors and closes the garage when the goodnight scene is triggered.
- Now if someone were to turn off all the lights in the house and the bedroom light is on, the goodnight scene "turns on" and triggers the above rule despite is being 10 in the morning.
I only want step 2 to happen if I explicitly turn on the scene. Not because it implicitly turns on because all the components of the scene line up.
So you only care to trigger the rule if the scene activator device is used? If so, would it be possible for you to use activate the scene via the "Push" command (e.g.,
push(1)) instead of the "On" command, then trigger this rule based on the button event instead of the switch event? (This will require some care with how it gets turned on; I think the default Rule Machine actions to activate a scene will use the switch-style "On" command, but you could use Push a Button or a custom action instead. Similar with other apps, which might use either option, so you just need to be aware.)
The scenario I listed above is actually a simplified version of the problem I am having. This scene is pretty much the only thing I don't have automated since on any given night, we might go to bed in different orders and at different times. So I shared the scene activator with Google Home and we just say "okay Google, goodnight" to trigger it.
One of the things the scene does though is turn on some lights leading to the bedroom. Part of the rule that triggers when the scene activates waits for motion in the bedroom and then turns the lights off after a short timer.
We were having issues with the lights "randomly" turning off and eventually I figured out it was because the scene was turning on which triggered the rule.