Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve labels for endpoint features #42

Open
marcelveldt opened this issue Jul 4, 2024 · 2 comments
Open

Improve labels for endpoint features #42

marcelveldt opened this issue Jul 4, 2024 · 2 comments
Assignees
Labels
backend This bug or request (primary) involves the Home Assistant backend/integration (and its dependencies) integration: zwave_js zwave-certification Required for Z-Wave certification

Comments

@marcelveldt
Copy link
Collaborator

The certification tests for Multi Channel CC refers to specific functionality on specific endpoints

12:30:38.151 -----------------------------------------------------------------------
             Please refer to the DUT's UI and confirm if control of:
                 * Binary Switch     on End Point 1
                 * Meter             on End Point 2
                 * Meter             on End Point 3
                 --- End Point 4 does not exist! ---
                 * Binary Switch     on End Point 5
                 --- End Point 6 does not exist! ---
                 * Multilevel Switch on End Point 7
             is provided!

Likewise, device manuals are also likely to explain the endpoints and what they mean. However, it is not at all obvious which of these entities belong to which endpoint:

Image

Also that weird name "(5)".

The next step in the certification test might also pose problems for the tester, unless they look at the device diagnostics first:

12:34:24.377 -----------------------------------------------------------------------
12:34:24.378 
12:34:24.378 Checking control of End Point 1
12:34:24.378 
12:34:24.379 Please send to the emulated device’s End Point 1 a 'Binary Switch Set' with Z-Wave value = 255 (0xFF)!
12:34:24.380 
12:34:24.380 *******************************************************************
12:34:24.380    Timeout for Test sequence is 5 min, waiting for following events:
12:34:24.380     * SWITCH_BINARY_SET to End Point 1:
                     * Z-Wave Value = 255 (0xFF)
12:34:24.380 *******************************************************************

Maybe the endpoint index should be part of every label (including the first entity) if the same functionality exists on multiple endpoints, like the binary switches and the meters here.

Device diagnostics:

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2024.1.0.dev20231211",
    "dev": true,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.6",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.1.63-haos-raspi",
    "supervisor": "2024.05.2.dev1502",
    "host_os": "Home Assistant OS 11.5",
    "docker_version": "24.0.7",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "zwave_js",
    "name": "Z-Wave",
    "codeowners": [
      "@home-assistant/z-wave"
    ],
    "config_flow": true,
    "dependencies": [
      "http",
      "repairs",
      "usb",
      "websocket_api"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zwave_js",
    "integration_type": "hub",
    "iot_class": "local_push",
    "loggers": [
      "zwave_js_server"
    ],
    "quality_scale": "platinum",
    "requirements": [
      "pyserial==3.5",
      "zwave-js-server-python==0.54.0"
    ],
    "usb": [
      {
        "vid": "0658",
        "pid": "0200",
        "known_devices": [
          "Aeotec Z-Stick Gen5+",
          "Z-WaveMe UZB"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*z-wave*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      }
    ],
    "zeroconf": [
      "_zwave-js-server._tcp.local."
    ],
    "is_built_in": true
  },
  "data": {
    "versionInfo": {
      "driverVersion": "12.8.1",
      "serverVersion": "1.35.0",
      "minSchemaVersion": 0,
      "maxSchemaVersion": 35
    },
    "entities": [
      {
        "domain": "switch",
        "entity_id": "switch.node_40",
        "original_name": "",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 0,
        "unit_of_measurement": null,
        "value_id": "40-37-1-currentValue",
        "primary_value": {
          "command_class": 37,
          "command_class_name": "Binary Switch",
          "endpoint": 1,
          "property": "currentValue",
          "property_name": "currentValue",
          "property_key": null,
          "property_key_name": null
        }
      },
      {
        "domain": "sensor",
        "entity_id": "sensor.node_40_electric_consumption_kwh",
        "original_name": "Electric Consumption [kWh]",
        "original_device_class": "energy",
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 0,
        "unit_of_measurement": "kWh",
        "value_id": "40-50-2-value-65537",
        "primary_value": {
          "command_class": 50,
          "command_class_name": "Meter",
          "endpoint": 2,
          "property": "value",
          "property_name": "value",
          "property_key": 65537,
          "property_key_name": "Electric_kWh_Consumed"
        }
      },
      {
        "domain": "sensor",
        "entity_id": "sensor.node_40_electric_consumption_kwh_3",
        "original_name": "Electric Consumption [kWh] (3)",
        "original_device_class": "energy",
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 0,
        "unit_of_measurement": "kWh",
        "value_id": "40-50-3-value-65537",
        "primary_value": {
          "command_class": 50,
          "command_class_name": "Meter",
          "endpoint": 3,
          "property": "value",
          "property_name": "value",
          "property_key": 65537,
          "property_key_name": "Electric_kWh_Consumed"
        }
      },
      {
        "domain": "switch",
        "entity_id": "switch.node_40_5",
        "original_name": "(5)",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 0,
        "unit_of_measurement": null,
        "value_id": "40-37-5-currentValue",
        "primary_value": {
          "command_class": 37,
          "command_class_name": "Binary Switch",
          "endpoint": 5,
          "property": "currentValue",
          "property_name": "currentValue",
          "property_key": null,
          "property_key_name": null
        }
      },
      {
        "domain": "light",
        "entity_id": "light.node_40",
        "original_name": "",
        "original_device_class": null,
        "disabled": false,
        "disabled_by": null,
        "hidden_by": null,
        "original_icon": null,
        "entity_category": null,
        "supported_features": 32,
        "unit_of_measurement": null,
        "value_id": "40-38-7-currentValue",
        "primary_value": {
          "command_class": 38,
          "command_class_name": "Multilevel Switch",
          "endpoint": 7,
          "property": "currentValue",
          "property_name": "currentValue",
          "property_key": null,
          "property_key_name": null
        }
      }
    ],
    "state": {
      "nodeId": 40,
      "index": 0,
      "installerIcon": 1792,
      "userIcon": 1792,
      "status": 4,
      "ready": true,
      "isListening": true,
      "isRouting": true,
      "isSecure": true,
      "firmwareVersion": "1.3.0",
      "zwavePlusVersion": 2,
      "endpointCountIsDynamic": true,
      "endpointsHaveIdenticalCapabilities": false,
      "individualEndpointCount": 5,
      "aggregatedEndpointCount": 0,
      "interviewAttempts": 1,
      "isFrequentListening": false,
      "maxDataRate": 100000,
      "supportedDataRates": [
        40000,
        100000
      ],
      "protocolVersion": 3,
      "supportsBeaming": true,
      "supportsSecurity": false,
      "nodeType": 1,
      "zwavePlusNodeType": 0,
      "zwavePlusRoleType": 5,
      "deviceClass": {
        "basic": {
          "key": 4,
          "label": "Routing Slave"
        },
        "generic": {
          "key": 16,
          "label": "Binary Switch"
        },
        "specific": {
          "key": 0,
          "label": "Unused"
        },
        "mandatorySupportedCCs": [],
        "mandatoryControlledCCs": []
      },
      "interviewStage": "Complete",
      "statistics": {
        "commandsTX": 153,
        "commandsRX": 150,
        "commandsDroppedRX": 0,
        "commandsDroppedTX": 0,
        "timeoutResponse": 2,
        "rtt": 23.2,
        "lastSeen": "2024-05-16T10:30:26.279Z",
        "rssi": -73,
        "lwr": {
          "protocolDataRate": 3,
          "repeaters": [],
          "rssi": -73,
          "repeaterRSSI": []
        }
      },
      "highestSecurityClass": 0,
      "isControllerNode": false,
      "keepAwake": false,
      "lastSeen": "2024-05-16T10:30:26.279Z",
      "values": {
        "40-114-0-manufacturerId": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "manufacturerId",
          "propertyName": "manufacturerId",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Manufacturer ID",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          }
        },
        "40-114-0-productType": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "productType",
          "propertyName": "productType",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Product type",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          }
        },
        "40-114-0-productId": {
          "endpoint": 0,
          "commandClass": 114,
          "commandClassName": "Manufacturer Specific",
          "property": "productId",
          "propertyName": "productId",
          "ccVersion": 2,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Product ID",
            "min": 0,
            "max": 65535,
            "stateful": true,
            "secret": false
          }
        },
        "40-134-0-libraryType": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "libraryType",
          "propertyName": "libraryType",
          "ccVersion": 3,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Library type",
            "states": {
              "0": "Unknown",
              "1": "Static Controller",
              "2": "Controller",
              "3": "Enhanced Slave",
              "4": "Slave",
              "5": "Installer",
              "6": "Routing Slave",
              "7": "Bridge Controller",
              "8": "Device under Test",
              "9": "N/A",
              "10": "AV Remote",
              "11": "AV Device"
            },
            "stateful": true,
            "secret": false
          },
          "value": 3
        },
        "40-134-0-protocolVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "protocolVersion",
          "propertyName": "protocolVersion",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave protocol version",
            "stateful": true,
            "secret": false
          },
          "value": "6.81"
        },
        "40-134-0-firmwareVersions": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "firmwareVersions",
          "propertyName": "firmwareVersions",
          "ccVersion": 3,
          "metadata": {
            "type": "string[]",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave chip firmware versions",
            "stateful": true,
            "secret": false
          },
          "value": [
            "1.3"
          ]
        },
        "40-134-0-hardwareVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "hardwareVersion",
          "propertyName": "hardwareVersion",
          "ccVersion": 3,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave chip hardware version",
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "40-134-0-sdkVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "sdkVersion",
          "propertyName": "sdkVersion",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "SDK version",
            "stateful": true,
            "secret": false
          },
          "value": "7.0.0"
        },
        "40-134-0-applicationFrameworkAPIVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "applicationFrameworkAPIVersion",
          "propertyName": "applicationFrameworkAPIVersion",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave application framework API version",
            "stateful": true,
            "secret": false
          },
          "value": "unused"
        },
        "40-134-0-applicationFrameworkBuildNumber": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "applicationFrameworkBuildNumber",
          "propertyName": "applicationFrameworkBuildNumber",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave application framework API build number",
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "40-134-0-hostInterfaceVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "hostInterfaceVersion",
          "propertyName": "hostInterfaceVersion",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Serial API version",
            "stateful": true,
            "secret": false
          },
          "value": "unused"
        },
        "40-134-0-hostInterfaceBuildNumber": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "hostInterfaceBuildNumber",
          "propertyName": "hostInterfaceBuildNumber",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Serial API build number",
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "40-134-0-zWaveProtocolVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "zWaveProtocolVersion",
          "propertyName": "zWaveProtocolVersion",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave protocol version",
            "stateful": true,
            "secret": false
          },
          "value": "6.81.0"
        },
        "40-134-0-zWaveProtocolBuildNumber": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "zWaveProtocolBuildNumber",
          "propertyName": "zWaveProtocolBuildNumber",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Z-Wave protocol build number",
            "stateful": true,
            "secret": false
          },
          "value": 255
        },
        "40-134-0-applicationVersion": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "applicationVersion",
          "propertyName": "applicationVersion",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Application version",
            "stateful": true,
            "secret": false
          },
          "value": "1.3.0"
        },
        "40-134-0-applicationBuildNumber": {
          "endpoint": 0,
          "commandClass": 134,
          "commandClassName": "Version",
          "property": "applicationBuildNumber",
          "propertyName": "applicationBuildNumber",
          "ccVersion": 3,
          "metadata": {
            "type": "string",
            "readable": true,
            "writeable": false,
            "label": "Application build number",
            "stateful": true,
            "secret": false
          },
          "value": 255
        },
        "40-37-1-currentValue": {
          "endpoint": 1,
          "commandClass": 37,
          "commandClassName": "Binary Switch",
          "property": "currentValue",
          "propertyName": "currentValue",
          "ccVersion": 2,
          "metadata": {
            "type": "boolean",
            "readable": true,
            "writeable": false,
            "label": "Current value",
            "stateful": true,
            "secret": false
          },
          "value": false
        },
        "40-37-1-targetValue": {
          "endpoint": 1,
          "commandClass": 37,
          "commandClassName": "Binary Switch",
          "property": "targetValue",
          "propertyName": "targetValue",
          "ccVersion": 2,
          "metadata": {
            "type": "boolean",
            "readable": true,
            "writeable": true,
            "label": "Target value",
            "valueChangeOptions": [
              "transitionDuration"
            ],
            "stateful": true,
            "secret": false
          },
          "value": false
        },
        "40-37-1-duration": {
          "endpoint": 1,
          "commandClass": 37,
          "commandClassName": "Binary Switch",
          "property": "duration",
          "propertyName": "duration",
          "ccVersion": 2,
          "metadata": {
            "type": "duration",
            "readable": true,
            "writeable": false,
            "label": "Remaining duration",
            "stateful": true,
            "secret": false
          },
          "value": {
            "value": 0,
            "unit": "seconds"
          }
        },
        "40-50-2-value-65537": {
          "endpoint": 2,
          "commandClass": 50,
          "commandClassName": "Meter",
          "property": "value",
          "propertyKey": 65537,
          "propertyName": "value",
          "propertyKeyName": "Electric_kWh_Consumed",
          "ccVersion": 4,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Electric Consumption [kWh]",
            "ccSpecific": {
              "meterType": 1,
              "scale": 0,
              "rateType": 1
            },
            "unit": "kWh",
            "stateful": true,
            "secret": false
          },
          "value": 20
        },
        "40-50-2-reset": {
          "endpoint": 2,
          "commandClass": 50,
          "commandClassName": "Meter",
          "property": "reset",
          "propertyName": "reset",
          "ccVersion": 4,
          "metadata": {
            "type": "boolean",
            "readable": false,
            "writeable": true,
            "label": "Reset accumulated values",
            "states": {
              "true": "Reset"
            },
            "stateful": true,
            "secret": false
          }
        },
        "40-50-3-value-65537": {
          "endpoint": 3,
          "commandClass": 50,
          "commandClassName": "Meter",
          "property": "value",
          "propertyKey": 65537,
          "propertyName": "value",
          "propertyKeyName": "Electric_kWh_Consumed",
          "ccVersion": 4,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Electric Consumption [kWh]",
            "ccSpecific": {
              "meterType": 1,
              "scale": 0,
              "rateType": 1
            },
            "unit": "kWh",
            "stateful": true,
            "secret": false
          },
          "value": 30
        },
        "40-50-3-reset": {
          "endpoint": 3,
          "commandClass": 50,
          "commandClassName": "Meter",
          "property": "reset",
          "propertyName": "reset",
          "ccVersion": 4,
          "metadata": {
            "type": "boolean",
            "readable": false,
            "writeable": true,
            "label": "Reset accumulated values",
            "states": {
              "true": "Reset"
            },
            "stateful": true,
            "secret": false
          }
        },
        "40-37-5-currentValue": {
          "endpoint": 5,
          "commandClass": 37,
          "commandClassName": "Binary Switch",
          "property": "currentValue",
          "propertyName": "currentValue",
          "ccVersion": 2,
          "metadata": {
            "type": "boolean",
            "readable": true,
            "writeable": false,
            "label": "Current value",
            "stateful": true,
            "secret": false
          },
          "value": false
        },
        "40-37-5-targetValue": {
          "endpoint": 5,
          "commandClass": 37,
          "commandClassName": "Binary Switch",
          "property": "targetValue",
          "propertyName": "targetValue",
          "ccVersion": 2,
          "metadata": {
            "type": "boolean",
            "readable": true,
            "writeable": true,
            "label": "Target value",
            "valueChangeOptions": [
              "transitionDuration"
            ],
            "stateful": true,
            "secret": false
          },
          "value": false
        },
        "40-37-5-duration": {
          "endpoint": 5,
          "commandClass": 37,
          "commandClassName": "Binary Switch",
          "property": "duration",
          "propertyName": "duration",
          "ccVersion": 2,
          "metadata": {
            "type": "duration",
            "readable": true,
            "writeable": false,
            "label": "Remaining duration",
            "stateful": true,
            "secret": false
          },
          "value": {
            "value": 0,
            "unit": "seconds"
          }
        },
        "40-38-7-targetValue": {
          "endpoint": 7,
          "commandClass": 38,
          "commandClassName": "Multilevel Switch",
          "property": "targetValue",
          "propertyName": "targetValue",
          "ccVersion": 4,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": true,
            "label": "Target value",
            "valueChangeOptions": [
              "transitionDuration"
            ],
            "min": 0,
            "max": 99,
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "40-38-7-duration": {
          "endpoint": 7,
          "commandClass": 38,
          "commandClassName": "Multilevel Switch",
          "property": "duration",
          "propertyName": "duration",
          "ccVersion": 4,
          "metadata": {
            "type": "duration",
            "readable": true,
            "writeable": false,
            "label": "Remaining duration",
            "stateful": true,
            "secret": false
          },
          "value": {
            "value": 0,
            "unit": "seconds"
          }
        },
        "40-38-7-currentValue": {
          "endpoint": 7,
          "commandClass": 38,
          "commandClassName": "Multilevel Switch",
          "property": "currentValue",
          "propertyName": "currentValue",
          "ccVersion": 4,
          "metadata": {
            "type": "number",
            "readable": true,
            "writeable": false,
            "label": "Current value",
            "min": 0,
            "max": 99,
            "stateful": true,
            "secret": false
          },
          "value": 0
        },
        "40-38-7-Up": {
          "endpoint": 7,
          "commandClass": 38,
          "commandClassName": "Multilevel Switch",
          "property": "Up",
          "propertyName": "Up",
          "ccVersion": 4,
          "metadata": {
            "type": "boolean",
            "readable": false,
            "writeable": true,
            "label": "Perform a level change (Up)",
            "ccSpecific": {
              "switchType": 2
            },
            "valueChangeOptions": [
              "transitionDuration"
            ],
            "states": {
              "true": "Start",
              "false": "Stop"
            },
            "stateful": true,
            "secret": false
          }
        },
        "40-38-7-Down": {
          "endpoint": 7,
          "commandClass": 38,
          "commandClassName": "Multilevel Switch",
          "property": "Down",
          "propertyName": "Down",
          "ccVersion": 4,
          "metadata": {
            "type": "boolean",
            "readable": false,
            "writeable": true,
            "label": "Perform a level change (Down)",
            "ccSpecific": {
              "switchType": 2
            },
            "valueChangeOptions": [
              "transitionDuration"
            ],
            "states": {
              "true": "Start",
              "false": "Stop"
            },
            "stateful": true,
            "secret": false
          }
        },
        "40-38-7-restorePrevious": {
          "endpoint": 7,
          "commandClass": 38,
          "commandClassName": "Multilevel Switch",
          "property": "restorePrevious",
          "propertyName": "restorePrevious",
          "ccVersion": 4,
          "metadata": {
            "type": "boolean",
            "readable": false,
            "writeable": true,
            "label": "Restore previous value",
            "states": {
              "true": "Restore"
            },
            "stateful": true,
            "secret": false
          }
        }
      },
      "endpoints": {
        "0": {
          "nodeId": 40,
          "index": 0,
          "installerIcon": 1792,
          "userIcon": 1792,
          "deviceClass": {
            "basic": {
              "key": 4,
              "label": "Routing Slave"
            },
            "generic": {
              "key": 16,
              "label": "Binary Switch"
            },
            "specific": {
              "key": 0,
              "label": "Unused"
            },
            "mandatorySupportedCCs": [],
            "mandatoryControlledCCs": []
          },
          "commandClasses": [
            {
              "id": 94,
              "name": "Z-Wave Plus Info",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 159,
              "name": "Security 2",
              "version": 1,
              "isSecure": true
            },
            {
              "id": 96,
              "name": "Multi Channel",
              "version": 4,
              "isSecure": true
            },
            {
              "id": 108,
              "name": "Supervision",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 85,
              "name": "Transport Service",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 134,
              "name": "Version",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 133,
              "name": "Association",
              "version": 2,
              "isSecure": true
            },
            {
              "id": 89,
              "name": "Association Group Information",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 142,
              "name": "Multi Channel Association",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 90,
              "name": "Device Reset Locally",
              "version": 1,
              "isSecure": true
            },
            {
              "id": 114,
              "name": "Manufacturer Specific",
              "version": 2,
              "isSecure": true
            },
            {
              "id": 37,
              "name": "Binary Switch",
              "version": 2,
              "isSecure": true
            }
          ]
        },
        "1": {
          "nodeId": 40,
          "index": 1,
          "installerIcon": 1792,
          "userIcon": 1792,
          "deviceClass": {
            "basic": {
              "key": 4,
              "label": "Routing Slave"
            },
            "generic": {
              "key": 16,
              "label": "Binary Switch"
            },
            "specific": {
              "key": 0,
              "label": "Unused"
            },
            "mandatorySupportedCCs": [],
            "mandatoryControlledCCs": []
          },
          "commandClasses": [
            {
              "id": 94,
              "name": "Z-Wave Plus Info",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 159,
              "name": "Security 2",
              "version": 1,
              "isSecure": true
            },
            {
              "id": 108,
              "name": "Supervision",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 133,
              "name": "Association",
              "version": 2,
              "isSecure": true
            },
            {
              "id": 89,
              "name": "Association Group Information",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 142,
              "name": "Multi Channel Association",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 37,
              "name": "Binary Switch",
              "version": 2,
              "isSecure": true
            }
          ]
        },
        "2": {
          "nodeId": 40,
          "index": 2,
          "installerIcon": 1792,
          "userIcon": 1792,
          "deviceClass": {
            "basic": {
              "key": 4,
              "label": "Routing Slave"
            },
            "generic": {
              "key": 49,
              "label": "Meter"
            },
            "specific": {
              "key": 0,
              "label": "Unused"
            },
            "mandatorySupportedCCs": [],
            "mandatoryControlledCCs": []
          },
          "commandClasses": [
            {
              "id": 94,
              "name": "Z-Wave Plus Info",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 159,
              "name": "Security 2",
              "version": 1,
              "isSecure": true
            },
            {
              "id": 108,
              "name": "Supervision",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 133,
              "name": "Association",
              "version": 2,
              "isSecure": true
            },
            {
              "id": 89,
              "name": "Association Group Information",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 142,
              "name": "Multi Channel Association",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 50,
              "name": "Meter",
              "version": 4,
              "isSecure": true
            }
          ]
        },
        "3": {
          "nodeId": 40,
          "index": 3,
          "installerIcon": 1792,
          "userIcon": 1792,
          "deviceClass": {
            "basic": {
              "key": 4,
              "label": "Routing Slave"
            },
            "generic": {
              "key": 49,
              "label": "Meter"
            },
            "specific": {
              "key": 0,
              "label": "Unused"
            },
            "mandatorySupportedCCs": [],
            "mandatoryControlledCCs": []
          },
          "commandClasses": [
            {
              "id": 94,
              "name": "Z-Wave Plus Info",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 159,
              "name": "Security 2",
              "version": 1,
              "isSecure": true
            },
            {
              "id": 108,
              "name": "Supervision",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 133,
              "name": "Association",
              "version": 2,
              "isSecure": true
            },
            {
              "id": 89,
              "name": "Association Group Information",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 142,
              "name": "Multi Channel Association",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 50,
              "name": "Meter",
              "version": 4,
              "isSecure": true
            }
          ]
        },
        "5": {
          "nodeId": 40,
          "index": 5,
          "installerIcon": 1792,
          "userIcon": 1792,
          "deviceClass": {
            "basic": {
              "key": 4,
              "label": "Routing Slave"
            },
            "generic": {
              "key": 16,
              "label": "Binary Switch"
            },
            "specific": {
              "key": 0,
              "label": "Unused"
            },
            "mandatorySupportedCCs": [],
            "mandatoryControlledCCs": []
          },
          "commandClasses": [
            {
              "id": 94,
              "name": "Z-Wave Plus Info",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 159,
              "name": "Security 2",
              "version": 1,
              "isSecure": true
            },
            {
              "id": 108,
              "name": "Supervision",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 133,
              "name": "Association",
              "version": 2,
              "isSecure": true
            },
            {
              "id": 89,
              "name": "Association Group Information",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 142,
              "name": "Multi Channel Association",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 37,
              "name": "Binary Switch",
              "version": 2,
              "isSecure": true
            }
          ]
        },
        "7": {
          "nodeId": 40,
          "index": 7,
          "installerIcon": 1792,
          "userIcon": 1792,
          "deviceClass": {
            "basic": {
              "key": 4,
              "label": "Routing Slave"
            },
            "generic": {
              "key": 17,
              "label": "Multilevel Switch"
            },
            "specific": {
              "key": 0,
              "label": "Unused"
            },
            "mandatorySupportedCCs": [],
            "mandatoryControlledCCs": []
          },
          "commandClasses": [
            {
              "id": 94,
              "name": "Z-Wave Plus Info",
              "version": 2,
              "isSecure": false
            },
            {
              "id": 159,
              "name": "Security 2",
              "version": 1,
              "isSecure": true
            },
            {
              "id": 108,
              "name": "Supervision",
              "version": 1,
              "isSecure": false
            },
            {
              "id": 133,
              "name": "Association",
              "version": 2,
              "isSecure": true
            },
            {
              "id": 89,
              "name": "Association Group Information",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 142,
              "name": "Multi Channel Association",
              "version": 3,
              "isSecure": true
            },
            {
              "id": 38,
              "name": "Multilevel Switch",
              "version": 4,
              "isSecure": true
            }
          ]
        }
      }
    }
  }
}

TODO Home Assistant

  • Check the Device page UI - why does it hide the node name here ?
  • Append Endpoint name/id to all controls if node is multi-endpoint, multi control
  • Check EndpointLabel ?
@marcelveldt marcelveldt converted this from a draft issue Jul 4, 2024
@MartinHjelmare MartinHjelmare added the backend This bug or request (primary) involves the Home Assistant backend/integration (and its dependencies) label Sep 2, 2024
@AlCalzone AlCalzone added the needs-diagnostics Needs device diagnostics to work on this label Sep 2, 2024
@AlCalzone
Copy link
Member

Diagnostics are ini the previous comment, in the code block.

@AlCalzone AlCalzone added zwave-certification Required for Z-Wave certification and removed needs-diagnostics Needs device diagnostics to work on this labels Sep 4, 2024
@marcelveldt
Copy link
Collaborator Author

I've had exactly the same at hand in Matter and there we solved it by simply always appending the endpoint id to the name but only if a value exists multiple times on a node. Its not pretty but at least its consistent.

I'll try implementing it in Z-Wave like that as well

@marcelveldt marcelveldt self-assigned this Oct 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend This bug or request (primary) involves the Home Assistant backend/integration (and its dependencies) integration: zwave_js zwave-certification Required for Z-Wave certification
Projects
Development

No branches or pull requests

3 participants