Scene seems to turn itself on after being turned off by a trigger

[C8 2.3.6.123]

Goal, Use a Zooz ZEN30 relay button to act as a manual scene control.

Issue, When I press the Zooz relay button (aka button 1) the scene goes off as it should but comes right back on. Devices not associated with the scene stay off.
The log highlighted with the red arrow seems to be the culprit but I don't know why it is being triggered.

The Zooz relay switch (output) is not connected to anything)

Thanks
John

Turn on logging for that rule.

Also, go to the Accent Lights device, Events tab, and see what is triggering that unexpected On event. It should tell you what app called the command.

Events are empty. It seems most devices / apps I've checked have no event entries.
Scene app has no "events" control, that I was able to find.

I'm at a loss here, looking at the Zooz relay events it seems the unexpected "on" command is coming from the Zooz relay button, however the logs show differently.
I can't get at the driver so troubleshooting is limited.

See the data at 23:xx:xxx hours

What is the "A01 Zooz Relay Button Scene Control" app? If that's where it says the command is coming from, that must be it.

I'm using the built in device driver. Then using RM to "trigger" on the Zooz relay change. So no App except for RM.

Let me rephrase that (I assumed it was an app, as it normally is): what is "A01 Zooz Relay Button Scene Control"? If you click that link, what does it take you to?

I understood. Yea I've been playing with apps but this was supposed to be a vanilla RM rule.

"A01 Zooz Relay Button Scene Control" is the name of the RM rule (shown in the 1st post).

Now I see. Are you sure this isn't all happening because your rule turns (some) lights off if they're on, then checks if they (some of the same) are off and turns them on? If the events happen fast enough, that second condition will be true by the time it is evaluated, so what you describe could happen.

Enabling all logging for that rule will help figure this out. Using a "full" conditional action and not a simple condition, plus an ELSE-IF instead of an IF, would ensure that only one of the two sets of actions is executed.

:point_up_2: as I already suggest above as well. Need to enable all the rule logging and then see logs.

It's not empty? You show a screenshot of it. It is saying that your rule is what is turning it on. Hence the need for the logs from the rule to see what is going on.

I see your point. I will update the rule and see what happens.
Just by thinking about the flow your supposition seems logical.

Thanks

Make sure you also enable all logging for the rule, as @jtp10181 also suggested a while up, to make troubleshooting easier if it doesn't do what you want. :slight_smile:

1 Like

I think I see it. Your rule is:

  • If Accent Lights is on, turn off lots of stuff including Accent Lights
  • If Accent Lights is off (which it always will be, thanks to the previous line), turn on Accent Lights and Window Lights

The second condition becomes true when the first one executes, because it's turning off the Accent Lights. Replace the second IF with an ELSE IF (or simply an ELSE) and you should be good to go.

1 Like

I caught that too but I noticed he said it happens when he turns it OFF, and then it comes back on right away, so the opposite order of the rule. So then I thought hmm maybe that's not it, lets see the logs. Still waiting for logs...

Once you pointed it out I realized when I look at a Rule I wasn't looking as if it was actual code.
Changed to If/else and rule is working fine now.

Thank you (and others who responded with similar info).

1 Like

The funny thing is, with a physical device, this would probably work -- calling off() sends a command to the device over the mesh, the device responds, and the status gets updated with the new reported state. By the time that happens, the second line will likely have already executed. It's still a race condition, but one you'll probably win most of the time.

But with a Group Activator, the state change happens immediately and queues the commands to the underlying physical devices. So this race condition bites you.

1 Like