home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
72.81k stars 30.51k forks source link

Eaton/Cooper RFWC5 scene controller has incomplete entities and not reporting state (Z-Wave JS) #49118

Closed rogersmj closed 3 years ago

rogersmj commented 3 years ago

The problem

I have an Eaton RFWC5 (aka Cooper RFWC5AW) in-wall scene controller, which does not display the entities I expect after being included in the Z-Wave network, and the one entity it does display does not seem to be reporting state. The device is listed in the Z-Wave JS device database.

The device node is reported as "ready", but only one entity was created (as I recall from using this device with SmartThings a long time ago, there should be at least two entities -- one for the buttons, one for the LEDs). Furthermore, for this one entity, pressing buttons on the physical device does nothing -- the state is always shown as "0" in Home Assistant:

image

What is version of Home Assistant Core has the issue?

core-2021.4.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?

Here is the complete node config from the Z-wave JS network dump:

{
            "nodeId": 28,
            "index": 0,
            "status": 4,
            "ready": true,
            "isListening": true,
            "isRouting": false,
            "isSecure": false,
            "manufacturerId": 26,
            "productId": 0,
            "productType": 22349,
            "firmwareVersion": "2.5",
            "name": "Scene Contrl\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
            "location": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
            "neighbors": [
              1,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11,
              12,
              13,
              14,
              15,
              16,
              17,
              18,
              19,
              20,
              21,
              26,
              30,
              31,
              33,
              34,
              35
            ],
            "interviewAttempts": 1,
            "interviewStage": 6,
            "endpoints": [
              {
                "nodeId": 28,
                "index": 0,
                "deviceClass": {
                  "basic": {
                    "key": 2,
                    "label": "Static Controller"
                  },
                  "generic": {
                    "key": 2,
                    "label": "Static Controller"
                  },
                  "specific": {
                    "key": 2,
                    "label": "Scene Controller"
                  },
                  "mandatorySupportedCCs": [
                    133,
                    32,
                    114,
                    45
                  ],
                  "mandatoryControlledCCs": [
                    32,
                    43
                  ]
                }
              }
            ],
            "values": [
              {
                "endpoint": 0,
                "commandClass": 32,
                "commandClassName": "Basic",
                "property": "currentValue",
                "propertyName": "currentValue",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": false,
                  "label": "Current value",
                  "min": 0,
                  "max": 99
                }
              },
              {
                "endpoint": 0,
                "commandClass": 32,
                "commandClassName": "Basic",
                "property": "targetValue",
                "propertyName": "targetValue",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": true,
                  "label": "Target value",
                  "min": 0,
                  "max": 99
                }
              },
              {
                "endpoint": 0,
                "commandClass": 114,
                "commandClassName": "Manufacturer Specific",
                "property": "manufacturerId",
                "propertyName": "manufacturerId",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": false,
                  "label": "Manufacturer ID",
                  "min": 0,
                  "max": 65535
                },
                "value": 26
              },
              {
                "endpoint": 0,
                "commandClass": 114,
                "commandClassName": "Manufacturer Specific",
                "property": "productType",
                "propertyName": "productType",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": false,
                  "label": "Product type",
                  "min": 0,
                  "max": 65535
                },
                "value": 22349
              },
              {
                "endpoint": 0,
                "commandClass": 114,
                "commandClassName": "Manufacturer Specific",
                "property": "productId",
                "propertyName": "productId",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": false,
                  "label": "Product ID",
                  "min": 0,
                  "max": 65535
                },
                "value": 0
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "sceneId",
                "propertyKey": 1,
                "propertyName": "sceneId",
                "propertyKeyName": "1",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": true,
                  "label": "Associated Scene ID (1)",
                  "min": 0,
                  "max": 255
                },
                "value": 0
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "dimmingDuration",
                "propertyKey": 1,
                "propertyName": "dimmingDuration",
                "propertyKeyName": "1",
                "ccVersion": 0,
                "metadata": {
                  "type": "duration",
                  "readable": true,
                  "writeable": true,
                  "label": "Dimming duration (1)"
                },
                "value": {
                  "value": 0,
                  "unit": "seconds"
                }
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "sceneId",
                "propertyKey": 2,
                "propertyName": "sceneId",
                "propertyKeyName": "2",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": true,
                  "label": "Associated Scene ID (2)",
                  "min": 0,
                  "max": 255
                },
                "value": 0
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "dimmingDuration",
                "propertyKey": 2,
                "propertyName": "dimmingDuration",
                "propertyKeyName": "2",
                "ccVersion": 0,
                "metadata": {
                  "type": "duration",
                  "readable": true,
                  "writeable": true,
                  "label": "Dimming duration (2)"
                },
                "value": {
                  "value": 0,
                  "unit": "seconds"
                }
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "sceneId",
                "propertyKey": 3,
                "propertyName": "sceneId",
                "propertyKeyName": "3",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": true,
                  "label": "Associated Scene ID (3)",
                  "min": 0,
                  "max": 255
                },
                "value": 0
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "dimmingDuration",
                "propertyKey": 3,
                "propertyName": "dimmingDuration",
                "propertyKeyName": "3",
                "ccVersion": 0,
                "metadata": {
                  "type": "duration",
                  "readable": true,
                  "writeable": true,
                  "label": "Dimming duration (3)"
                },
                "value": {
                  "value": 0,
                  "unit": "seconds"
                }
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "sceneId",
                "propertyKey": 4,
                "propertyName": "sceneId",
                "propertyKeyName": "4",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": true,
                  "label": "Associated Scene ID (4)",
                  "min": 0,
                  "max": 255
                },
                "value": 0
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "dimmingDuration",
                "propertyKey": 4,
                "propertyName": "dimmingDuration",
                "propertyKeyName": "4",
                "ccVersion": 0,
                "metadata": {
                  "type": "duration",
                  "readable": true,
                  "writeable": true,
                  "label": "Dimming duration (4)"
                },
                "value": {
                  "value": 0,
                  "unit": "seconds"
                }
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "sceneId",
                "propertyKey": 5,
                "propertyName": "sceneId",
                "propertyKeyName": "5",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": true,
                  "label": "Associated Scene ID (5)",
                  "min": 0,
                  "max": 255
                },
                "value": 0
              },
              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "dimmingDuration",
                "propertyKey": 5,
                "propertyName": "dimmingDuration",
                "propertyKeyName": "5",
                "ccVersion": 0,
                "metadata": {
                  "type": "duration",
                  "readable": true,
                  "writeable": true,
                  "label": "Dimming duration (5)"
                },
                "value": {
                  "value": 0,
                  "unit": "seconds"
                }
              },
              {
                "endpoint": 0,
                "commandClass": 43,
                "commandClassName": "Scene Activation",
                "property": "sceneId",
                "propertyName": "sceneId",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": true,
                  "label": "Scene ID",
                  "min": 1,
                  "max": 255
                }
              },
              {
                "endpoint": 0,
                "commandClass": 43,
                "commandClassName": "Scene Activation",
                "property": "dimmingDuration",
                "propertyName": "dimmingDuration",
                "ccVersion": 0,
                "metadata": {
                  "type": "any",
                  "readable": true,
                  "writeable": true,
                  "label": "Dimming duration"
                }
              },
              {
                "endpoint": 0,
                "commandClass": 134,
                "commandClassName": "Version",
                "property": "libraryType",
                "propertyName": "libraryType",
                "ccVersion": 0,
                "metadata": {
                  "type": "any",
                  "readable": true,
                  "writeable": false,
                  "label": "Library type"
                },
                "value": 1
              },
              {
                "endpoint": 0,
                "commandClass": 134,
                "commandClassName": "Version",
                "property": "protocolVersion",
                "propertyName": "protocolVersion",
                "ccVersion": 0,
                "metadata": {
                  "type": "any",
                  "readable": true,
                  "writeable": false,
                  "label": "Z-Wave protocol version"
                },
                "value": "2.78"
              },
              {
                "endpoint": 0,
                "commandClass": 134,
                "commandClassName": "Version",
                "property": "firmwareVersions",
                "propertyName": "firmwareVersions",
                "ccVersion": 0,
                "metadata": {
                  "type": "any",
                  "readable": true,
                  "writeable": false,
                  "label": "Z-Wave chip firmware versions"
                },
                "value": [
                  "2.5"
                ]
              }
            ],
            "isFrequentListening": false,
            "maxDataRate": 40000,
            "supportedDataRates": [
              40000
            ],
            "protocolVersion": 2,
            "supportsBeaming": true,
            "supportsSecurity": false,
            "nodeType": 0,
            "deviceClass": {
              "basic": {
                "key": 2,
                "label": "Static Controller"
              },
              "generic": {
                "key": 2,
                "label": "Static Controller"
              },
              "specific": {
                "key": 2,
                "label": "Scene Controller"
              },
              "mandatorySupportedCCs": [
                133,
                32,
                114,
                45
              ],
              "mandatoryControlledCCs": [
                32,
                43
              ]
            },
            "commandClasses": [
              {
                "id": 133,
                "name": "Association",
                "version": 1,
                "isSecure": false
              },
              {
                "id": 32,
                "name": "Basic",
                "version": 1,
                "isSecure": false
              },
              {
                "id": 114,
                "name": "Manufacturer Specific",
                "version": 1,
                "isSecure": false
              },
              {
                "id": 45,
                "name": "Scene Controller Configuration",
                "version": 1,
                "isSecure": false
              },
              {
                "id": 135,
                "name": "Indicator",
                "version": 1,
                "isSecure": false
              },
              {
                "id": 119,
                "name": "Node Naming and Location",
                "version": 1,
                "isSecure": false
              },
              {
                "id": 134,
                "name": "Version",
                "version": 1,
                "isSecure": false
              },
              {
                "id": 112,
                "name": "Configuration",
                "version": 1,
                "isSecure": false
              }
            ]
          }
probot-home-assistant[bot] commented 3 years ago

Hey there @home-assistant/z-wave, mind taking a look at this issue as its been labeled with an integration (zwave_js) you are listed as a codeowner for? Thanks! (message by CodeOwnersMention)

raman325 commented 3 years ago

https://www.home-assistant.io/integrations/zwave_js/#scene-events-value-notification

raman325 commented 3 years ago

We don't create an entity for LEDs (I'm assuming this is a Configuration CC thing), and even if we did, I can't find any values related to LEDs in the above dump. If you resolve that issue (another upstream one), you can go into the device and click on configure device - you should have the ability to change the LED preferences there. Alternatively, if this is something you want to automate, use the zwave_js.set_config_parameter service (https://www.home-assistant.io/integrations/zwave_js/#service-zwave_jsset_config_parameter)

raman325 commented 3 years ago

BTW before you report an issue upstream for this one, you may want to try a reinterview to see if the values for controlling the LED come in

rogersmj commented 3 years ago

https://www.home-assistant.io/integrations/zwave_js/#scene-events-value-notification

Thanks, I just checked this, listening to that event yields nothing when buttons are pressed on the Eaton device (I do use that for events from my Inovelli switches and those get picked up fine). Just for good measure I tried listening for zwave_js_notification events while pressing buttons too, no events detected there either.

Which is strange because on the tracking page for Z-Wave JS implementation of events, all the scene-related events are marked as done:

https://github.com/zwave-js/node-zwave-js/issues/6

rogersmj commented 3 years ago

you may want to try a reinterview to see if the values for controlling the LED come in

How do I do this? I was looking through the UI and the docs, and I don't see a function/service for a node refresh or reinterview, I must be missing it.

raman325 commented 3 years ago

if you are using the official addon, there's no good way to do it. You could use the zwavejs2mqtt addon to do it as it provides its own UI with additional capabilities that haven't been built out in HA yet

kpine commented 3 years ago

I think this device needs some manual configuration in order for scene commands to be activated. Basically you need to configure the association groups and scene values. See this post for reference: https://community.openhab.org/t/tutorial-cooper-rfwc5-scene-controller-with-openhab2/31731.

It's easiest to do this with the zwavejs2mqtt control panel, but the set_value service would also work. Currently the scene commands are disabled:

              {
                "endpoint": 0,
                "commandClass": 45,
                "commandClassName": "Scene Controller Configuration",
                "property": "sceneId",
                "propertyKey": 1,
                "propertyName": "sceneId",
                "propertyKeyName": "1",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": true,
                  "label": "Associated Scene ID (1)",
                  "min": 0,
                  "max": 255
                },
                "value": 0
              },

The "value": 0 means disabled, it should be something like "value": 1, with each having a unique scene id value. Then associate the controller with groups 1-5.

rogersmj commented 3 years ago

@kpine I appreciate that, reading that other thread may have gotten me a little bit further.

At this point I have configured scene ID properties for each button and I am at least getting events when I press the buttons on the keypad. Before, I wasn't getting any events at all.

However, the numbers I'm getting in the events don't make any sense, and the sensor entity in HA still isn't reflecting the LED indicator status.

In ZwaveJS2mqtt (had to get that up and running), once I set "Associated Scene ID" values for 1-5, I started seeing events come through on zwave_js_value_notification when the physical buttons were pressed. However the numbers don't make sense. Here's the config (from ZwaveJS2mqtt node config):

image

Here's the events when I pressed two of the buttons: image

Meanwhile, even though the LED on each button is lighting up, the entity in HA that I thought was the LED indicator value never changes state:

image

kpine commented 3 years ago

You should look at the node-zwave-js debug logs at this point. Using Scene Controller Configuration CC is supposed to setup scenes for the Scene Activation Set Command. You should not be getting Central Scene notifications. If you are, that's some weirdness with the device or node-zwave-js. Otherwise, the scene IDs are represented by the property keys, so that looks OK. I can't really comment on the button to scene ID mapping. What happens if you use other values like 251-255?

For the LEDs, have you tried refreshing the values? It looks like the device does not update the state of the LEDs automatically. Based on this discussion, you either need to manually refresh the indicator values upon receiving a Basic Set command via some HA automation, or convince the node-zwave-js project to automatically refresh the values like they do for locks.

github-actions[bot] commented 3 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.