zwave-js / zwave-js-ui

Full featured Z-Wave Control Panel UI and MQTT gateway. Built using Nodejs, and Vue/Vuetify
https://zwave-js.github.io/zwave-js-ui
MIT License
982 stars 202 forks source link

[bug] Zipato v2 rgb not showing/working colors #477

Closed joselito11 closed 3 years ago

joselito11 commented 3 years ago

The bug was already described here: https://github.com/zwave-js/zwavejs2mqtt/issues/351, but the issue was closed. The same bug was on old integration on zwave 1.4 in HA and in zwave2mqtt. I have contacted few times Zipato support to get firmware update, but they dont respond.

Version

Build/Run method

zwavejs2mqtt version: 1.0.5 zwavejs version: 6.1.3

Testing with Ha addon and on extra rpi in docker.

Describe the bug

Dont show and dont work color and temperature picker. Zaslonska slika 2021-01-31 10-26-55 Zaslonska slika 2021-01-31 10-28-12

To Reproduce

Try change color or temperature on Zipato v2 rgb light.

Expected behavior

To have working color and temperature picker.

Additional context

Logs: zwavejs2mqtt-store.6.zip

I have tried to add this config on another rpi, picker is showing but still not working:

Also, as a short-term workaround:

Shut down zwavejs2mqtt
open <your-home-id>.values.json, add these two lines at the end:
{"k":"{\"nodeId\":24,\"commandClass\":51,\"endpoint\":0,\"property\":\"supportedColorComponents\"}","v":[0,1,2,3,4]}
{"k":"{\"nodeId\":24,\"commandClass\":51,\"endpoint\":0,\"property\":\"supportsHexColor\"}","v":true}
Start zwavejs2mqtt.
Leave your hands off the refreshInfo button!

After this config:


2021-02-04 07:38:08.715 INFO ZWAVE: Controller status: Driver: Color Switch: property "targetColor" requires a property key, but none was given
2021-02-04 07:38:08.721 INFO ZWAVE: Controller status: Driver: Color Switch: property "targetColor" requires a property key, but none was given
2021-02-04 07:38:08.727 INFO ZWAVE: Controller status: Driver: Color Switch: property "targetColor" requires a property key, but none was given```
robertsLando commented 3 years ago

@AlCalzone ?

AlCalzone commented 3 years ago

The latter log looks like you (or HA?) is trying to set a color channel without specifying which channel. @marcelveldt?

marcelveldt commented 3 years ago

I'm a bit confused by this error report. What is the issue and where does it happen? Does setting the color work from the zwavejs2mqtt control panel?

This sounds like the propertyKey issue we had a few days ago in the server but this is resolved. If you run the latest Add-on version of either the Z-Wave JS Add-on or the Z-Wave JS 2 MQTT add-on, the propertyKey should be there, we missed that one in the value state dump.

Next time: For anyones sake: Please report Home Assistant integration specific issues on the issue tracker for Home Assistant.

joselito11 commented 3 years ago

On 1 and 2 image you can see there is no color picker in HA and no blue color in ZwaveJs2mqtt addon. I can not set colors and temperature in ZwaveJs2mqtt addon and not in HA, problem is on both sides, not only HA. I can only on, off, dim. I have the latest addon version 0.3.0, app version 1.0.5. Testing also on rpi with latest ZwaveJs2mqtt version in docker. I was the same problem 3 years ago with 1.4 zwave integration and about a year ago with Zwave2mqtt addon, and was fixed there.

marcelveldt commented 3 years ago

Ah, okay. I understand. Can you make a full dump for us ? Home Assistant --> Settings --> Integrations --> Z-Wave JS --> Configure --> Click the dump link

share that dump (or extract only this node from it) here please. So we'll have an oversight of all value on your node.

AlCalzone commented 3 years ago

To work around this device firmware (!) issue on the zwave-js side, we need to add a compat flag that allows us to override specific values and avoid querying them from the device (because in this case the supported colors response is simply wrong).

joselito11 commented 3 years ago

light is node 24:

zwavedump.txt

scyto commented 3 years ago

The bug was already described here: #351, but the issue was closed.

Different devices deserve different issue in GitHub because one fix per manufacturer is needed. Also my fibaro device started working via mqtt with no change or fixes on my part, my issue was opened before the new integration was available. So it is yet unclear it is the same issue (root cause) vs symptom. Have you seen your device do what I describe when you use MQTT instead of the new integration?

joselito11 commented 3 years ago

Any news on light colors support? Have tried today on 1.1.0 version, still no colors. The light is listed as supported: https://devices.zwave-js.io/?selectedPath=0x0131:0x0003:0x0002:0.0

robertsLando commented 3 years ago

@billiaz ?

varet80 commented 3 years ago

@joselito11 I have no news yet! I will need to dig into it. Still trying to fix some other hass issues, which are affecting more broad patterns.

I also do not Own any RGBW device (yet) which makes it more difficult! But I will try to get back to you next few days

@scyto I will also look the 351 together with this!

varet80 commented 3 years ago

@joselito11 I took a quick look. Sorry for my ignorance

Do you miss the Blue color from settings? Does Zipato combine the Blue with white somehow? More info there would help me

AlCalzone commented 3 years ago

To work around this device firmware (!) issue on the zwave-js side, we need to add a compat flag that allows us to override specific values and avoid querying them from the device (because in this case the supported colors response is simply wrong).

👆🏻

There are currently more pressing issues than to work around stuff the device manufacturer fucked up. Accepting PRs if anyone wants to tackle support for such a compat flag.

joselito11 commented 3 years ago

@billiaz thank you for helping. Yes there is no blue color settings. Only white, cold and warm white, red and green. Some good news is that temperature picker is working now, and if I set cold-get the cold blue color. Maybe is the fix in old 1.4integration or in zwave2mqtt, there was the same problem.

robertsLando commented 3 years ago

@billiaz This need to be fixed on the device config file, not there. As @AlCalzone said this is a devicefirmware issue, needs a compat flag

varet80 commented 3 years ago

@billiaz I see! @robertsLando is compat flag an 112 CC param as i understand? @joselito11 then It could be tough without blue to be fixed

AlCalzone commented 3 years ago

No a compat(ibility) flags are settings that enable workarounds for things that devices do incorrectly, e.g. Report wrong CCs or like in this case, claim that the blue color channel isn't supported.

joselito11 commented 3 years ago

@robertsLando tried now with latest 2.0.0, 6.5.0, 1.1.0 and still no color wheel: zwavejs2mqtt-store (8).zip Have re-interviewed node also. Please for help

varet80 commented 3 years ago

@joselito11 please export the node itself, as it is not clear to me what the problem is. and going through all logs i cannot easily pin the issue.

joselito11 commented 3 years ago

@billiaz is this ok?

2021-02-27 09:40:48.812 INFO ZWAVE: Node 24 is alive
2021-02-27 09:40:48.825 INFO ZWAVE: Node 24: value added 24-38-0-targetValue => 255
2021-02-27 09:40:48.828 INFO ZWAVE: Node 24: value added 24-38-0-duration => [Duration: undefinedseconds]
2021-02-27 09:40:48.838 INFO ZWAVE: Node 24: value added 24-38-0-currentValue => 99
2021-02-27 09:40:48.841 INFO ZWAVE: Node 24: value added 24-38-0-Up => undefined
2021-02-27 09:40:48.843 INFO ZWAVE: Node 24: value added 24-38-0-Down => undefined
2021-02-27 09:40:48.846 INFO ZWAVE: Node 24: value added 24-51-0-duration => [Duration: undefinedseconds]
2021-02-27 09:40:48.863 INFO ZWAVE: Node 24: value added 24-51-0-currentColor-0 => 0
2021-02-27 09:40:48.880 INFO ZWAVE: Node 24: value added 24-51-0-currentColor => [object Object]
2021-02-27 09:40:48.896 INFO ZWAVE: Node 24: value added 24-51-0-currentColor-1 => 0
2021-02-27 09:40:48.904 INFO ZWAVE: Node 24: value added 24-51-0-currentColor-2 => 255
2021-02-27 09:40:48.913 INFO ZWAVE: Node 24: value added 24-51-0-currentColor-3 => 159
2021-02-27 09:40:48.915 INFO ZWAVE: Node 24: value added 24-51-0-targetColor-0 => undefined
2021-02-27 09:40:48.917 INFO ZWAVE: Node 24: value added 24-51-0-targetColor-1 => undefined
2021-02-27 09:40:48.919 INFO ZWAVE: Node 24: value added 24-51-0-targetColor-2 => undefined
2021-02-27 09:40:48.922 INFO ZWAVE: Node 24: value added 24-51-0-targetColor-3 => undefined
2021-02-27 09:40:48.924 INFO ZWAVE: Node 24: value added 24-51-0-targetColor => undefined
2021-02-27 09:40:48.926 INFO ZWAVE: Node 24: value added 24-112-0-1 => 43
2021-02-27 09:40:48.928 INFO ZWAVE: Node 24: value added 24-112-0-3 => 80
2021-02-27 09:40:48.930 INFO ZWAVE: Node 24: value added 24-112-0-2 => undefined
2021-02-27 09:40:48.933 INFO ZWAVE: Node 24: value added 24-112-0-4 => undefined
2021-02-27 09:40:48.935 INFO ZWAVE: Node 24: value added 24-112-0-255 => undefined
2021-02-27 09:40:48.937 INFO ZWAVE: Node 24: value added 24-114-0-manufacturerId => 305
2021-02-27 09:40:48.939 INFO ZWAVE: Node 24: value added 24-114-0-productType => 2
2021-02-27 09:40:48.941 INFO ZWAVE: Node 24: value added 24-114-0-productId => 3
2021-02-27 09:40:48.943 INFO ZWAVE: Node 24: value added 24-134-0-libraryType => 3
2021-02-27 09:40:48.945 INFO ZWAVE: Node 24: value added 24-134-0-protocolVersion => 4.38
2021-02-27 09:40:48.947 INFO ZWAVE: Node 24: value added 24-134-0-firmwareVersions => 2.0
2021-02-27 09:40:48.949 INFO ZWAVE: Node 24: value added 24-134-0-hardwareVersion => undefined
2021-02-27 09:40:48.952 INFO ZWAVE: Node 24 ready: Zipato - RGBWE2 (RGBW Bulb V2)

Update: Color wheel started working when tried with MQTT! But not with WS! It is something on WS side or HA integration side to not show it correct. Thank you all for help! We are close now. Where can I report this integration problem? Zaslonska slika 2021-02-28 10-43-59

robertsLando commented 3 years ago

@joselito11 Are you using zwavejs integration or mqtt discovery?

joselito11 commented 3 years ago

zwavejs, tried and tested also with mqtt

robertsLando commented 3 years ago

Color wheel started working when tried with MQTT!

If it's working with MQTT I cannot do anything on zwavejs integration as it's not maintained by me

joselito11 commented 3 years ago

ok, thank you!

dfiore1230 commented 3 years ago

I just got one of these bulbs installed and included in my zwavejs instance. I am using HA as a front end via MQTT (with no zwave plugin installed).

I can turn the light on and off but cannot set the color temp nor color of the bulb. (the color wheel does show in HA)

Device Info shows the bulb has firmware v2.26

Log Snip on attempted color change 2021-03-02 19:07:52.680 INFO MQTT: Message received on zwave/nodeID_83/51/0/targetColor/set, '{"red": 191, "green": 0, "blue": 255}' 2021-03-02 19:07:52.722 INFO MQTT: Message received on zwave/nodeID_83/38/0/targetValue/set, '99' 2021-03-02 19:07:52.723 INFO ZWAVE: Writing 99 to 83-38-0-targetValue 2021-03-02 19:07:52.768 DEBUG MQTT: Publishing to zwave/nodeID_83/38/0/currentValue: { time: 1614712072766, value: 99 } with options { qos: 1, retain: true } 2021-03-02 19:07:52.769 INFO ZWAVE: Node 83: value updated: 38-0-currentValue 99 => 99 2021-03-02 19:07:57.826 DEBUG MQTT: Publishing to zwave/nodeID_83/38/0/currentValue: { time: 1614712077825, value: 99 } with options { qos: 1, retain: true } 2021-03-02 19:07:57.827 INFO ZWAVE: Node 83: value updated: 38-0-currentValue 99 => 99

Log snip on on/off 2021-03-02 19:08:37.923 INFO MQTT: Message received on zwave/nodeID_83/38/0/targetValue/set, 'OFF' 2021-03-02 19:08:37.925 INFO ZWAVE: Writing 0 to 83-38-0-targetValue 2021-03-02 19:08:37.967 DEBUG MQTT: Publishing to zwave/nodeID_83/38/0/currentValue: { time: 1614712117966, value: 0 } with options { qos: 1, retain: true } 2021-03-02 19:08:37.969 INFO ZWAVE: Node 83: value updated: 38-0-currentValue 99 => 0 2021-03-02 19:08:41.266 INFO MQTT: Message received on zwave/nodeID_83/38/0/targetValue/set, '99' 2021-03-02 19:08:41.267 INFO ZWAVE: Writing 99 to 83-38-0-targetValue 2021-03-02 19:08:41.320 DEBUG MQTT: Publishing to zwave/nodeID_83/38/0/currentValue: { time: 1614712121319, value: 99 } with options { qos: 1, retain: true } 2021-03-02 19:08:41.322 INFO ZWAVE: Node 83: value updated: 38-0-currentValue 0 => 99 2021-03-02 19:08:43.020 DEBUG MQTT: Publishing to zwave/nodeID_83/38/0/currentValue: { time: 1614712123019, value: 99 } with options { qos: 1, retain: true } 2021-03-02 19:08:43.021 INFO ZWAVE: Node 83: value updated: 38-0-currentValue 99 => 99

dfiore1230 commented 3 years ago

I can see the color change on HA and ZWaveJS but the bulb never changes.

varet80 commented 3 years ago

@dfiore1230 can you please uplpad a node export?

Do you see all three colors populated on zwavejs2mqtt console?

dfiore1230 commented 3 years ago

@billiaz I think this should cover it.

node_83.txt

Untitled

dfiore1230 commented 3 years ago

@billiaz did you happen to have a look at this ?

varet80 commented 3 years ago

from the Json I suspect you run an old version? can you tell me what is your zwavejs2mqtt @dfiore1230 ?

dfiore1230 commented 3 years ago

App Version 2.1.2

Zwavejs Version 6.6.1

Zwavejs-server Version 1.1.1

varet80 commented 3 years ago

@dfiore1230 2.1.2 was released today! and the file is from 6 days ago.

can it be the new payload is different?

under homeassistant tab on the node you should find something different than:

{
        "light_rgb_dimmer": {
            "type": "light",
            "object_id": "rgb_dimmer",
            "discovery_payload": {
                "state_topic": "zwave/nodeID_83/38/0/currentValue",
                "command_topic": "zwave/nodeID_83/38/0/targetValue/set",
                "on_command_type": "brightness",
                "state_value_template": "{{ \"OFF\" if value_json.value == 0 else \"ON\" }}",
                "brightness_value_template": "{{ value_json.value }}",
                "brightness_scale": 99,
                "rgb_command_template": "{{ {'red': red, 'green': green, 'blue': blue}|to_json }}",
                "rgb_value_template": "{{ value_json.value.red }},{{ value_json.value.green }},{{ value_json.value.blue }}",
                "rgb_state_topic": "zwave/nodeID_83/51/0/currentColor",
                "rgb_command_topic": "zwave/nodeID_83/51/0/targetColor/set",
                "brightness_state_topic": "zwave/nodeID_83/38/0/currentValue",
                "brightness_command_topic": "zwave/nodeID_83/38/0/targetValue/set",
                "device": {
                    "identifiers": [
                        "zwavejs2mqtt_0xe8b57acb_node83"
                    ],
                    "manufacturer": "Zipato",
                    "model": "RGBW Bulb V2 (RGBWE2)",
                    "name": "nodeID_83",
                    "sw_version": "2.26"
                },
                "name": "nodeID_83_rgb_dimmer",
                "unique_id": "zwavejs2mqtt_0xe8b57acb_83-51-0-currentColor"
            },
            "values": [
                "38-0-currentValue",
                "38-0-targetValue",
                "51-0-currentColor",
                "51-0-targetColor"
            ],
            "discoveryTopic": "light/nodeID_83/rgb_dimmer/config",
            "persistent": false,
            "ignoreDiscovery": false
        }

especially values should have a -0 (in some cases) also you should have color_temp_command_template

dfiore1230 commented 3 years ago

Watchtower FTW :)

Heres that tab.

{
  "type": "light",
  "object_id": "rgb_dimmer",
  "discovery_payload": {
    "state_topic": "zwave/nodeID_83/38/0/currentValue",
    "command_topic": "zwave/nodeID_83/38/0/targetValue/set",
    "on_command_type": "brightness",
    "state_value_template": "{{ \"OFF\" if value_json.value == 0 else \"ON\" }}",
    "brightness_value_template": "{{ value_json.value }}",
    "brightness_scale": 99,
    "rgb_command_template": "{{ {'red': red, 'green': green, 'blue': blue}|to_json }}",
    "rgb_value_template": "{{ value_json.value.red }},{{ value_json.value.green }},{{ value_json.value.blue }}",
    "rgb_state_topic": "zwave/nodeID_83/51/0/currentColor",
    "rgb_command_topic": "zwave/nodeID_83/51/0/targetColor/set",
    "brightness_state_topic": "zwave/nodeID_83/38/0/currentValue",
    "brightness_command_topic": "zwave/nodeID_83/38/0/targetValue/set",
    "device": {
      "identifiers": [
        "zwavejs2mqtt_0xe8b57acb_node83"
      ],
      "manufacturer": "Zipato",
      "model": "RGBW Bulb V2 (RGBWE2)",
      "name": "nodeID_83",
      "sw_version": "2.26"
    },
    "name": "nodeID_83_rgb_dimmer",
    "unique_id": "zwavejs2mqtt_0xe8b57acb_83-51-0-currentColor"
  },
  "values": [
    "38-0-currentValue",
    "38-0-targetValue",
    "51-0-currentColor",
    "51-0-targetColor"
  ],
  "discoveryTopic": "light/nodeID_83/rgb_dimmer/config",
  "persistent": false,
  "ignoreDiscovery": false,
  "id": "light_rgb_dimmer"
}
dfiore1230 commented 3 years ago

@billiaz sorry to be a bother, any further feedback here?

dfiore1230 commented 3 years ago

@billiaz sorry to be a bother, any further feedback here?

Ok so i removed and readded the bulb. it was still not working. then from zwave2mqtt web interface set the color and it changed. Once i did that it started working in HA, as if it just needed to clear some flag.

varet80 commented 3 years ago

hmm.. I suspect some ha discovery issue. is this now working @dfiore1230 ?

dfiore1230 commented 3 years ago

hmm.. I suspect some ha discovery issue. is this now working @dfiore1230 ?

Yes it is working now

pifou25 commented 2 years ago

Hello,

I have an issue with this light Zipato bulb v2, it seems all correct but I can't have the blue color. Every else works fine, there are 4 values in the color switch panel, that are warm white, cold white, green and red. But no blue slider :/ I tried to send a custom json value like {"warmWhite":0,"coldWhite":0,"red":0,"green":0, "blue": 255} or I also tried to send a custom topic location/nodename/12/51/4/targetColor/set = 255 but always unsuccessfully.

image

How can I force the missing command to be created ? The device: https://devices.zwave-js.io/?jumpTo=0x0131:0x0002:0x0003:2.0 I'm using the lattest docker version (zwavejs 8.9.beta) I tried the same device with the old legacy jeedom & zwave plugin (using openzwave 1.4) and it worked fine.

robertsLando commented 2 years ago

@pifou25 Strange the blue color is not there, @AlCalzone ?

AlCalzone commented 2 years ago

@robertsLando if you read above, this is a device bug. It doesn't report support for the blue channel. Other integrations worked around it. The linked issue for a more generic workaround is still open.

joselito11 commented 2 years ago

@pifou25 you must edit the zwave file to get blue color. But I can not find that post, if I find I send you the data.

pifou25 commented 2 years ago

@joselito11 thanks for your comment, I found it :) I added these 2 lines into a file named "aaaaaa.metadata.jsonl":

{"k":"{\"nodeId\":14,\"commandClass\":51,\"endpoint\":0,\"property\":\"currentColor\",\"propertyKey\":4}","v":{"type":"number","readable":true,"writeable":false,"min":0,"max":255,"label":"Current value (Blue)","description":"The current value of the Blue color."}}
{"k":"{\"nodeId\":14,\"commandClass\":51,\"endpoint\":0,\"property\":\"targetColor\",\"propertyKey\":4}","v":{"type":"number","readable":true,"writeable":true,"min":0,"max":255,"label":"Target value (Blue)","description":"The target value of the Blue color."}}
AlCalzone commented 1 year ago

It's been a while, but the coming driver version will fix this by working around the root issue. https://github.com/zwave-js/node-zwave-js/pull/5993