I’m trying to get instant button-down events from my Zooz ZEN32 and ZEN35 Scene Controllers in Home Assistant.
These devices send Central Scene events (KeyPressed, KeyHeldDown, KeyReleased, multi-tap), but KeyPressed only fires after the full “button-down then button-up” cycle completes (basically, after lifting your finger off the button).
I tried disabling multi-tap using ZEN32 parameter 28 and ZEN35 parameter 42, and that seems to help, because without these set there’s an additional ~300 ms delay on KeyPressed (probably because it’s waiting for additional taps to classify as multi-tap).
However, it’s still not as fast as a traditional light switch which doesn’t care to wait for you to lift your finger. This is killing me because I think this hardware is otherwise great and the Z-Wave events are so quick, but just firing at the wrong time.
I verified all this by listening to the stream of zwave_js_value_notification.
Has anyone found a workaround for real-time button-down triggers in Home Assistant with these devices?
1 Like
The Zooz team can tell us all for sure, but I think because on the 32 and 35, if you hold the button down (talking about the main button), it can trigger Multi-level Switch Command Class… so even though a 32 isn’t a dimmer, if directly associated to a dimming device, it can control it. Therefore I believe the device doesn’t know if you wanted the KeyPressed event, or the multi-level dim event… and I don’t think you can disable that direct association behavior, even if not using it.
It is also hard to see in JS UI, as that command class event doesn’t show in the event log. You’d need a Zniffer to actually see it happening.
However that is the feature I personally love about the 32… great for controlling one or groups of things like dimming plugs, or even act as a virtual 3-way with a ZEN72, etc
Is this the same as ZEN32 parameter 28? “Scene Control Multi-Tap” I do have that disabled, but it didn’t change the behavior here – it’s still waiting for the button up/release to trigger KeyPressed
No, it has nothing to do with scene control, unfortunately. This is the concept of groups, using direct association between one or multiple devices. It uses direct node to node instructions that bypass the hub. Whereas scenes are controlled exclusively through the hub.
You can see these in HA JS UI under the “groups” under the device. Here’s a screenshot where to see them… In this example I already have a few configured - your list may be empty since none are likely set up. These fire whenever these actions are taken on the switch itself. (They also will fire under zwave command - so if you remotely command the Main Button to power on a load, the corresponding association action for that main button will send a trigger to what it is associated to)
So in my screenshot example, when pressing the main button, a command is sent to the “Side Bedroom Lamp” to turn on or off (which is a ZEN15). So that zwave packet of wireless data goes direct from the ZEN32 → ZEN15. The hub isn’t even aware of it. (Other than the ZEN15 telling the hub that it has now turned on, and starts sending power data updates, etc)
Edited to add:
If that device wasn’t a ZEN15 - but something that dimmed, like a Minoston MP31ZD, then we could setup a different type of association (“Held - MultiLevel” see below) that when the button is held, can control the dimming feature!
1 Like
Thanks for the detailed explanation, I think that’s helpful context.
However, I think this might be drifting a bit from what I was originally trying to understand. My question wasn’t really about hub-vs-association routing, but specifically about event timing, and whether there’s any externally observable signal that fires at physical button-down time on the ZEN32 / ZEN35.
Understood. I only offered that as a possible explanation. In other words - it’s a scene controller with a unique set of features. Not a switch. Perhaps that’s the reason for no down event. But Zooz may be able to tell us.
1 Like