core: Z-Wave JS: HA creates incorrect entities for the Zooz ZEN31 RGBW controller

The problem

The RGBW entity created for the ZEN31 RGBW controller doesn’t work correctly. Logs and details are below.

What is version of Home Assistant Core has the issue?

core-2021.3.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Z-Wave 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_

DEVICE

The ZEN31 has 4 switch inputs and 4 LED channels. The device is typically used to control 4 independent single-color LED strips or a single RGBW strip. I’m using the ZEN31 for the latter.

ENVIRONMENT

  1. HA Core core-2021.3.3
  2. Z-Wave JS to MQTT 0.8.1
  3. Connected to HA through add-in, not MQTT

EXPECTED BEHAVIOR

I expect HA to create the following entities for this device:

  1. Main Light. Single control for the entire device w/ the following features: SUPPORT_BRIGHTNESS, SUPPORT_EFFECT, SUPPORT_FLASH, SUPPORT_RGB_COLOR, SUPPORT_TRANSITION, and SUPPORT_WHITE_VALUE. On the interface side, a color picker and brightness setting should control the RGB channels, a white value slider should control the W channel, and an effects dropdown should allow for setting an effect.
  2. Red Light. Single control for the red channel only w/ the SUPPORT_BRIGHTNESS and SUPPORT_TRANSITION features.
  3. Green Light. Single control for the green channel only w/ the SUPPORT_BRIGHTNESS and SUPPORT_TRANSITION features.
  4. Blue Light. Single control for the blue channel only w/ the SUPPORT_BRIGHTNESS and SUPPORT_TRANSITION features.
  5. ** White Light**. Single control for the white channel only w/ the SUPPORT_BRIGHTNESS and SUPPORT_TRANSITION features.
  6. Various energy reading devices that aren’t the subject of this issue.

ACTUAL BEHAVIOR

HA creates all of the entities listed above. Entities 2-6 above work file. Entity 1 does not.

On the UI side, here’s a breakdown of which elements work:

  1. Color Picker: Does not work. Selecting a color does nothing.
  2. Brightness: Does not work as expected. Dims RGB & W.
  3. White Level: Control is completely missing.
  4. Color Temperature: Slider is present, but shouldn’t be. This device does not support CCT.
  5. Effects: Missing

CONFIG

Below is the entry for the main light in the entity registry:

{
    "entity_id": "light.kitchen_under_cabinet_lights_base",
    "config_entry_id": "024c7f9b8419040f9412100edabc76da",
    "device_id": "2f7a0d12832af0515bcf5eee234cd27e",
    "area_id": null,
    "unique_id": "4271243033.94-38-1-currentValue",
    "platform": "zwave_js",
    "name": "Kitchen Under Cabinet Lights",
    "icon": null,
    "disabled_by": null,
    "capabilities": {
        "min_mireds": 153,
        "max_mireds": 370
    },
    "supported_features": 51,
    "device_class": null,
    "unit_of_measurement": null,
    "original_name": "Kitchen Under Cabinet Lights",
    "original_icon": null
}
  1. The capabilities object should include should include this entry: "effect_list": ["Disabled","Fireplace","Storm","Rainbow","Polar Lights","Police"]}
  2. Supported_features should = 189. This would indicate support for brightness, effect, flash, rgb_color, transition, and white_value. The current value of 51 indicates support for brightness, color temp, rgb_color, and transition.
  3. I’m not sure whether min_ & max_mireds should be included as capabilities.

Z-WAVE COMMANDS

When selecting a color through the UI, the following appears in the Z-Wave JS debug window:

2021-03-26 12:38:33.537 INFO ZWAVE: Node 94: value updated: 51-1-duration [Duration: 0seconds] => [Duration: 0seconds]
2021-03-26 12:38:33.540 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-0 0 => 15
2021-03-26 12:38:33.542 INFO ZWAVE: Node 94: value updated: 51-1-targetColor-0 15 => 15
2021-03-26 12:38:33.546 INFO ZWAVE: Node 94: value updated: 51-1-currentColor [object Object] => [object Object]
2021-03-26 12:38:33.549 INFO ZWAVE: Node 94: value updated: 51-1-targetColor [object Object] => [object Object]
2021-03-26 12:38:35.448 INFO ZWAVE: Node 94: value updated: 51-1-duration [Duration: 0seconds] => [Duration: 0seconds]
2021-03-26 12:38:35.451 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-2 255 => 255
2021-03-26 12:38:35.454 INFO ZWAVE: Node 94: value updated: 51-1-targetColor-2 255 => 255
2021-03-26 12:38:35.457 INFO ZWAVE: Node 94: value updated: 51-1-currentColor [object Object] => [object Object]
2021-03-26 12:38:35.460 INFO ZWAVE: Node 94: value updated: 51-1-targetColor [object Object] => [object Object]
2021-03-26 12:38:35.464 INFO ZWAVE: Node 94: value updated: 51-1-hexColor ff00ff => ff00ff

2021-03-26 12:38:37.277 INFO ZWAVE: Node 94: value updated: 51-1-duration [Duration: 0seconds] => [Duration: 0seconds]
2021-03-26 12:38:37.280 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-3 0 => 211
2021-03-26 12:38:37.282 INFO ZWAVE: Node 94: value updated: 51-1-targetColor-3 211 => 211
2021-03-26 12:38:37.285 INFO ZWAVE: Node 94: value updated: 51-1-currentColor [object Object] => [object Object]
2021-03-26 12:38:37.287 INFO ZWAVE: Node 94: value updated: 51-1-targetColor [object Object] => [object Object]
2021-03-26 12:38:37.290 INFO ZWAVE: Node 94: value updated: 51-1-hexColor ff00ff => ffd3ff

2021-03-26 12:38:39.116 INFO ZWAVE: Node 94: value updated: 51-1-duration [Duration: 0seconds] => [Duration: 0seconds]
2021-03-26 12:38:39.119 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-4 255 => 175
2021-03-26 12:38:39.121 INFO ZWAVE: Node 94: value updated: 51-1-targetColor-4 175 => 175
2021-03-26 12:38:39.124 INFO ZWAVE: Node 94: value updated: 51-1-currentColor [object Object] => [object Object]
2021-03-26 12:38:39.126 INFO ZWAVE: Node 94: value updated: 51-1-targetColor [object Object] => [object Object]
2021-03-26 12:38:39.128 INFO ZWAVE: Node 94: value updated: 51-1-hexColor ffd3ff => ffd3af

2021-03-26 12:38:40.903 INFO ZWAVE: Node 94: value updated: 117-1-local 0 => 0
2021-03-26 12:38:40.905 INFO ZWAVE: Node 94: value updated: 117-1-rf 0 => 0

2021-03-26 12:38:42.694 INFO ZWAVE: Node 94: value updated: 113-1-Power Management-unknown 254 => 254

2021-03-26 12:38:44.509 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-0 15 => 0
2021-03-26 12:38:44.514 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-1 0 => 0
2021-03-26 12:38:44.518 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-2 255 => 255
2021-03-26 12:38:44.521 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-3 211 => 36
2021-03-26 12:38:44.523 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-4 175 => 255
2021-03-26 12:38:44.526 INFO ZWAVE: Node 94: value updated: 51-1-currentColor [object Object] => [object Object]
2021-03-26 12:38:44.528 INFO ZWAVE: Node 94: value updated: 51-1-targetColor [object Object] => [object Object]
2021-03-26 12:38:44.531 INFO ZWAVE: Node 94: value updated: 51-1-hexColor ffd3af => ff24ff
2021-03-26 12:38:44.629 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-0 0 => 0
2021-03-26 12:38:44.632 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-1 0 => 0
2021-03-26 12:38:44.634 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-2 255 => 255
2021-03-26 12:38:44.637 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-3 36 => 36
2021-03-26 12:38:44.639 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-4 255 => 255
2021-03-26 12:38:44.641 INFO ZWAVE: Node 94: value updated: 51-1-currentColor [object Object] => [object Object]
2021-03-26 12:38:44.643 INFO ZWAVE: Node 94: value updated: 51-1-targetColor [object Object] => [object Object]
2021-03-26 12:38:44.645 INFO ZWAVE: Node 94: value updated: 51-1-hexColor ff24ff => ff24ff
2021-03-26 12:38:44.776 INFO ZWAVE: Node 94: value updated: 113-1-System-unknown 254 => 254

2021-03-26 12:38:50.208 INFO ZWAVE: Node 94: value updated: 38-2-targetValue 99 => 99
2021-03-26 12:38:50.212 INFO ZWAVE: Node 94: value updated: 38-2-duration [Duration: 0seconds] => [Duration: 0seconds]
2021-03-26 12:38:50.214 INFO ZWAVE: Node 94: value updated: 38-2-currentValue 99 => 99

Essentially, similar commands are repeated a few times (once for each channel) and, in the end, the color doesn’t actually change.

When I change the color using the Z-Wave JS to MQTT interface under Color Switch -> [94-51-1-targetColor] Target Color, I see the following

2021-03-26 12:42:15.114 INFO ZWAVE: Calling api writeValue with args: [
{ nodeId: 94, commandClass: 51, endpoint: 1, property: 'hexColor' },
'FF55FF',
[length]: 2
]
2021-03-26 12:42:15.117 INFO ZWAVE: Writing 'FF55FF' to 94-51-1-hexColor
2021-03-26 12:42:15.174 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-2 255 => 255
2021-03-26 12:42:15.178 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-3 36 => 85
2021-03-26 12:42:15.181 INFO ZWAVE: Node 94: value updated: 51-1-currentColor-4 255 => 255
2021-03-26 12:42:15.184 INFO ZWAVE: Node 94: value updated: 51-1-currentColor [object Object] => [object Object]
2021-03-26 12:42:15.187 INFO ZWAVE: Node 94: value updated: 51-1-targetColor [object Object] => [object Object]
2021-03-26 12:42:15.191 INFO ZWAVE: Node 94: value updated: 51-1-hexColor ff24ff => ff55ff
2021-03-26 12:42:15.193 INFO ZWAVE: Success zwave api call writeValue { success: true, message: 'Success zwave api call', result: undefined }

This works, as do the other brightness, white value, effect, and RGB controls made available directly through the Z-Wave JS to MQTT UI.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 21 (16 by maintainers)

Most upvoted comments

I can reproduce this in core-2021.3.4. This was working correctly in approx. core-2021.3.2