I have a GE Toggle Switch that is matching to a “GE Enbrighten Z-Wave Plus Smart Switch” which is the wrong device. Basically it matched this:
https://devices.zwave-js.io/?jumpTo=0x0063:0x4952:0x3137:0.0
And it should have matched this:
https://devices.zwave-js.io/?jumpTo=0x0063:0x4952:0x3032:0.0
The second one matches on product id and product type. The first one only matches on product type: 0x4952 or 18770.
My device json looks like this:
{
"nodeId": 5,
"index": 0,
"status": 4,
"ready": true,
"isListening": true,
"isRouting": true,
"isSecure": false,
"manufacturerId": 99,
"productId": 12338,
"productType": 18770,
"firmwareVersion": "3.29",
"name": "",
"location": "",
"deviceConfig": {
"filename": "/usr/src/node_modules/@zwave-js/config/config/devices/0x0063/12722_zw4005.json",
"manufacturer": "GE/Jasco",
"manufacturerId": 99,
"label": "12722 / ZW4005",
"description": "On/Off Relay Switch",
"devices": [{
"productType": 18770,
"productId": 12338
}],
"firmwareVersion": {
"min": "0.0",
"max": "255.255"
},
...
My questions are:
- How does Z-Wave JS do the lookup and matching to the device id?
- Is there a way to override or force this?
The reason this is inconvenient is that I can’t change the LED states specified here:
"endpoint": 0,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 3,
"propertyName": "Night Light",
"ccVersion": 1,
"metadata": {
"type": "number",
"readable": true,
"writeable": true,
"label": "Night Light",
"default": 0,
"min": 0,
"max": 2,
"states": {
"0": "LED on when switch is OFF",
"1": "LED on when switch is ON",
"2": "LED always off"
},
"valueSize": 1,
"format": 1,
"allowManualEntry": false,
"isFromConfig": true
},
"value": 0
}