[OBSOLETE] Zooz RGBW Dimmer (ZEN31)

I won’t be converting the Zooz RGBW Dimmer DTH into an Edge Driver, but most of the functionality should work with a built-in driver once the Groovy platform is retired.

This is a DTH for the Zooz RGBW Dimmer (ZEN31).

  • Supports all the configuration parameters.

  • Button (pushed, held, pushed_2x, and pushed_3x for all 4 inputs)

  • Displays Power

  • Dimmer (changes white and color)

  • Creates child devices for white and color so you can easily turn them on/off independently with both mobile apps. (optional feature that needs to be enabled in the settings)

  • Preset Programs: fireplace, storm, rainbow, polar lights, police (there are tiles for these in the Classic Mobile App or you can use a SmartApp like WebCoRE to execute the custom commands)


White vs Color Control

The classic mobile app has tiles for white on/off and color on/off, but if you enable the “Create Child On/Off Switch for …” settings then you’ll be able to use the child devices to control the on/off state of white and color.

  • on: restores white and color to state before turned off.

  • off: turns off white and color.

  • whiteOn: turns on white

  • whiteOff: if color and white is on then it turns off white, but if only white is on then it turns off the device and only color will turn on the next time the device is turned on.

  • colorOn: turns on color

  • colorOff: if color and white is on then it turns off color, but if only color is on then it turns off the device and only color will turn on the next time the device is turned on.


@krlaframboise can you recommend an RGBW strip that would work well for this? I’m having trouble identifying the entire chain of what I would need (Power Supply, Zooz controller, LED Strip, Connectors, etc.).

Hoping to use strips with warm white LED’s, but I’m having issues when it comes to the width of the PCB, waterproof vs. non-waterproof, connectors that are compatible, etc. Thanks for your help!

1 Like

My response is going to be long because I spent several days researching that stuff so I probably won’t have time to post it until late tonight or tomorrow, but don’t waste time looking for an adapter.

I wasn’t able to find one that aligns with the RGBW controller terminals, but the 5 wires are usually exposed for a few inches at the end of the strip so you can just cutoff the connector and attach those wires directly to the RGBW controller.


If you cut off the end of the strip, like I originally mentioned, you won’t be able to return it so you might be better off getting an extension cable you can plug into the strip and cut the end off of that instead.

The pin order doesn’t matter since you’ll be cutting off the end anyways.


I like IP65 because it puts a thick gel coating on it which probably adds some protection and makes them cooler to the touch.

10mm vs 12mm

The width only matters if you plan on using connectors to make a right angle or attach 2 together.

The tape backing of most strips doesn’t work well and if you plan on using clips you most likely won’t be able to find any clips for 12mm IP65.

power supply

Most strips list the power supply requirement. Most of the strips on Amazon are 12V and 5A or 6A.

You’ll need an adapter that has a female end the power supply plugs into and terminals on the other end you can attach wires to. Some power supplies come with the adapter.


There are a lot of RGBW strips available and most allow each color to be controlled separately which is really the only requirement.

I like the strips that have dedicated RGB and White LEDs instead of 2 in 1 LEDs because some of those say not to use white and color on full brightness at the same time and they seem to give off more heat.


If you want something really bright you might have to buy a high end strip at a specialty LED store because most of them on Amazon either don’t list the lumens or the values listed are really low.


There are some inexpensive kits that come with a remote and power supply so all you need is that adapter for it with the terminals.

The remote also allows you to test the color range and brightness before wiring it to the RGBW Dimmer, but you won’t be able to use the remote afterwards.

This one isn’t really bright, but I’ve tested it with the RGBW Dimmer.

Can’t seem to get child devices to show up for individual channel control. I can get the ones for the cool color modes - rainbow and storm ect… but not the individual channels. I click on create then save and nothing. Says I need to install the child dth but I can’t find that anywhere to install it. Any help would be appreciated.

The Child Dimmer child handler was on GitHub with all my other handlers, but it looks like I forgot to include a link to it in the main post.

After installing the handler open the settings screen in either mobile app and save. I don’t think the new mobile app has a save button so you’ll have to change a setting, but it doesn’t matter which one you change.

Update: It looks like I didn’t update the description at all after re-writing the DTH so thanks for pointing that out. I don’t have time to update everything in the description right now, but I’ve added a message to the top that includes a link to the child.

Ah thank you . I had found that one actually, upon further inspection I had published it . I deleted it and re installed without publishing. Works great now. Thank you.

@krlaframboise do you know if the white in the rgbw strip should be cool white or warm white?

The device controls the brightness of the white channel not the color temperature.

If you attach an led strip that has warm white then it will be warm white if the led strip is cool white then it will be cool white.

Setting R, G, and B to 100% will produce a cool white, but with the led strips I’ve tested it has a blue tint to it.

Right, but when the device is “mixing” the white led with other leds to get certain white color temperatures, the native color of the white led can affect the white color temperature. Maybe @TheSmartestHouse knows?

The device changes the brightness of each channel and that’s it, there is no “mixing”.

For the z-wave command, the device only supports the warm white color component, but that has no impact on the color it produces because that’up to the led strip.

All the LED Strips I’ve seen have either separate white LEDs or have LEDs that are split rgb and white, but I’ve never seen one where the rgb channels have any affect on the white channel.

Exactly. So 6000k is the white led + a low % blue led. And 2700K is the white led + a low % red led. The problem is if the controller is expecting a cool white led, then a warm white led + low % red led is very red because you’re combing an already reddish white led with more red.

Every LED Strip I’ve seen has separate/split RGB and White LEDs so what you’re saying doesn’t make sense…

If you set blue to a low % and the LED Strip supports Warm White then you’ll end up with dim blue LEDs and warm white LEDs on.

If you set red to 100% and white to 100% and the led strip supports cool white then you’ll end up with bright red LEDs and cool white LEDs on.

RGBW Controllers don’t work the same way as RGBW Bulbs.

I think we’re saying the same thing. Here’s a lightify strip set to 2,700K. White led with red at a low %.

And here’s the same strip set to 6,000K. White led with blue at a low %.

I wish I had looked up “lightify strips” before writing all of this because comparing those to an RGBW Dimmer is like comparing apples to puppies…

First off they’re zigbee which is far superior protocol for color control. Second it has a built-in controller so it knows all the specs of the LED strip it’s attached to and can manipulate it based on the commands it receives from the hub. Now I get why you kept thinking there was a smart/mixing aspect of the RGBW Dimmer…

The Zooz RGBW Dimmer is meant to be used with a dumb LED Strip, which you can often find for less than $20 on Amazon, and the color sends output to each channel and that color turns on. The RGBW Dimmer has no knowledge of what it’s attached to, it just sends electricity to each color wire.

Everything below still applies, but it probably isn’t necessary now that I realized you’re expectation of how it should work is based off something completely different, but since I already wrote it I’m going to leave it in the post.

That warm white example looks like a somewhat cool white LED next to a red LED and your cool white example has the same cool white LED with a blue LED next to it.

That’s not changing the color temperature of the white LED and the only reason that partially works with your LED strip is because your LEDs appear to be split RGB and White which are practically touching each other. A lot of LED strips have dedicated White LEDs and RGB LEDs which alternate and have gaps between them so that wouldn’t work at all with those.

Except for those built-in automations, the Zooz RGBW Dimmer doesn’t do any calculations, it just allows you to explicitly set the 0-255 value of the warm white (0), red (1), green (2), and blue (3) color component ids.

For example, if a Smart App passes purple into the setColor command then the DTH has to convert purple into a 0-255 value for R, G, and B. It then sends a command to the device that sets color component ids 2, 3, and 4 to their corresponding values and the device uses those levels to change the RGB LED to purple.

Most of the RGBW bulbs I’ve worked with allow you to use the ratio of the warm white color component id (0) and the cold white color component id (1) to determine the white color temperature.

If a SmartApp passes 6000 into the setColorTemperature command and the level is at 100%, then the DTH sets id 0 to 0 and id 1 to 255. 2700 sets id 0 to 255 and id 1 to 0. 4500 sets id 0 to 140 and id 1 to 115.

The RGBW Dimmer doesn’t support the cold white color component id (1) so there’s no way to change the actual color temperature of the white channel. Based on all the RGBW LED Strips I’ve seen either being warm white or cold white and not specifying a temperature range, I believe they have a fixed color temperature and work as expected with the RGBW Dimmer.

Long story short, the white color depends entirely on led strip and the only time that might make a difference is when using the mode that has lighting because I think the lightening flashing is the only time the white channel is used in those modes.

I could simulate that behavior by including a setting for the white temperature of their LED Strip and then calculating the amount of red or blue to include based on their strips default color temperature and expected color temperature, but it wouldn’t work at all for dedicated RGB and White LEDs and it messes up the ability to use White and RGB together so you wouldn’t be able to display bright green and a specific color temperature at the same time.


Are the preset programs modifiable/expandable?

For instance, is there a way to make them preset programs dimmable? Or create a “breathing” or “heartbeat” effect? or custom flashing/strobe/lightening (like in the police/storm program) effect?

No, they’re built into the device so you can’t create new ones…

Amazing handler! Albeit I find it a bit confusing to incorporate. I’m sure I’m missing something simple but can’t find any documentation.

I have a google home > smartthings setup. I don’t want to use the smartthings app to control the zen31, Google & the Handler are already smart enough to control basic commands on the zen 31 like:
“OK Google, make the TV LED Orange” or “set the TV LED brightness to 50%” but I can’t seem to get it to understand how to engage any presets like “OK Google, set the TV LED Dimmer to the Polar lights preset”

Do I have to do this somehow with virtual Child Devices? My apologies for the noob nature of the question, but it may help other noobs too…

Figured it out, yes, it was a Child Device Solution:

  1. go into SmartThings app > My Home > Things > Choose your Zooz RGBW Dimmer
  2. click on settings (cog icon)
  3. Scroll Down to “Create Child Devices for the Preset Programs”
  4. turn on the Preset(s) you want and click save.
    A virtual device switch will be created in SmartThings which you can control using automation, IFTTT, Assistant, etc.

Note: turning on a virtual device switch for a preset also by default turns on the Zooz dimmer (as it should) BUT turning off the virtual device switch for a preset does not turn off the Zooz dimmer, so the preset program will stop and the LED strip will stay on, displaying the last color/brightness you had used. You will need to manually turn off the Zooz dimmer or include turning it off in your automation.

1 Like

I’m glad you were able to figure it out.

Whether or not turning off the preset program should turn off the switch is debatable, but I opted to keep it consistent with the behavior of all the other child devices.

If you turn off the child device for red then it turns off the red channel, but leaves the device on so turning off the preset program doesn’t turn the device off.

If I remember correctly, turning off the preset program doesn’t stop immediately so sending an off command to the parent immediately after the off command to the child might not turn off the light, but if you send the off command to the parent then it will also turn off the preset program so if you want the program and dimmer to turn off you should send the off command to the parent.