Problems controlling Zooz switches with Z-Wave JS Integration

I am currently migrating all my z-wave devices from my old setup on a rpi4 to a new setup running in a proxmox vm. I decided to get a new 800 series zwave stick and I’m having some issues after including the devices. I added a zen27 switch to the new stick but I can’t control the light through home assistant, every time I toggle the device it does not change state and just toggles right back to where it currently is set. If I try to send commands through the zwave js ui it works just fine. So I believe the issue must be with the zwave js integration? Even more strangely I added a zen30 switch afterwards and I have the same problem controlling the light entity, yet the other switch entities associated with the zen30 work just fine. So it seems the problem is specifically with the light entity switch. Has anyone encountered this issue or know how I could go about troubleshooting it?

Don’t use the light entity, use the switch entity.

It took me a while to figure out today. The Zooz support responses refer to scenes, then they tell you to set up automations. They also refer to both the UI and the plain JS. I got automations to work using their cryptic instructions as guideposts. HTH. Here are their instructions:

First, make sure that you have enabled scene control on your Zooz switch (it’s disabled by default). Just go to the advanced settings for the device and toggle the scene control parameter to on so that the device starts sending central scene events to your hub.

Then, create a new automation in Home Assistant to program the trigger and action. Always use “Event” as the Trigger Type and “zwave_js_value_notification” as the Event Type (learn more about JS events here) followed by:

node_id: X [where X is the node ID of your Zooz switch, which can be found under Configuration > Devices > Zooz Switch]
label: Scene 001 [use 001 for top paddle and 002 for bottom paddle]
value: KeyPressed [KeyPressed = 1 x tap, KeyReleased = released, KeyHeldDown = held, KeyPressed2x = 2 x tap, KeyPressed3x = 3 x tap, KeyPressed4x = 4 x tap, KeyPressed5x = 5 x tap]

Here’s one of my automations. It seemed easier to turn local control off.

@Pianoman720 I originally used Zooz switches throughout my entire house but I’ve been slowly switching over to Inovelli. In my opinion, Inovelli offers a better product than Zooz. I’ve had some issues specifically with the ZEN30 dimmer switch. For some reason the relay will occasionally turn off when I press the paddle up or down. I still use the ZEN77, ZEN52, ZEN32, ZEN30, and ZEN04 with the Z-Wave JS integration but eventually plan on switching some of them to the comparable Inovelli version.

The easiest way to control them is using a blueprint. There are several of them for Zooz products and they might make things a lot easier for you. You might have to try more than one though because if I remember right some work better than others.

The other way to control them is just like @Jz777 said which is by setting up an automation and using the “manual event type” of zwave_js_value_notification as the trigger. My ZEN30 uses the following configuration. I then use “choose” with the event id from the trigger followed by an action of my choice.

event_type: zwave_js_value_notification
id: up1x
event_data:
  device_id: a45344fbef4b51e0450edcb6e412b729
  label: Scene 001
  value: KeyPressed
trigger: event

event_type: zwave_js_value_notification
id: up2x
event_data:
  device_id: a45344fbef4b51e0450edcb6e412b729
  label: Scene 001
  value: KeyPressed2x
trigger: event

The last way to control them is by selecting the switch as a “device” and then just choosing the “value” like below.

The yaml will look like the following.

device_id: a45344fbef4b51e0450edcb6e412b729
domain: zwave_js
type: event.value_notification.central_scene
property: scene
property_key: "001"
endpoint: 0
command_class: 91
subtype: Endpoint 0 Scene 001
trigger: device
value: 0
id: up1x

I honestly don’t know the difference between using the different event types or if there’s any type of impact on performance. I think using zwave_js_value_notification might have been the original way and then HA updated something to make it easier and allow the user to just select the device but I’m not sure.

When it comes to configuring the actual switch it could get a little tricky and it depends on what type of light(s) you’re using. I use Zooz and Inovelli switches because I use wifi smart lights and both companies design their switches specifically for this by using internal relays.

If you’re using wifi smart lights like me, then you need to connect them with the local relay control enabled. This is because most wifi smart lights usually require cycling the power on/off 5 times to connect them. After the lights are connected I disable local relay control so I accidentally don’t turn off the power to the lights. The switch will then function as an event controller by using automations.

The other two ways to configure the switch would depend on if you’re using a normal light or a z-wave smart light. With a normal light the local relay control should remain enabled so the switch could send power to the light like a normal switch. You could also then control it with HA. With a z-wave smart light the relay local control should be disabled and the light would use z-wave to link directly to the switch. The switch can then be controlled with HA or independently by the switch without HA.

What kind of lights are you trying to control?

Below is a screenshot of my z-wave settings for the ZEN30 from the z-wave js addon view. The other way to change these is by selecting the device and clicking on the “configuration” option.

1 Like