[DRIVER] Zooz ZEN Switches Advanced (and Dimmers)

Okay, that did it. I removed the "beta" from the name and it installed when I created the child. I'll play around with it throughout the week and let you know how it works.

Not sure if this is something that can be changed via driver, or a firmware update, or if this is just how it works, but we discovered a quirk with the Zen77 in a 3 way configuration (might be the same with other dimmers, but this is the only dimmer I have in a 3 way setup).

I have it configured so that a single tap on turns the lights on at full brightness. From there, it can be dimmed and a double tap up will return the lights to full brightness. The Zen77 can be paired with a normal dumb switch in a 3 way configuration. This switch can just turn the lights on and off. After some testing, here is the quirk we discovered.

  1. Turn light on from the Zen77
  2. Dim the lights
  3. Turn the lights off (from the dumb switch or the Zen77)
  4. Turn the lights back on from the dumb switch

The lights will turn on at the previous dimming level that they were at when they were turned off.

Here is what the log looks like

  1. I turned on the lights from the Zen77
  2. I dimmed the lights from the Zen77
  3. I turned the lights off from the Zen77
  4. I turned the lights on from the dumb switch
  5. I turned the lights off from the dumb switch
  6. I turned on the lights from the Zen77

Ignore the warnings. They are from something else. I forgot to change the log away from All.

You are in luck because my house is filled the 3-way switches, some you can just about reach both of them at the same time they are so stupidly close together. The ZEN27 is working the same way for me and confirmed on the Z77 as well. I was thinking about how to solve it and I tested a simple RM rule which sets to 100% when it turns on. There is a slight delay where it comes on at the last brightness then pops straight to 100%, you could also set a fade of 1s on the rule which might be less noticeable. Only side effect I found is it breaks the night light mode, if you activate that the rule will do what it does and set it to 100%.

I could put a work around in the driver but honestly it would do the same thing as the rule so might as well just make a simple rule for it.

The only true fix would have to come on the firmware. You can open a ticket with Zooz if you want and just link them to your post, I have done that before. Guess its up to them if that's a bug or the way they intend it to work.

Sample Rule:
image

I've been using your beta Zen30 driver and the child driver for about a week now. I have a few Zen30s in the house, but I've been testing exclusively the office fan/light and it's been working great so far. In Google Home it recognizes that the relay is not a light and I set it to fan and it looks like this.

Before, it would say there are 2 lights and if I asked Google to turn the lights on, it would turn on the lights and the fan. That no longer happens with your beta driver. I have not had a single problem (once I renamed the child device driver back to what you had it as). The code for the component device is so simple too... I wonder if @bcopeland could look at it and adjust the built in component driver so that Google doesn't always think it's a light.

Awesome this is what I found with Google as well. Now if only Alexa could wise up and stop turning the TV and fan on when I tell her specifically to turn on the lights! I had to do a horrible workaround of removing those devices from the "room".

Firmware 2.2.6 NOTE: I now need to update all the drivers for 2.2.6, so the above update for the ZEN30 will get included in that update. They decided to force commands on us if the button capabilities are used, which currently will just generate errors in my drivers because I don't have functions coded for them. Nothing else seems to be broken thus far. See here about the commands: Why are we being forced to have Double Tap, Push, Hold and Release commands in 2.2.6?

1 Like

This wouldn't work for me. The whole reason the light was dimmed to begin with is that at night, if motion is detected, it turns on the hall lights at 11% to act as a nightlight for our toddler.

Turn on the scene buttons and make the rule trigger on button 1 pushed. That will only go on a single physical tap that way. A zwave turn on should not trigger the scene button events.

Okay, I see what you mean. Though, I didn't (and couldn't actually) need to use the scene buttons. Turning the light on/off from the dumb switch doesn't generate a button press. But, there is a trigger that works for only when the light is physically turned on.

image

It does have a weird effect though where it turns on at the previous brightness first, which is slightly annoying but I could live with it if I had to.

I did submit a ticket to Zooz support about it though.

1 Like

Zooz support replied with

the 3-way switch isn't programmed to follow the single tap setting so we'll take this back to our engineers and will ask for a firmware update to fix it. We should have the file ready within a week.

So it sounds like the behavior I was seeing is not the intended behavior.

Coming Soon v1.4.3 - I think I have all the code changes done I just need to test it on various switches and test the ZEN74 and ZEN73 to make sure everything is working correctly on these new models.

Added

  • ZEN30 Uses new custom child driver by default, falls back to Hubitat generic
  • Command to change indicator on/off settings (so you can force the LED on/off from a rule to use as a status light for whatever you want)
  • Support for ZEN73 and ZEN74
  • Support for Push, Hold, and Release commands (for 2.2.6 Hubitat firmware support)

Changed

  • Removed unnecessary capabilities

Fixed

  • Status Syncing... was not always updating properly
1 Like

Hi Jeff,

So the current driver’s already have the push, hold, and release. Will the changes you have made cause a need to alter any of the BCs already using this feature?

I thought the new 2.2.6 HE change was around supporting button pressed via zwave command (not physical button presses).

The only thing changing with the push, hold and release is I am adding the code to support the new commands that are forced upon me from the capability update in 2.2.6. The events from the physical button presses will not change at all, so no rules will need to be changed.

1 Like

Cool. Thanks for the confirmation.

NEW VERSION 1.4.3 - see changelog in main post for full details

  • For ZEN30 if you want to use the new custom child driver you can add the additional driver in package manager. You will need to remove the child device and create it again with the driver commands. You will possibly have to re-select the child device in any rules or other associations.

  • The indicatorColor command has been renamed to setLED so it conforms with some other Zooz drivers and I liked that better in case I add the brightness to the same command. Might as well make them all be the same across drivers. You will need to fix any rules using this command to the new name.

  • Added support for ZEN73 and ZEN74

4 Likes

Hello,

I have a number of ZEN22/23/26/27 switches and have had varying degrees of success with this driver. I typically have problems when trying to use it with my ZEN27 dimmers but never really spent the time troubleshooting it, so would go back to the built-in Zooz driver and deal with the missing scene features.

Today I finally put in some time trying to figure out what's going on, and it appears that the driver is convinced my dimmer is a standard switch, and is trying to send the wrong zwave parameters. The one it really gets hung up on is parameter 11, which is set to 99 in my switch because it's maximum brightness, and the driver thinks it should be paddle physical control. I tried excluding/factory resetting/including and have the same problem. You can see it from the following log snippet, where the stock driver starts out with the correct parameters, then I change to the advanced driver and hit configure, and it starts trying to send the wrong parameter 11 again. The dimmer is running firmware 3.01, and the fingerprint is correct when adding the device and when checking using the "device" driver after installation. I'm not sure what could be causing this misidentification. Has anyone else run into this issue?

Thanks!

dev:4062021-05-08 11:53:05.763 am debugBedroom Lights: Unhandled zwaveEvent: SwitchMultilevelReport(value: 99, targetValue: 98, duration: 0)
dev:4062021-05-08 11:53:05.522 am debugBedroom Lights: Changing Smart Bulb Mode - Load Control (#11) from null to 99
dev:4062021-05-08 11:53:05.139 am debugBedroom Lights: executeConfigureCmds...
dev:4062021-05-08 11:53:04.100 am warnDescription logging is: true
dev:4062021-05-08 11:53:04.097 am warnDebug logging is: true
dev:4062021-05-08 11:53:04.095 am infoupdated...
dev:4062021-05-08 11:52:28.403 am warnClearing state variables and data...
dev:4062021-05-08 11:52:20.061 am infoBedroom Lights: assocDNI3 set to none
dev:4062021-05-08 11:52:20.042 am infoBedroom Lights: assocDNI2 set to none
dev:4062021-05-08 11:52:19.981 am warnconfigure...
dev:4062021-05-08 11:51:54.736 am warnThere are 3 pending changes, please click the Save button again.
dev:4062021-05-08 11:51:50.617 am debugScene Control(#13) = 1
dev:4062021-05-08 11:51:49.091 am debugDouble Tap Function(#12) = 1
dev:4062021-05-08 11:51:48.709 am infoBedroom Lights level is 99%
dev:4062021-05-08 11:51:48.700 am debugSwitchMultilevelReport(value:99)
dev:4062021-05-08 11:51:47.605 am debugMaximum Brightness(#11) = 99
dev:4062021-05-08 11:51:46.081 am debugMinimum Brightness(#10) = 1
dev:4062021-05-08 11:51:45.326 am infoBedroom Lights level is 1%
dev:4062021-05-08 11:51:45.323 am infoBedroom Lights switch is on
dev:4062021-05-08 11:51:45.321 am debugSwitchMultilevelReport(value:1)
dev:4062021-05-08 11:51:44.599 am debugDimmer Ramp Rate(#9) = 1
dev:4062021-05-08 11:51:43.050 am debugAuto On Enabled(#5) = 0
dev:4062021-05-08 11:51:41.551 am debugAuto Off Enabled(#3) = 0
dev:4062021-05-08 11:51:40.017 am debugLED Indicator Control(#2) = 0
dev:4062021-05-08 11:51:38.504 am debugPaddle Control(#1) = 0
dev:4062021-05-08 11:51:36.365 am debugFirmware: 3.1
dev:4062021-05-08 11:51:35.395 am infoZooz Central Scene Dimmer switch is off
dev:4062021-05-08 11:51:35.378 am debugSwitchMultilevelReport(value:0)
dev:4062021-05-08 11:51:35.090 am debugChanging Scene Control(#13) from null to 1
dev:4062021-05-08 11:51:35.076 am debugChanging Double Tap Function(#12) from null to 1
dev:4062021-05-08 11:51:35.059 am debugChanging Maximum Brightness(#11) from null to 99
dev:4062021-05-08 11:51:35.041 am debugChanging Minimum Brightness(#10) from null to 1
dev:4062021-05-08 11:51:35.025 am debugChanging Dimmer Ramp Rate(#9) from null to 1
dev:4062021-05-08 11:51:34.968 am debugChanging Auto On Enabled(#5) from null to 0
dev:4062021-05-08 11:51:34.947 am debugChanging Auto Off Enabled(#3) from null to 0
dev:4062021-05-08 11:51:34.936 am debugChanging LED Indicator Control(#2) from null to 0
dev:4062021-05-08 11:51:34.882 am debugChanging Paddle Control(#1) from null to 0
dev:4062021-05-08 11:51:34.792 am debugrefresh()
dev:4062021-05-08 11:51:34.789 am infoZooz Central Scene Dimmer level is 99%
dev:4062021-05-08 11:51:34.785 am infoZooz Central Scene Dimmer numberOfButtons is 2
dev:4062021-05-08 11:51:32.694 am debugconfigure()
dev:4062021-05-08 11:51:32.666 am warninstalled...

That looks like output from Bryans custom driver possibly, not mine. My driver would have the device name at the start of each log entry. This is from a ZEN27 and BTW screenshots of logs are easier to read.

1 Like

That was interesting, I've been updating this driver through Hubitat Package Manager as "Zooz ZEN Switch Advanced" forever, said it was from the JTP10181 repo, and had references to all the Zooz switches and dimmers in the code, but after removing it and all the stale references to the Brian drivers and reinstalling it, the code looks completely different now and the dimmer works fine with the "Zooz ZEN dimmer Advanced" code. Not sure what stale mess I had going on in the controller but it looks good now!

Thanks for the tip about the device name and your prompt response!

1 Like

What does this driver do that the built in hubitat drivers don't do.

Pretty much everything in the features list. Supports all the parameters with easy to use drop down menus, Association groups 2/3, and all the button press "scene control" events. Also adds some LED commands that can be used from rules. Brightness correction, see this post: [RELEASE] Zooz ZEN Switches Advanced Drivers

Some issues have been reported with the stock drivers that are not existent in mine. Also others have reported their devices seem to work better with this driver, but since the stock drive is closed source I am not sure what makes it work better exactly.

3 Likes