Zen34 issues

Does anyone have any experience with the zen34 remote control switch? It pairs, but shows up as unknown. I expected to see something like button pushes, button held, button double tap… The enity for battery does show up.

Zooz recently had a new production run of ZEN34 switches that used a different product ID so they are showing up as unknown. I submitted changes today in OZW so they’ll show up as ZEN34.

These work a little differently than a wall switch.
Battery is the only entity you will see with a scene controller. For these to work you would fire an automation when scene data is received (button press = scene data)

For example:

 #Turn on kitchen lights with Zooz remote switch
 - alias: 'Kitchen remote switch - one tap up'
     - event_type: zwave.scene_activated
       platform: event
         entity_id: zwave.zooz_zen34_remote_switch
         scene_id: 1
         scene_data: 0
     - service: switch.turn_on
       entity_id: group.kitchen

You can capture scene data from Developer tools->Events tab

Here’s a Zooz page that touches on the topic of using the ZEN34 with HA:

edit: which version of Z-Wave are you using by the way? if the built-in legacy Z-Wave (OZW 1.4) you may need some additional configuration to get scenes working.

Below is the scene event data I’ve captured for this new version of the ZEN34, which does not match the link above, I’ve reached out to Zooz to confirm these values are true for the entire production run, I’ll update when I hear back.

Action scene_id scene_data
1x tap on 1 7680
1x tap off 2 7680
2x tap on 1 7860
2x tap off 2 7860
3x tap on 1 7920
3x tap off 2 7920
4x tap on 1 7980
4x tap off 2 7980
5x tap on 1 8040
5x tap off 2 8040
Held on 1 7800
Held off 2 7800
Released on 1 7740
Released off 2 7740
1 Like

Thanks for the update

Did anybody try with the new ZWave JS integration? I do see the entity_id for the battery, I do see the events going through in the logs of the add-on, but I do not see anything in the Events section of the Developer Tools when I try to capture zwave.event or zwave.scene_activated

Talking with Zooz support since ZWJS is available, but still no success.

@EIJee, I’m sorry I don’t have time to check the logs right now, but I am using the new ZwaveJS and the ZEN34 switches.

I have a couple automations set up to work with these switches and this might help you. The Trigger Type is “Event” and the Event Type is “zwave_js_event”.

My event data:

device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
property_key_name: '001'
value: KeyPressed

(device_id hidden)

‘001’ is the top part of the switch. ‘002’ is the bottom.
Options for value include ‘KeyPressed’, 'KeyPressed2x", etc.

That’s as far as I’ve gotten playing with them but they are working well so far.

Note that the event is not the same as the one I used with OZW (which I think was zwave.scene_activated) and the event data has changed as well.

@smee, wow!!! That’s a life saver! It’s working perfectly. With my version of the Zen34 the value for KeyPressed is 0, but otherwise the secret is to watch the right event, zwave_js_event. Also, since the device_id is hidden, it’s possible to use in the automation the node_id which is just the ZWave id of the device. I have been banging my head on this one for over a month. I’ll pass the info to Zooz for them to be aware of the solution. Thank you!

I’m running zwavejs2mqtt in a container, with Zwave-JS and MQTT integrations running in HA. When I add the Zen34, it shows up as unknown until I wake it up (7 taps in upper paddle) after which it creates entities. First, is it to be expected that I have to wake up the switch for it to be fully known by the controller? Second, why does it creates just two battery-related entities in Zwave-JS but creates 5 entities in MQTT. Which is correct? Does it matter?

After upgrading to Home Assistant Core 2021.3 (and maybe other updates), my ZEN34 events no longer have values like ‘KeyPressed’ and ‘KeyPressed2x’. The events are now numbers 0, 1, 3, etc.

I just thought I’d add a note since my comment above is no longer completely valid. After updating my automations, everything is working again. It took me a moment to figure out this was the issue.

1 Like

@smee, thanks that’s what I actually noticed with 2021.2 as well (see above), but some Zen34 devices return 0, 1, etc., others still return the alpha value. I thought it could be a different FW version, but they all report the same. Zooz told me that they had 2 versions of a FW with the identical number though, so I guess it will be tough to track… In the meantime we should all test our devices in the Events section of Dev Tools to confirm what our devices are returning.
@jakecolman, typically it takes some time when the device first registers to ZWave, so that’s not surprising that you need to wake up the devices several times, or just need to be patient… Can sometimes take several hours if you don’t force it. Yes, it does only create the 2 battery entities. I do not see the additional MQTT entities you’re talking about. I only user the numerical value of the battery and the zwave_ js_event events.

Thanks @ElJee. I’m new to Z-Wave, playing with just one device for now, and I’m still trying to figure all this out. For what it’s worth, I do have the ZEN34 working in an automation to turn on/off some lamps connected to a smart plug so I am definitely making progress. I have some basic questions that I am hoping someone can help with:

  1. What is additional benefit we get using MQTT in conjunction with Z-Wave JS? Is there value in having the entities registered to both integrations?
  2. If ZWave JS exposes just the two battery entities, does that mean you can only use the entities in automations? How would you expose the Switch so that you can manually toggle the state from a Dashboard?
  3. If you haver a large network that HA is learning about for the first time, and the nodes are just given node numbers, how do you know which nodes do what?
  4. Is there away to see what is being generated by a keypress when I am trying to integrate a new device for the first time?

Lots of questions. Thanks for any help you can provide.

I’m glad to see that you have an automation working, @jakecolman. As for your questions:
#1: There is frankly no benefits in terms of messaging unless you’re more comfortable with MQTT. The main benefit of the add-on is to have an integrated ZWave panel where you can manage your network.
#2: For automation you can indeed use these entities, but also the events as you did to turn on/off your lights. Exposing these entities in Lovelace is great to see the state of your battery. But it wouldn’t make much sense to expose the switch itself, since you can from Lovelace just turn on/off the entity you control with the switch. There isn’t really a “state” for the switch, but there is one for the controlled entity.
#3: This is the benefit of the add-on, if you open the web ui you can see your full network with the assigned node numbers.
#4: You get all the info provided by the click, hold, double click, up and down panels by watching the event zwave_js_event in “Listen to events” in the Events tab of the Developer Tools
Hope that helps!

  1. So MQTT is not really adding value unless I, for some reason, prefer working through that integration rather than th ZWave JS integration? When you say “the main benefit of the add-on is to have an integrated ZWave panel where you can manage your network”, you are referring to the interface exposed by the server running at Port 8091, correct? But don’t you also need the add-on to get the events?
  2. Good point about the entities. But what about the situation where the ZWave switch directly controls a light as would be the case when I install them in my kitchen. Sure you can program the switch to go on/off at specific times or events, but you can also use it to just the turn the light on and off. The lights conected to my Lutron Caseta dimmers can be turned on/off from Lovelace. Can ZWave swtiches do the same?
  3. While the add-on shows you the full network, how do you know whether a given node is the plug in the hallway, the bathroom light switch or the basement humidity sensor? Am I missing something obvious?
  4. Hmm. I subscribed to zwave_js_event in “Listen to Events” but nothing happens when I press buttons on my ZEN34. Am I missing something obvious?

Thanks for your patience with all this!

#1: The integration works with the add-on to provide HA the events. You should see the ZWave JS tool by clicking the “OPEN WEB UI” link
#2: Sorry, I don’t get it. That’s a light that you’re controlling with the switch. That same light is what you can control through Lovelace
#3: When you click on the down arrow on the left of the device ID in the list of devices, you get all the details about the device
#4: That’s weird. Since your lights are working, you should definitely see the message being displayed right there, with all the info you need to refine your automation…
Sorry I’m not able to help much here…

Just a quick note to say that after upgrading to Core 2021.3.1, my events have gone back to “KeyPressed”, etc., from the numerical values.

And still “KeyPressed” after upgrading to Core 2021.3.2.

#2 What about a smart switch connected to a dumb light, such as the spots in my kitchen. The spots are not smart, but the swich is. I use the smart swtich to turn on the lights when, for example, I dsiarm the alarm. Those spots won’t show up in Lovelace but the swtich will. How do I turn off those spots from Lovelace?
#3 Those details don’t tell you where are located. So how do you know which device is which when you have 5 swtiches or plugs?
#4 I got it working. Not sure why it didn’t work off the bat.


Sorry, @jakecolman I do not understand, for #2, how you can turn on these lights with a Zen34 if they’re not “smart”. If your automation works, you might want to create a button for the automation.itself.
#3, the best way to know which device is which is to use the events in #4, you see the ID of the device, and you can then locate it when you press the button. Especially now that #4 is working for you!

Thanks @smee. On my side I still see both 0 and Keypressed according to what device I use. Oh well…

@eljee, the switch is smart but the lights are not! The typical scenario is that a contractor installs kitchen lights in the ceiling controlled by a dumb dimmer switch. I want to turn on those lights automatically when the alarm is disarmed. So I install a Zen34 and program an automation that checks changes the state of the Zen34 when the alarm is disarmed. This is all typical, correct? Is there a way in Lovelace for me to see the state of the lights controlled by that switch and manually turn them on/off?

I was afraid you’d tell me to just check the events generated by each switch and map it by hand. Makes sense. I force the event, write down the ID, and record where it is. I think I can actually record some of that, like the location, in the ZWace JS Controller UI.

@jakecolman, how do you connect to the dumb lights and switch? Also, the Zen34 is stateless.

@ElJee Ok. The Zen34 is stateless since it just sends a signal when a button is pressed but doesn’t know anything else about it. That makes sense. The Zen34 is working well for me in that it controls a smart plug, through an automation, and I can see the state of the smart plug in Lovelace. So all is well there.

With respect to my kitchen lights, maybe I’m misunderstanding - and the lights/switches are not yet installed - but I can’t see how I will be able to tell whether my lights are on or off in Lovelace and change their state. Am I missing something obvious? The dumb lights will be switched by a dumb Decor light switch. I am going to replace that switch with a Zooz switch. Even without automations, the switch will turn the lights on/off. Do powered smart switches, unlike the Zen34, have state and know whether the lights it controls are on or off?