question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

When toggling relay of ZEN16, reported currentValue ends up not being targetValue

See original GitHub issue

Describe the bug

When toggling a relay of a Zooz ZEN16, currentValue gets misreported at some point. It first gets the correct value then changes to the wrong value. ie. Toggling targetValue cause currentValue to toggle as expected reflecting the actual state of the relay, but will then toggle again, thus reporting currentValue incorrectly. The physical relay actually only switches once. To actually toggle the state and report the correct value, the targetValue needs to be clicked twice (without toggling, just the same value).

In attached log file,

22:15:45.027 DRIVER » [Node 010] [REQ] [SendData]
                      │ transmit options: 0x25
                      │ callback id:      86
                      └─[MultiChannelCCCommandEncapsulation]
                        │ source:      0
                        │ destination: 1
                        └─[BinarySwitchCCSet]
                            target value: true
...
22:15:45.058 CNTRLR   [Node 010] [~] [Binary Switch] currentValue: false => true        [Endpoint 1]
...
22:15:45.132 CNTRLR   [Node 010] [~] [Binary Switch] currentValue: true => true         [Endpoint 1]
...
22:15:45.135 DRIVER « [Node 010] [REQ] [ApplicationCommand]
                      └─[MultiChannelCCCommandEncapsulation]
                        │ source:      1
                        │ destination: 0
                        └─[BinarySwitchCCReport]
                            current value: true
...
22:15:46.062 DRIVER » [Node 010] [REQ] [SendData]
                      │ transmit options: 0x25
                      │ callback id:      87
                      └─[MultiChannelCCCommandEncapsulation]
                        │ source:      0
                        │ destination: 1
                        └─[BinarySwitchCCGet]
22:15:46.113 CNTRLR   [Node 010] [~] [Binary Switch] currentValue: true => false        [Endpoint 1]
...
22:15:46.117 DRIVER « [Node 010] [REQ] [ApplicationCommand]
                      └─[MultiChannelCCCommandEncapsulation]
                        │ source:      1
                        │ destination: 0
                        └─[BinarySwitchCCReport]
                            current value: false

Only one BinarySwitchCCSet is sent. Switching the relays with the physical switches do correctly report the currentValue.

Device information

Zooz ZEN16 Multirelay Node 10 This is a device with 3 relays and 3 switches, my switches are configured as [10-112-0-2] Switch Type for Relay 1 (Sw1): Toggle switch (follow switch). This did not occur with ozw.

Last Known Working Configuration

  • New device

  • Previously working device (node-zwave-js)

    • Which library version/docker image/adapter version?
    • Have you made any recent configuration changes to the device? Describe.
  • Previously working device (other platform)

    • ozw
    • Have you made any recent configuration changes to the device? No

Installation information How did you install node-zwave-js?

  • zwavejs2mqtt (latest) docker image
  • zwavejs2mqtt (dev) docker image
  • ioBroker.zwave2 adapter
  • Pkg
  • Manual Docker build
    • node-zwave-js branch:
    • zwavejs2mqtt branch:
  • Manually built (as described in the docs)
  • Other:

To Reproduce Steps to reproduce the behavior:

  1. Go to ‘Control Panel’
  2. Select node
  3. Expand Binary Switch
  4. Toggle targetValue. currentValue will then report the current value, before switching a second time.

Additional context Add any other context about the problem here.

Logfile: zwavejs_1.log

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:65 (25 by maintainers)

github_iconTop GitHub Comments

4reactions
blhoward2commented, Feb 24, 2021

All, Zooz provided me with a test firmware which fixes this issue. They were hoping to release it as soon as tomorrow. I’ll update when they do.

3reactions
GrizzlyAKcommented, Feb 14, 2021

I am seeing this EXACT behavior with this device right now (actually two of them I’ve just added to my network) on the zwave 1.4 integration which uses the OZW 1.4 library. That points to a HW issue, I would think. I will report to Zooz as well. I’ve a pretty good relationship with them, as I own a LOT of Zooz products.

After reading #1532 I’m not sure the solution as described will solve this particular problem, if I’m understanding what the fix does. It sounds like that you will decide NOT to do a poll if you receive an update following a set. But the problem I’m seeing with my device is a BinarySwitch report showing the CORRECT state, followed by a second BinarySwitch report showing the WRONG state, which gives the application the opposite impression of the true state. And, it appears to be random as to when I receive that spurious second report.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Zooz ZEN16 Binary Switch report errors (zwave 1.4) - Z-Wave
I'm having an issue with my new Zooz ZEN16 Multirelay. ... When toggling relay of ZEN16, reported currentValue ends up not being targetValue....
Read more >
ZEN16 MultiRelay Advanced Settings - Zooz Support Center
Parameter 21: Decide whether you'd like Relay 1 to be normally open (NO) or normally closed (NC). Values: 0 – normally open (relay...
Read more >
20-9-4 zooz-s2-multirelay-zen16-ver1.03-manual
Powerful dry contact relays to control loads up to 15 A and 20 A ... Z-Wave or optional wall switch control (toggle or...
Read more >
[RELEASE] Zooz MultiRelay (ZEN16) - SmartThings Community
The problem is that using the new Smartthings App I tried using the Garage Door App to create a new device and it...
Read more >
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled ... - GitAnswer
I ran some tests and realized that the read function does not work in void ... C# · When toggling relay of ZEN16,...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found