[DRIVER] Zooz ZEN Switches Advanced (and Dimmers)

Oh yes, I agree. I can see the benefit of having a default ramp that works for digital, and not just physical commands. But that's an app or device driver thing really. Not following zwave spec like this, by ignoring the duration value, is effectively removing a core feature for dimmers. And I use this feature in most of my lighting automations.

I did, and Agnes is thinking they could address this issue in the next firmware update for mid September.

She also said that no one else has reported this issue? :astonished: So please do let them know, the more the better...

Would like to report a small bug/oversight maybe for the Dimmer driver. I just replaced the 3-way switch connected to a zen72 dimmer with a momentary toggle, went into the device page and switched from "Toggle On\Off Switch [DEFAULT]" to "Momentary Switch (ZAC99)" and after testing, things didn't appear to be working correctly. I had looked at the settings before and thought there were more options so I checked and there are 4 options for parameter 19:

3-Way Switch Type

Parameter 19: Choose the type of 3-way switch you want to use with this dimmer in a 3-way set-up. Changing this setting can allow you to control brightness and dim the light from both 3-way locations. Use a regular momentary switch (like the Zooz ZAC99 accessory switch) if value is set to 2.

Values: 0 – regular mechanical 3-way on/off switch, use the connected 3-way switch to turn the light off or on to the last brightness level, dimming only available from the Zooz Z-Wave dimmer and from the hub (or through voice control if smart speaker is integrated with your Z-Wave hub); 1 – regular mechanical 3-way on/off switch, tap the paddles once to change state (light on or off), tap the paddles twice quickly to turn light on to full brightness, tap the paddles quickly 3 times to enable a dimming sequence (the light will start dimming up and down in a loop) and tap the switch again to set the selected brightness level; 2 – momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence); 3 – momentary switch, click once to change status (light on or off), click twice quickly to turn light on to full brightness, press and hold to adjust brightness (dim up / dim down in sequence but always reduce brightness after double click). Default: 0.

Size: 1 byte dec

So then I switched to the Basic Z-Wave tool driver and got the current value for param 19 and it was 1 which is the second 3-way option. I used that driver to set param 19 to value 3 then switched back to your driver and everything is working as expected. All of my switches are firmware 1.03.

Love the drivers, very easy to configure them and love the switches as well! Thanks!

1 Like

Thanks for the tip, I missed that when I added the 7x switches. Most of the parameters stayed the same from the 2x switches so I had not dug into it that deep. I will get this fixed eventually, until then the solution of using the other driver will work. Just FYI if your parameters ever get refreshed in this driver it will start reporting there are changes to sync and then change it back next save. I don't think it will every refresh it though unless you manually trigger a parameter refresh..


The Zen30 also seems to only support changing the physical ramp rate and not zwave. I have a rule set to turn the lights on at 20% when motion is detected at night and specifically put a fade of 0 in the rule, but when motion is detected it still ramps up over time. Considering the light doesn't even start emitting light until about 15% this makes for a noticeable delay before the nightlight comes on.

Not sure if that's something you can address for the Zen30 or if Zooz would need to add it in a firmware update as well.

So in the docs they list a param #22 which is the same as what the ZEN27 has to enable setting the duration via zwave, but my notes in the driver code indicate it was removed in firmware 1.05 (even though docs still list it). I just tested it, and it is in fact not there anymore. I have no idea why they removed this parameter. I will piggy back this on my other case I have open so hopefully they can add it back.


The Dimmer and Switch drivers are updated on my DEV branch if anyone wants to test some upcoming changes. I totally overhauled the parameters to pave the way for new parameters to be easily added and configured per model. Also working towards making my code more universal so I can easily recycle it to different devices.

Also added the new parameter to disable programming from the paddle (aka toddler proof mode). And fixed the parameter oversight reported by @dstutz above.


Thanks! This works great for my ZEN73!

Not sure if this really matters or not, but I see how it could potentially cause an issue in some rules in some instances. I'm flashing all my devices to the newest firmware I can in preparation of migrating from the C5 to C7. I just flashed one of my Zen21s and because it had to be factory reset afterward, I re-included it to the hub. I turned on description logging just to make sure everything seemed right. This particular switch doesn't have a load on it, so I have physical control and zwave control disabled. It's only used to control a lamp on a zwave plug using button controller.

But I still see an event in the log for the switch being physically turned on and off in addition to the button presses. I listened and the relay is definitely not turning on and off.

Even if you disable the load control the switch still keeps track of its on/off state, thus it is sending a report for it. The driver just does and logs what the switch sends to it.

1 Like


As many have said, thank you for sharing your code and time.


Is there a setting I am missing to disable the switch physically and via software control? I have accidentally turned off a ZEN15 that monitors the washing machine to let me know when the power level drops, and alerts me through my Google mini that the clothes need to go in the dryer. Not knowing I turned the ZEN15 off, I spent time checking fuses (yes, fuses) needlessly. Would be great if the switch function could be disabled.
I have ZEN15s on both of the refrigerators, so if I fat finger those, I lose a lot of food.

Can't you simply set a rule that checks for it physically turning off, then turn it back on again and maybe send you an alert?

I just checked my Zen15 (controlling monitoring a pump) and I can turn it on from the HE device page after physically turning it off... events update too.

edit: in fact I think I am now going to add such a rule myself!

I don't own one of these, so maybe this setting is missing in the driver. You can however find the Basic ZWave Tool and set the parameter using that driver. You could also set an auto-on timer of 1 minute to be sure it does not stay turned off long if it does get shut off somehow.


Parameter 30: Choose if you want to use the physical button on the Power Switch to turn the outlet on or off manually or if you want to disable this function. If this parameter is set to 0 (disabled), you will only be able to turn the outlet on or off remotely using your Z-Wave hub.

Values: 0 – manual control disabled; 1 – manual control enabled (default).

1 Like

This has something to do with me turning off debug logging after switching back to your driver from the firmware updater driver.

Looks like the Firmware Updater driver had a logsoff scheduled job, when you switched drivers the job was still pending, but there wasn’t a method in the new driver for it to run against. Not a fault with the Zooz driver.


Where would I find this Parameter 30?
Looked in the settings for the built in driver Zooz Power Switch, Zooz Power Switch w/State, and Zooz ZEN Switch Advanced. No Parameter 30 or anything referencing disabling the switch, both physically and through Hubitat. Searched github and found nothing regarding Basic ZWave Tool but I did find ZWave Configuration Explorer Device. Loaded that and see there is a setting to Set Parameter, so I set Parameter 30 to 0. Is that correct? I can’t tell if parameter 30 is now 0. The code is cryptic to me.

That looks just like the Basic ZWave tool, possibly a fork of it someone made or they added it to the stock drivers and I never noticed. Should do what you need.
You will want to have a live logs tab open on your browser, enable all logging if the driver has an option otherwise assume it will log things.

Use Set Parameter to set it, 30, size: 1, value: 0 (must specify all 3 params for it to work typically)
The use Get Parameter Report button shortly after to confirm from the device it got set.

Results should be shown in the logs.

1 Like

Thanks! Just found Basic Zwave Tool.


I was thinking of setting up something to gradually turn on some lights in the morning on my Zooz Zen74's. As i was trying to see how it could work I found out that your driver doesn't seem to allow the duration setting for the Setlevel command to work. Any thoughts on why that is. I am running the latest firmware on my C7 hub.

@mavrrick58 this is actually an oversight by Zooz in the firmware. The driver sends the duration but the firmware does not use it (which surprisingly is acceptable per the zwave specs). Same issue with the startChangeLevel commands I added in the beta driver I am working on. They fixed it on a test 10.01 firmware they sent me for the ZEN77 but not the ZEN74 yet I don't think. I would send them in a support ticket and they will send you the fixed firmware when it is ready that way.

1 Like

Thanks I will reach out.

Download the Hubitat app