Reproducible Evidence that Zen31 Driver is broken. PLEASE fix this driver?

Simple to re-produce one of the problems with the Zen31 driver. P-p-p-p-p-p-please @bcopeland ?

Button Rule: Pico Button 5 toggles the Zooz-White to 100%

Room Lighting Rule: When there's motion, turn the Zooz-Color on to Red 100%...but if I turn the Zooz White on manually, turn off the red

The result of this action is:

  • Walk into room and the Red Turns on 100%
  • Press the Pico5 starts to turn on the White LED's, but then it fades out because it's executing the command to turn off the RED Led's (which is acting on the parent level somehow???)
  • Press Pico 5 button again and BOTH the White AND the Red LED's turn on.
  • Press it a 3rd time and the White Turns off but the RED stays on.
  • Red is now on forever until you turn it off manually.

(* If you keep testing this, sometimes the "level" of the parent device ends up stuck at a non-100 number, for some unknown reason, say 89%. Because of this neither child device will ever go above 89% even though they are set to be 100%.)

Here is proof from logs that this is broken: @bcopeland

I just captures some more proof from HE logs. This shows the same rule being triggered over and over.

The first time I triggers here, it sets Kitchen-Under-White to 95% and reports the parent device Kitchen-Under to be 99%.
The next time I triggers, it sets Kitchen-Under-White to 95% and reports the parent device Kitchen-Under to be 94%.

This keeps happening and the parent device continues to get lower and lower, preventing proper level for the child devices.

If you unplug the device and plug it back in, does it reset to 100%?

This is a few minutes later, now down to 34%

Could this be the same issue?

1 Like

Yes, I just un-plugged it and plugged it back in. It's back to 99% (the device doesnt do 100%, only 99%)

Almost certainly the same problem you describe.

I'm engaged with Zooz support too, so hopefully we can finally get a fix for this issue.

If this turns out to be a driver issue and you get them to fix it, you'll be my hero. I've since moved them to be on extension cords so I can just unplug and plug back in instead of flipping a breaker. But I have to reset them every few days or they'll be too dim to be useful.

1 Like

It's important to note, this doesnt happen EVERY time the device turns on/off. From my logs it's only happening to the Under-cabinet lights...but it will eventually also happen to the over-cabinet lights.

I think this is true. Otherwise I'd run into issues super quick since I'm only turning on at a low percent.

The parent/child device setup still confuse me to be honest. If I wanted to see if I see the same thing as you... What steps should I do for a test, and then which "device" should I look at the logs for? Your log screenshot confuses me because it shows multiple devices and I'm not sure what is what.

What kind of logging should I turn on for what device? What do I want to check for? To see if there is a mismatch between what % level the log says it turned on at vs the % level reported on the device page?

I was just looking at all devices, so that I could see the interaction of the child devices being "set" and the "info" returned from the parent. (I turned off my chatty devices like presence sensors temporarily to make it a little more clean)

1 Like

@jtp10181 has become the go-to for feature-rich Zooz drivers. Don't know if has has any ZEN31 projects in the pipeline.

I actually tagged this thread earlier to see what transpired... I have been asked before to make a ZEN31 driver. I do not have one in my possession which would be needed for this more complex device. I was sort of watching this post recently, Excess inventory someone selling some used ones. Not sure that I would actually have a use for them so I did not purchase, but if someone wants to send me one?

Would need to figure out a power supply and not sure if I would need some LED lights to test properly, or I could just trust what the device is telling me.

Also not sure if these issues are driver or hardware related. So, a new driver may not be able to solve it but I would sure try.

1 Like

@jtp10181 I'm in touch with Zooz support about this and they seem concerned. Gonna give them a couple weeks, and see if anything can be done. If not, and I'm reasonably sure that it's not a hardware problem....then I'll send you a Zen31 + light strip + power supply.


Sounds good, I just wrapped up another custom driver for a plug in dimmer someone sent me, and I have a ZEN54 dimmer module on the way to work on as well!

Will Code for Devices


So I started working on this and I think I see how a driver could slowly degrade the brightness as described. It is because the "V" of the HSV is often mingled with the level attribute, even the color picker for the Set Color command pulls in the level for it. But this RGB controller (along with many others) the level is independent of the RGB color.

Taking that into consideration, hopefully my driver will not have the same problem.

I hope to have a beta version within a few days. At this point I do not think I will use child devices to start with, but may add an option to create them because depending on how you use this controller I can see how they could be handy.

What are thoughts about having a command to manually set the R,G,B values? So you can manually control each channel?

Right now I have the setColor working, and setLevel. I dont have a white LED connected (I only have a RGB strip not RGBW).

I'm having different issues but this zen31 device or driver has been extremely frustrating when trying to figure out why one day it manages the LED strips and the next day it doesn't.

I dont personally see a need to have manual commands for R,G,B. HE has great commands for "set color" etc.

So if not child devices? How would you be able to say "turn on Color Red, at 50%"? or "Turn on white at 50% but only the white LED, not r+g+b"?

If you private msg me your address I'll send you some scraps of RGB+W from my last project.

PM sent.
Thats what I am working on figuring out how it would work. I am using the setColor already and have that working as I want. There is a "Color Mode" attribute and also a Color Temperature, which if used when you set the color temp to White I would turn off RBG mode and either only do white dimming via setLevel, or possibly simulate color temps using the RGB lights.

Other possibilities are to have just a child for White and use the main for RGB, or have two Childs similar to the stock driver.

So far I am just getting the color commands all figured out and coded, especially since I dont have a white LED connected yet to see how it will all work together.

Adding all the parameters and also the button press options as well, if using momentary switches.

I expect this to be a little rough as I iron out the different use cases and what types of control will work the best for different situations.

1 Like

Success on separating the RGB from the brightness: What is string format for color attribute?

Now that I am thinking about it more. Is there even a need or desire to control the brightness level separate from the RGB color values? In theory I think R of 125 / 100% should be ~= R of 250 / 50%

Maybe I just keep the actual level on the device at 100% and control the brightness only via the HSL/RGB Values if there is no visible difference. setLevel would still work and change the "level" value, but it would actually just set new RGB values on the device based on HSL to RGB conversion.

I will have to do some tests with more complex color values and see if it holds true visually on the LED strip.

1 Like

That is true. I do kind of currently use "Red at 50% brightness" for my nightlight-function. But I could achieve the same with using a darker shade of red.

Just dont know how that complicates using "white at 50%".