core: ZwaveJS multicast CLASS_BASIC fails to validate (and send)across multiple different devices

The problem

With Core 2021.7.3 I could send a COMMAND_CLASS_BASIC (32) ZwaveJS multicast to multiple nodes on endpoint 0 and have them turn/on off. With Core 2021.8.6 this same command fails with: File “/usr/local/lib/python3.9/site-packages/zwave_js_server/model/node.py”, line 414, in async_set_value raise NotFoundError(f"Value {val} not found on node {self}") zwave_js_server.exceptions.NotFoundError: Value 19-32-0-targetValue not found on node Node(node_id=19)

Two things appear to have changed/broken:

  • COMMAND_CLASS_BASIC commands to set the targetValue no longer work
  • I need to send to endpoint 1 now using device-specific (SWITCH_BINARY or SWITCH_MULTILEVEL)

Note that there is nothing in the zwave-js log when I try this (even on the high debug levels) because the command never gets issued due to the validation error above.

This suggests that the zwave-js value set command is rejecting “targetValue” for the BASIC command class, which should be valid for all devices, and was working before.

For reference: The service I am testing is:

service: zwave_js.multicast_set_value
data:
  command_class: '32'
  property: targetValue
  value: 0
  endpoint: 0
target:
  entity_id:
          - light.kitchen_counter_switch
          - switch.kitchen_bar_switch

light.kitchen_counter_switch is a Fibaro FGD-212 dimmer that has worked for over a year, and works fine in all non-multicast uses. switch.kitchen_bar_switch is a Fiabro FGS-223 dual switch that has worked for over a year, and works fine in all non-multicast uses.

Here is what I can get working:

  • If I send a COMMAND_CLASS_SWITCH_BINARY (37) with “true” to the switch entity on endpoint 1 it works.
  • If I send a COMMAND_CLASS_SWITCH_MULTILEVEL (38) with 99 to the light entity endpoint 1 it works.
  • Sending either of those commands to the other entities results in the same type of error. (I expect the MULTILEVEL to fail on the binary switch, but not the other way around.)

What is version of Home Assistant Core has the issue?

core-2021.8.6

What was the last working version of Home Assistant Core?

core-2021.7.3

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Zwave-JS

Link to integration documentation on our website

https://www.home-assistant.io/integrations/zwave_js/

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 22 (7 by maintainers)

Most upvoted comments

Thinking about it, it would make sense to not hide the Basic CC targetValue on virtual nodes (multicast/broadcast) on the driver side. I’ve raised an issue to track that.

Hi there: is there anything I can/should do to get this resolved? (I understand it is not prioritized.) thanks!

I’ve chosen to not expose the Basic values when there is a better CC supported, because you’d end up with a ton of unnecessary values that never get updated.

IMO you should allow always setting the basic values. Just keep in mind that it is possible that the automatic value refresh won’t always work entirely.

Here’s a dump from currently and one (Aug) I found from a month ago (July). Diffing them may be of help. I saw that the dimmer nodes list endpoint 0 as supporting Multi Channel while the new one doesn’t. E.g., line 5259 (July) vs. line 5352 (Aug).

zwave_js_dumps.zip