[RELEASE] Zooz RGBW Dimmer (ZEN31)

Hello all,
Does anyone know a way to link two ZEN31 units together so they’re in sync 100% of the time? One device in SmartThings that drives multiple ZEN31 units (3 in my case).

I realize there are likely other feasible ways to skin the cat using WebCoRE, or even hardware wise running amplifiers and extension cabling, but in this installation having a master slave setup or something akin to it would work the best.


Have you tried the Color Coordinator Smart App? It’s available in the SmartApp menu in the new app or marketplace in Classic.

This device handler is working for the FGRGBWM-442 US 5.0 too.
Only warning I get:
unhandled: MeterReport(scale2: false, scale: 2, rateType: 1, precision: 1, meterValue: [0, 2], deltaTime: 0, meterType: 1, size: 2, scaledPreviousMeterValue: 0.0, scaledMeterValue: 0.2, previousMeterValue: [0, 0]) (1)

@krlaframboise Thank you for yet another great handler! I had a few questions to see if my setup is working correctly.

After your explanation of the RGB versus White CH up top I see my Zen31 behaving differently. When sending a color from webcore to the zen31 I keep the level to a lower setting so I can see the actual colors on and I notice that when color mixing the White CH is also on. So blue violet will have whatever combination of RGB on, but then also the White at the same level as the master setting. So I end up with colors that are mixed with white. In my case its warm white so everything turns a bit warmer. Is this normal behavior for this device?

After that I added in the child dimmer and enabled the white CH as a child and that does in fact only turn on the White which is great. The issue with that setup is that anytime I make a change to the level in the white child item, the strip seems to get confused and turns back on all the RGB’s. So in using the white child item its a single shot at setting the level, otherwise I have to turn the strip off and start over again. Is this normal behavior as well?

Edit #1. just tested this in webcore again. Send command to turn on white chid item at level 99. After 30 seconds, send turn off command. When it turns off, the LED strip returns to the last color and level that was used in the parent item.

Anything you do in the parent completely overrides the levels of each channel so you should really set the parent to 100% and use the child color device and child white device to control it.

I’ve got the Child Dimmer Device Handler installed as well as the Zooz RGBW Dimmer Device Handler. Should the Child Dimmer Device Handler be published or unpublished?

I’m trying to use this Zooz RGBW Dimmer as a means to turn on 12 Volt LEDs when a water leak sensor detects a leak. Four water leaks sensors each one dedicated to one of channels R, G, B or W. I’ve got this working and am able to control individual channels from both the SmartThings classic app and the New Mobile App. But I’ve got one problem. I’m hoping to use WebCore to write a script so that, for example, Hot Water Heater Leak Sensor when it detects moisture turns on Channel R which lights up the LED attached to Channel R and another script so that Washing Machine Leak Sensor turns on Channel G which lights up the LED attached to Channel G, etc.

The problem I’ve got is that WebCore only sees Zooz RGBW dimmer as a device and does not see the individual RGBW channels as individual devices. I tried the Child Dimmer Device Handler as Published and as Unpublished but do not the see individual channels in WebCore in either case.

This is in contrast to the Zooz Multirelay in which case I see each of the three relays as individual devices in WebCore (as well as the Multirelay itself) and can write scripts as described above.

Any help would be greatly appreciated.

Andrew Morris

Handlers always need to be published.

This handler works the same way, except I think there are one or more settings you need to enable in order for it to create the child devices.

I had “Create Child Dimmer for …” for each of RGBW enabled but did not have any of the “Create Child Devices for the Preset Programs” enabled. I enabled all of the Preset Programs and then the individual channels as well as the Preset Programs showed up as devices available for WebCore. Wrote the appropriate scripts in WebCore and tested these with the R and G channels for my application and they worked fine. All is well for what I’m looking to do.


Andrew Morris

@krlaframboise Just enabled the child color device to follow this scheme but in the ST app there is no color selector for the child color device? It just shows the basic on/off, ST timer and on/of schedule, and dimmer level.

I have also figured out that when the ZEN31 loses power and comes back online, the child white (and now possibly the child color) also come on upon a parent color/level setting. So the first time used after a power cycle the colors will be off since white CH is on. After a power cycle I have to turn off the white child item. No big deal but just an observation.

If you’re using the new mobile app, please check the settings screen to see if that setting is still enabled.

There was a bug in the new mobile app that didn’t populate the enabled boolean values so every time you opened the settings screen and changed any setting it would save all the boolean values as false and that would most likely delete the child devices so I’m hoping they’ve fixed it.

I just checked the code and it turns out you need to use the parent device to change the color, but if you want to turn RGB on/off or change the brightness you should use the child color dimmer device so that it doesn’t affect the white channel.

When using the device with multiple physical switches you can end up putting it into a state where it can’t turn back on so I had to build in some safeguards to try and prevent that which made the implementation somewhat clunky and might be causing this problem.

Sorry, but attempting to fix this would most likely result in breaking something else so it’s not worth fighting with it…

Seems like it works fine. I have been able to enable and use the child color, white and the police/storm programs as well. No issues with child devices getting deleted on their own.

Very much understood and thats fine. There are plenty of other things I have to address after a power cycle anyway so I’m adding this to the list!

This is probably the one thats causing me the biggest headache. Here are some ways I have to utilize to get to my final desired product;

  • If I want white only, I have to set the desired final level in the parent, which makes it come on to that level and at the last color. I then have to turn off the parent, and turn on the white. Now the white is at the level that I want. But then in the white child if I make an adjustment to the level it adjusts the white but now also turns on the parent color to that new level value. So whenever I want to make an adjustment to white I have to start the process all over again.

  • The other thing with the child color is that is appears to be a sub dimmer off the parent level. If you have the parent level at 25% and then go to the child color, the child colors level at a 100% will never surpass the 25% on the parent. The same is not true however for the child white since any change in levels made for the child white also affect the parent and then also turn on the color at the same time.

I know this all sounds convoluted and maybe even nit picking but just in summary I want to lay out my steps for what I have to do to get to the white only in my house;

Set level in the parent, which causes it to turn on. Turn off the parent. Turn on the white child which will now come on at the level of the parent. The dimmer level in white child though cant be used since it would trigger the parent (color) to come back on. So if I want to change levels of the white I have to start the process all over again.

I’m glad to see they finally fixed that…

Set the level of the parent device to 100% and leave it.

This is a limitation of the hardware and it effects all channels, including white, which is why this handler was such a PITA to write.

Do you ever plan on having the white channel and color channels on at the same time? If not then I’ll send you the first version of this handler which didn’t support that and made the implementation much cleaner. It didn’t create child switches for the programs, but you’re already using WebCoRE so you can just call those custom commands directly.

I will attempt this. Set level on parent, and only use it to specify colors. Then use color child for the color level.

The issue is though that if I want to do that with white as soon as I turn on white its going to come on at the parent 100% level. But if I then make a adjustment in the white child the color child or parent also comes on. If we can somehow figure this portion of it out I would be all set.

If you other handler addresses that functionality I am all for trying it!

Lastly I would like to extend a heartfelt thank you for your work and speedy replies. This is one of the big reasons why I very much enjoy these products and community.

I meant set the parent to 100% just once to reset it and then going forward always change the level using the child color and white devices.

Understood, and it works that way for the color child. For the white child though, any changes using its dimmer/level slider in the ST app causes the parent item’s dimmer/level to be affected to that white level and also turns on the color child.

Sorry, I thought that was a result of you using the parent device to begin with and it would have resolved once you set the parent back to 100% and only used the children going forward…

  1. For all this testing you’ve been doing, have you been using the device details screen or SmartApps/Automations?

  2. Do you have physical switches attached to the inputs of the device?

  3. Do you plan on using the white and color channels at the same time?
    The manufacturer of one of the LED strips I purchased said not to do that with their product because it can cause the strip to overheat, but maybe that’s just because it’s a cheap strip that has split LEDs instead of dedicated alternating LEDs for white and color…

In the ST app using the individual device screens. No ST automation but I was able to replicate the same results through WebCore.

No sir.

At this moment I cannot think of an instance where I would need both color and white on at the same time. I reviewed the strips that I use throughout the house (My LED strips LINK) and cannot find a notation not to do so otherwise.

so no preset programs in the new app?

If you are referring to the storm, police, rainbow, etc programs, you have to go into settings for the parent device and scroll down to enable them. They will then show up as child devices that can be turned on and off.

Thanks, so it is a separate button in app instead of under the one right?