zwave-js / node-zwave-js

Z-Wave driver written entirely in JavaScript/TypeScript
https://zwave-js.github.io/node-zwave-js/
MIT License
750 stars 601 forks source link

Inconsistency between Ring Alarm EU & NA models #4710

Open p6sfrx725z28knfy opened 2 years ago

p6sfrx725z28knfy commented 2 years ago

Is your problem within Home Assistant (Core or Z-Wave JS Integration)?

NO, my problem is NOT within Home Assistant or the ZWave JS integration

Is your problem within ZWaveJS2MQTT?

NO, my problem is NOT within ZWaveJS2MQTT

Checklist

Describe the bug

I noticed some entries for Ring Alarm components have multiple Product ID's listed under a single model:

https://devices.zwave-js.io/?jumpTo=0x0346:0x0201:0x0301:0.0

4SD2SZ-0EN0 Ring / Contact Sensor Gen2 Firmware Range: All Versions Product Manufacturer: 0x0346 Product Identifiers: 0x0201:0x0301, 0x0201:0x0401

With 0x0301 being the North American version and 0x0401 operating on European Z-Wave frequencies; however while both have the manufacturer SKU of 4SD2SZ, only the North American model has the -0EN0 suffice while the European model has the suffice -0EU0

I assume both work identically other than using difference Z-wave frequencies, and I see other Ring Alarm components listed without the regional suffix to their Product Code..

https://devices.zwave-js.io/?jumpTo=0x0346:0x0301:0x0301:0.0

4SP1SZ Ring / Motion Sensor Gen2 Firmware Range: All Versions Product Manufacturer: 0x0346 Product Identifiers: 0x0301:0x0301, 0x0301:0x0401

https://devices.zwave-js.io/?jumpTo=0x0346:0x0101:0x0301:0.0

4AK1SZ Ring / Keypad v2 Firmware Range: All Versions Product Manufacturer: 0x0346 Product Identifiers: 0x0101:0x0301, 0x0101:0x0401

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

Yet some have just the North American Product Identifies, with no entry for the European versions:

https://devices.zwave-js.io/?jumpTo=0x0346:0x0c01:0x0301:0.0

B0923BK77S Ring / Outdoor Contact Sensor Firmware Range: All Versions Product Manufacturer: 0x0346 Product Identifiers: 0x0c01:0x0301

https://devices.zwave-js.io/?jumpTo=0x0346:0x0401:0x0301:0.0

4AR1SZ-0EN0 Ring / Range Extender (2nd generation) Firmware Range: All Versions Product Manufacturer: 0x0346 Product Identifiers: 0x0401:0x0301

Would it make sense to have a consistent approach here, for example dropping the regional suffixes from the Product Name and listing both European & North American version under a single entity (with multiple Product Identifiers)?

Thanks :)

Device information

Manufacturer: Model name: Node ID in your network:

How are you using node-zwave-js?

Which branches or versions?

version: node-zwave-js branch: zwavejs2mqtt branch:

Did you change anything?

no

If yes, what did you change?

No response

Did this work before?

Don't know, this is a new device

If yes, where did it work?

No response

Attach Driver Logfile

``

p6sfrx725z28knfy commented 2 years ago

Ring Outdoor Contact - EU Version

  "hexId": "0x0346-0x0c01-0x0401",
  "dbLink": "https://devices.zwave-js.io/?jumpTo=0x0346:0x0c01:0x0401:1.24",
  "manufacturerId": 838,
  "productId": 1025,
  "productType": 3073,
  "productLabel": "Unknown product 0x0401",
  "productDescription": "0x0c01",
  "manufacturer": "Ring",
  "firmwareVersion": "1.24",
  "sdkVersion": "7.15.4",
  "protocolVersion": 3,
  "zwavePlusVersion": 2,
  "zwavePlusNodeType": 0,
  "zwavePlusRoleType": 6,
  "nodeType": 1,
  "endpointsCount": 0,
  "endpointIndizes": [],
  "isSecure": true,
  "security": "S2_Authenticated",
  "supportsSecurity": false,
  "supportsBeaming": true,
  "isControllerNode": false,
  "isListening": false,
  "isFrequentListening": false,
  "isRouting": true,
  "keepAwake": false,
  "maxDataRate": 100000,
  "deviceClass": {
    "basic": 4,
    "generic": 7,
    "specific": 1
  },
  "deviceId": "
p6sfrx725z28knfy commented 2 years ago

Ring Range Extender Gen2 - EU Version

  "hexId": "0x0346-0x0401-0x0401",
  "dbLink": "https://devices.zwave-js.io/?jumpTo=0x0346:0x0401:0x0401:1.13",
  "manufacturerId": 838,
  "productId": 1025,
  "productType": 1025,
  "productLabel": "Unknown product 0x0401",
  "productDescription": "0x0401",
  "manufacturer": "Ring",
  "firmwareVersion": "1.13",
  "sdkVersion": "7.12.3",
  "protocolVersion": 3,
  "zwavePlusVersion": 2,
  "zwavePlusNodeType": 0,
  "zwavePlusRoleType": 5,
  "nodeType": 1,
  "endpointsCount": 0,
  "endpointIndizes": [],
  "isSecure": true,
  "security": "S2_Authenticated",
  "supportsSecurity": false,
  "supportsBeaming": true,
  "isControllerNode": false,
  "isListening": true,
  "isFrequentListening": false,
  "isRouting": true,
  "keepAwake": false,
  "maxDataRate": 100000,
  "deviceClass": {
    "basic": 4,
    "generic": 15,
    "specific": 1
  },
p6sfrx725z28knfy commented 2 years ago

With firmware update functionality being added it would seem useful to be able to at least correctly identify these modules :)

AlCalzone commented 2 years ago

Would it make sense to have a consistent approach here, for example dropping the regional suffixes from the Product Name and listing both European & North American version under a single entity (with multiple Product Identifiers)?

I agree. Would you be willing to provide a PR?

The firmware update functionality isn't problematic as this will rely on the numeric identifiers returned by the devices.

zwave-js-assistant[bot] commented 2 years ago

Because of the large amount of Z-Wave devices, we cannot write all configuration files ourselves. Help from the community is required, so we can focus our time on improving Z-Wave JS itself. 🙏🏻

This issue has been labeled "Help wanted", meaning we kindly ask anyone who wants to help out for support. Here are a few resources to get you started - don't hesitate to ask if you are having problems:

We may get around to doing it ourselves at some point, but community support will speed up this process immensely.

Thanks!

p6sfrx725z28knfy commented 2 years ago

Sorry I havent had a chance to read up on what I might have to learn to update the configuration files, but if you need any output from these devices please let me know :)