Version
Build/Run method
zwavejs2mqtt version: 1.0.0-alpha.2
Describe the bug
I am attempting to get my Building 36 T10 thermostat working with Home Assistant and am unable to see the climate entity as a device within z2m.
First, I gather from the docs that devices in the climate Home Assistant domain need to have a configuration provided. I wrote this configuration:
{
"400-1-1": [
{
"type": "climate",
"object_id": "thermostat",
"values": [
"49-1-Air temperature",
"64-0-mode",
"66-0-state",
"67-1-setpoint-1",
"67-1-setpoint-2",
"68-0-mode"
],
"mode_map": {
"off": 0,
"heat": 1,
"cool": 2,
"auto": 3
},
"fan_mode_map": {
"auto_low": 0,
"on_low": 1,
"circulate": 6
},
"setpoint_topic": {
"heat": "67-1-setpoint-1",
"cool": "67-1-setpoint-2"
},
"default_setpoint": "67-1-setpoint-1",
"discovery_payload": {
"min_temp": 50,
"max_temp": 85,
"modes": [
"off",
"heat",
"cool",
"auto"
],
"fan_modes": [
"auto_low",
"on_low",
"circulate"
],
"action_topic": "66-0-state",
"action_template": "{{ value_json.value | lower }}",
"current_temperature_topic": "49-1-Air temperature",
"current_temperature_template": "{{ value_json.value }}",
"fan_mode_state_topic": "68-0-mode",
"fan_mode_command_topic": true,
"mode_state_topic": "64-0-mode",
"mode_command_topic": true,
"temperature_state_template": "{{ value_json.value }}",
"temperature_command_topic": true
}
}
]
}
...and stored it in store/customDevices.json. I didn't find those docs especially clear, but I tried to follow the format and used the data from the OZW database (which I also wrote).
I am able to see the node when zwavejs2mqtt loads:

I am able to see four binary_sensor/sensor devices:

...but the climate device is missing. No amount of refreshing the node, rediscovering the devices, etc. changes that.
Additional context
I do see this error in the Docker console logs (which are the gateway logs, I assume):
2021-01-07 23:55:10.417 INFO ZWAVE: Node 2: value updated: 128-0-level 0 => 0
2021-01-07 23:55:10.418 INFO ZWAVE: Node 2: value updated: 128-0-isLow false => false
2021-01-07 23:55:10.426 INFO ZWAVE: Node 2 is alive
2021-01-07 23:55:10.492 INFO ZWAVE: Node 2: value added 2-49-0-Air temperature => 20.62
2021-01-07 23:55:10.493 INFO ZWAVE: Node 2: value added 2-49-0-Humidity => 29
2021-01-07 23:55:10.494 INFO ZWAVE: Node 2: value added 2-64-0-mode => 1
2021-01-07 23:55:10.494 INFO MQTT: Subscribing to zwavejs2mqtt/+/+/+/+/set
2021-01-07 23:55:10.495 INFO ZWAVE: Node 2: value added 2-64-0-manufacturerData => undefined
2021-01-07 23:55:10.495 INFO ZWAVE: Node 2: value added 2-66-0-state => 8
2021-01-07 23:55:10.496 INFO ZWAVE: Node 2: value added 2-112-0-1 => 0
2021-01-07 23:55:10.496 INFO ZWAVE: Node 2: value added 2-112-0-2 => 2
2021-01-07 23:55:10.496 INFO ZWAVE: Node 2: value added 2-112-0-3 => 2
2021-01-07 23:55:10.497 INFO ZWAVE: Node 2: value added 2-112-0-4 => 1
2021-01-07 23:55:10.497 INFO ZWAVE: Node 2: value added 2-112-0-5 => 704643072
2021-01-07 23:55:10.497 INFO ZWAVE: Node 2: value added 2-112-0-6 => 704644352
2021-01-07 23:55:10.498 INFO ZWAVE: Node 2: value added 2-112-0-7 => 704643072
2021-01-07 23:55:10.498 INFO ZWAVE: Node 2: value added 2-112-0-8 => 10
2021-01-07 23:55:10.498 INFO ZWAVE: Node 2: value added 2-112-0-9 => 10
2021-01-07 23:55:10.499 INFO ZWAVE: Node 2: value added 2-112-0-10 => 704732672
2021-01-07 23:55:10.499 INFO ZWAVE: Node 2: value added 2-112-0-11 => 0
2021-01-07 23:55:10.499 INFO ZWAVE: Node 2: value added 2-112-0-12 => 20
2021-01-07 23:55:10.500 INFO ZWAVE: Node 2: value added 2-112-0-13 => 25
2021-01-07 23:55:10.500 INFO ZWAVE: Node 2: value added 2-112-0-14 => 60
2021-01-07 23:55:10.500 INFO ZWAVE: Node 2: value added 2-112-0-15 => 704886272
2021-01-07 23:55:10.500 INFO ZWAVE: Node 2: value added 2-112-0-16 => 704732672
2021-01-07 23:55:10.501 INFO ZWAVE: Node 2: value added 2-112-0-17 => 704886272
2021-01-07 23:55:10.501 INFO ZWAVE: Node 2: value added 2-112-0-18 => 704771072
2021-01-07 23:55:10.501 INFO ZWAVE: Node 2: value added 2-112-0-19 => 0
2021-01-07 23:55:10.502 INFO ZWAVE: Node 2: value added 2-112-0-20 => 5
2021-01-07 23:55:10.502 INFO ZWAVE: Node 2: value added 2-112-0-21 => 10
2021-01-07 23:55:10.502 INFO ZWAVE: Node 2: value added 2-112-0-22 => 25
2021-01-07 23:55:10.502 INFO ZWAVE: Node 2: value added 2-112-0-23 => 1
2021-01-07 23:55:10.503 INFO ZWAVE: Node 2: value added 2-112-0-24 => 15
2021-01-07 23:55:10.503 INFO ZWAVE: Node 2: value added 2-112-0-25 => 0
2021-01-07 23:55:10.503 INFO ZWAVE: Node 2: value added 2-112-0-26 => 1
2021-01-07 23:55:10.504 INFO ZWAVE: Node 2: value added 2-112-0-27 => 30
2021-01-07 23:55:10.504 INFO ZWAVE: Node 2: value added 2-112-0-28 => 15
2021-01-07 23:55:10.504 INFO ZWAVE: Node 2: value added 2-112-0-30 => 0
2021-01-07 23:55:10.505 INFO ZWAVE: Node 2: value added 2-112-0-31 => 704650752
2021-01-07 23:55:10.505 INFO ZWAVE: Node 2: value added 2-112-0-32 => 704650752
2021-01-07 23:55:10.505 INFO ZWAVE: Node 2: value added 2-112-0-33 => 704645632
2021-01-07 23:55:10.505 INFO ZWAVE: Node 2: value added 2-112-0-34 => 1
2021-01-07 23:55:10.506 INFO ZWAVE: Node 2: value added 2-112-0-35 => 0
2021-01-07 23:55:10.506 INFO ZWAVE: Node 2: value added 2-114-0-manufacturerId => 400
2021-01-07 23:55:10.506 INFO ZWAVE: Node 2: value added 2-114-0-productType => 1
2021-01-07 23:55:10.506 INFO ZWAVE: Node 2: value added 2-114-0-productId => 1
2021-01-07 23:55:10.507 INFO ZWAVE: Node 2: value added 2-128-0-level => 0
2021-01-07 23:55:10.507 INFO ZWAVE: Node 2: value added 2-128-0-isLow => false
2021-01-07 23:55:10.507 INFO ZWAVE: Node 2: value added 2-134-0-libraryType => 3
2021-01-07 23:55:10.508 INFO ZWAVE: Node 2: value added 2-134-0-protocolVersion => 4.54
2021-01-07 23:55:10.508 INFO ZWAVE: Node 2: value added 2-134-0-firmwareVersions => 1.20
2021-01-07 23:55:10.508 INFO ZWAVE: Node 2: value added 2-134-0-hardwareVersion => undefined
2021-01-07 23:55:10.511 ERROR GATEWAY: Error while discovering device climate_thermostat of node 2: Cannot read property 'id' of undefined Cannot read property 'id' of undefined
TypeError: Cannot read property 'id' of undefined
at Gateway.valueTopic (/usr/src/app/lib/Gateway.js:868:23)
at Gateway.discoverDevice (/usr/src/app/lib/Gateway.js:1126:16)
at /usr/src/app/lib/Gateway.js:360:40
at Array.forEach (<anonymous>)
at Gateway.onNodeStatus (/usr/src/app/lib/Gateway.js:360:17)
at ZwaveClient.emit (events.js:314:20)
at ZwaveClient.EventEmitter.emit (domain.js:483:12)
at ZwaveClient.onNodeStatus (/usr/src/app/lib/ZwaveClient.js:255:10)
at ZwaveClient.onNodeReady (/usr/src/app/lib/ZwaveClient.js:283:16)
at ZWaveNode.emit (events.js:326:22)
at ZWaveNode.EventEmitter.emit (domain.js:483:12)
at ZWaveNode.onReadyChange (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:441:19)
at /usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:230:10
at Interpreter.update (/usr/src/app/node_modules/xstate/lib/interpreter.js:253:17)
at /usr/src/app/node_modules/xstate/lib/interpreter.js:125:23
at Scheduler.process (/usr/src/app/node_modules/xstate/lib/scheduler.js:60:13)
2021-01-07 23:55:10.514 INFO ZWAVE: Node 2 ready: Building 36 Technologies - ADC-T 2000 (Alarm.com Smart Thermostat)
Here are (a) the exported Node 2 configuration and (b) the zwave-js logs: https://gist.github.com/bachya/b2eb36f3be24878c0c78e5494f34977c
From the zwave-js logs, it appears that the driver receives climate mode data from the node:
23:55:24.843 CNTRLR [Node 002] [~] [Thermostat Mode] mode: 1 => 1 [Endpoint 0]
23:55:24.846 SERIAL » [ACK] (0x06)
23:55:24.849 DRIVER « [Node 002] [REQ] [ApplicationCommand]
└─[ThermostatModeCCReport]
mode: Heat
23:55:24.855 SERIAL » 0x0109001305029840253e21 (11 bytes)
23:55:24.856 DRIVER » [Node 005] [REQ] [SendData]
│ transmit options: 0x25
│ callback id: 62
└─[SecurityCCNonceGet]
23:55:24.856 CNTRLR « [Node 002] received current thermostat mode: Heat
23:55:24.856 CNTRLR [Node 002] [~] [Thermostat Mode] interviewComplete: tr [Endpoint 0] [internal]
@bachya Now climates devices should be auto discovered, did you try to remove that custom device and let z2m do it for you? Do you see anything in console log?
@robertsLando I just spun up a fresh z2m instance (including a fresh store and no custom devices). Unfortunately, the climate device never appears; I only see the binary_sensor/sensor devices mentioned previously:

Here are the console logs related to the thermostat (Node 2) – looks like similar errors:
Logs
2021-01-08 16:08:10.440 INFO ZWAVE: Node 2: value added: 114-0-manufacturerId => 400
2021-01-08 16:08:10.441 INFO ZWAVE: Node 2: value added: 114-0-productType => 1
2021-01-08 16:08:10.446 INFO ZWAVE: Node 2: value added: 114-0-productId => 1
2021-01-08 16:08:13.598 INFO ZWAVE: Node 2: value added: 134-0-libraryType => 3
2021-01-08 16:08:13.599 INFO ZWAVE: Node 2: value added: 134-0-protocolVersion => 4.54
2021-01-08 16:08:13.600 INFO ZWAVE: Node 2: value added: 134-0-firmwareVersions => 1.20
2021-01-08 16:09:24.053 INFO ZWAVE: Node 2: value added: 128-0-level => 0
2021-01-08 16:09:24.054 INFO ZWAVE: Node 2: value added: 128-0-isLow => false
2021-01-08 16:09:28.523 INFO ZWAVE: Node 2: metadata updated: 64-0-mode
2021-01-08 16:09:38.849 INFO ZWAVE: Node 2: value added: 64-0-mode => 1
2021-01-08 16:10:00.445 INFO ZWAVE: Node 2: metadata updated: 112-0-1
2021-01-08 16:10:00.446 INFO ZWAVE: Node 2: metadata updated: 112-0-2
2021-01-08 16:10:00.447 INFO ZWAVE: Node 2: metadata updated: 112-0-3
2021-01-08 16:10:00.448 INFO ZWAVE: Node 2: metadata updated: 112-0-4
2021-01-08 16:10:00.449 INFO ZWAVE: Node 2: metadata updated: 112-0-5
2021-01-08 16:10:00.450 INFO ZWAVE: Node 2: metadata updated: 112-0-6
2021-01-08 16:10:00.451 INFO ZWAVE: Node 2: metadata updated: 112-0-7
2021-01-08 16:10:00.451 INFO ZWAVE: Node 2: metadata updated: 112-0-8
2021-01-08 16:10:00.452 INFO ZWAVE: Node 2: metadata updated: 112-0-9
2021-01-08 16:10:00.453 INFO ZWAVE: Node 2: metadata updated: 112-0-10
2021-01-08 16:10:00.454 INFO ZWAVE: Node 2: metadata updated: 112-0-11
2021-01-08 16:10:00.455 INFO ZWAVE: Node 2: metadata updated: 112-0-12
2021-01-08 16:10:00.456 INFO ZWAVE: Node 2: metadata updated: 112-0-13
2021-01-08 16:10:00.457 INFO ZWAVE: Node 2: metadata updated: 112-0-14
2021-01-08 16:10:00.457 INFO ZWAVE: Node 2: metadata updated: 112-0-15
2021-01-08 16:10:00.458 INFO ZWAVE: Node 2: metadata updated: 112-0-16
2021-01-08 16:10:00.459 INFO ZWAVE: Node 2: metadata updated: 112-0-17
2021-01-08 16:10:00.460 INFO ZWAVE: Node 2: metadata updated: 112-0-18
2021-01-08 16:10:00.461 INFO ZWAVE: Node 2: metadata updated: 112-0-19
2021-01-08 16:10:00.461 INFO ZWAVE: Node 2: metadata updated: 112-0-20
2021-01-08 16:10:00.462 INFO ZWAVE: Node 2: metadata updated: 112-0-21
2021-01-08 16:10:00.463 INFO ZWAVE: Node 2: metadata updated: 112-0-22
2021-01-08 16:10:00.464 INFO ZWAVE: Node 2: metadata updated: 112-0-23
2021-01-08 16:10:00.465 INFO ZWAVE: Node 2: metadata updated: 112-0-24
2021-01-08 16:10:00.465 INFO ZWAVE: Node 2: metadata updated: 112-0-25
2021-01-08 16:10:00.466 INFO ZWAVE: Node 2: metadata updated: 112-0-26
2021-01-08 16:10:00.467 INFO ZWAVE: Node 2: metadata updated: 112-0-27
2021-01-08 16:10:00.468 INFO ZWAVE: Node 2: metadata updated: 112-0-28
2021-01-08 16:10:00.469 INFO ZWAVE: Node 2: metadata updated: 112-0-30
2021-01-08 16:10:00.469 INFO ZWAVE: Node 2: metadata updated: 112-0-31
2021-01-08 16:10:00.470 INFO ZWAVE: Node 2: metadata updated: 112-0-32
2021-01-08 16:10:00.471 INFO ZWAVE: Node 2: metadata updated: 112-0-33
2021-01-08 16:10:00.472 INFO ZWAVE: Node 2: metadata updated: 112-0-34
2021-01-08 16:10:00.473 INFO ZWAVE: Node 2: metadata updated: 112-0-35
2021-01-08 16:10:05.169 INFO ZWAVE: Node 2: value added: 112-0-1 => 0
2021-01-08 16:10:11.214 INFO ZWAVE: Node 2: value added: 112-0-2 => 2
2021-01-08 16:10:15.897 INFO ZWAVE: Node 2: value added: 112-0-3 => 2
2021-01-08 16:10:20.578 INFO ZWAVE: Node 2: value added: 112-0-4 => 1
2021-01-08 16:10:25.424 INFO ZWAVE: Node 2: value added: 112-0-5 => 704643072
2021-01-08 16:10:30.110 INFO ZWAVE: Node 2: value added: 112-0-6 => 704644352
2021-01-08 16:10:35.024 INFO ZWAVE: Node 2: value added: 112-0-7 => 704643072
2021-01-08 16:10:39.530 INFO ZWAVE: Node 2: value added: 112-0-8 => 10
2021-01-08 16:10:43.950 INFO ZWAVE: Node 2: value added: 112-0-9 => 10
2021-01-08 16:10:48.411 INFO ZWAVE: Node 2: value added: 112-0-10 => 704732672
2021-01-08 16:10:53.163 INFO ZWAVE: Node 2: value added: 112-0-11 => 0
2021-01-08 16:10:56.572 INFO ZWAVE: Node 2: value added: 112-0-12 => 20
2021-01-08 16:11:00.439 INFO ZWAVE: Node 2: value added: 112-0-13 => 25
2021-01-08 16:11:06.096 INFO ZWAVE: Node 2: value added: 112-0-14 => 60
2021-01-08 16:11:10.584 INFO ZWAVE: Node 2: value added: 112-0-15 => 704886272
2021-01-08 16:11:15.112 INFO ZWAVE: Node 2: value added: 112-0-16 => 704732672
2021-01-08 16:11:19.589 INFO ZWAVE: Node 2: value added: 112-0-17 => 704886272
2021-01-08 16:11:23.166 INFO ZWAVE: Node 2: value added: 112-0-18 => 704771072
2021-01-08 16:11:25.326 INFO ZWAVE: Node 2: value added: 112-0-19 => 0
2021-01-08 16:11:29.849 INFO ZWAVE: Node 2: value added: 112-0-20 => 5
2021-01-08 16:11:34.475 INFO ZWAVE: Node 2: value added: 112-0-21 => 10
2021-01-08 16:11:38.967 INFO ZWAVE: Node 2: value added: 112-0-22 => 25
2021-01-08 16:11:43.499 INFO ZWAVE: Node 2: value added: 112-0-23 => 1
2021-01-08 16:11:48.014 INFO ZWAVE: Node 2: value added: 112-0-24 => 15
2021-01-08 16:11:52.460 INFO ZWAVE: Node 2: value added: 112-0-25 => 0
2021-01-08 16:11:52.482 INFO ZWAVE: Node 2: value updated: 112-0-25 0 => 0
2021-01-08 16:11:56.979 INFO ZWAVE: Node 2: value added: 112-0-26 => 1
2021-01-08 16:12:01.465 INFO ZWAVE: Node 2: value added: 112-0-27 => 30
2021-01-08 16:12:05.895 INFO ZWAVE: Node 2: value added: 112-0-28 => 15
2021-01-08 16:12:10.427 INFO ZWAVE: Node 2: value added: 112-0-30 => 0
2021-01-08 16:12:14.865 INFO ZWAVE: Node 2: value added: 112-0-31 => 704650752
2021-01-08 16:12:19.426 INFO ZWAVE: Node 2: value added: 112-0-32 => 704650752
2021-01-08 16:12:25.384 INFO ZWAVE: Node 2: value added: 112-0-33 => 704645632
2021-01-08 16:12:28.622 INFO ZWAVE: Node 2: value added: 112-0-34 => 1
2021-01-08 16:12:33.166 INFO ZWAVE: Node 2: value added: 112-0-35 => 0
2021-01-08 16:12:46.441 INFO ZWAVE: Node 2: metadata updated: 49-0-Air temperature
2021-01-08 16:12:46.443 INFO ZWAVE: Node 2: value added: 49-0-Air temperature => 20.82
2021-01-08 16:12:55.272 INFO ZWAVE: Node 2: metadata updated: 49-0-Humidity
2021-01-08 16:12:55.274 INFO ZWAVE: Node 2: value added: 49-0-Humidity => 30
2021-01-08 16:12:59.748 INFO ZWAVE: Node 2: value added: 66-0-state => 1
2021-01-08 16:13:25.983 ERROR GATEWAY: Unable to discover climate device: Cannot convert undefined or null to object Cannot convert undefined or null to object
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at Gateway.discoverClimates (/usr/src/app/lib/Gateway.js:1369:38)
at Gateway.onNodeStatus (/usr/src/app/lib/Gateway.js:357:10)
at ZwaveClient.emit (events.js:314:20)
at ZwaveClient.EventEmitter.emit (domain.js:483:12)
at ZwaveClient.onNodeStatus (/usr/src/app/lib/ZwaveClient.js:255:10)
at ZwaveClient.onNodeReady (/usr/src/app/lib/ZwaveClient.js:283:16)
at ZWaveNode.emit (events.js:326:22)
at ZWaveNode.EventEmitter.emit (domain.js:483:12)
at ZWaveNode.onReadyChange (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:441:19)
at /usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:230:10
at Interpreter.update (/usr/src/app/node_modules/xstate/lib/interpreter.js:253:17)
at /usr/src/app/node_modules/xstate/lib/interpreter.js:125:23
at Scheduler.process (/usr/src/app/node_modules/xstate/lib/scheduler.js:60:13)
at Scheduler.schedule (/usr/src/app/node_modules/xstate/lib/scheduler.js:44:14)
at Proxy.Interpreter.send (/usr/src/app/node_modules/xstate/lib/interpreter.js:121:29)
2021-01-08 16:13:25.985 INFO ZWAVE: Node 2 ready: Building 36 Technologies - ADC-T 2000 (Alarm.com Smart Thermostat)
2021-01-08 16:13:25.986 INFO ZWAVE: Node 2: interview completed, all values are updated
2021-01-08 16:13:25.986 ERROR GATEWAY: Unable to discover climate device: Cannot convert undefined or null to object Cannot convert undefined or null to object
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at Gateway.discoverClimates (/usr/src/app/lib/Gateway.js:1369:38)
at Gateway.onNodeStatus (/usr/src/app/lib/Gateway.js:357:10)
at ZwaveClient.emit (events.js:314:20)
at ZwaveClient.EventEmitter.emit (domain.js:483:12)
at ZwaveClient.onNodeStatus (/usr/src/app/lib/ZwaveClient.js:255:10)
at ZwaveClient.onNodeInterviewCompleted (/usr/src/app/lib/ZwaveClient.js:322:16)
at ZWaveNode.emit (events.js:326:22)
at ZWaveNode.EventEmitter.emit (domain.js:483:12)
at ZWaveNode.interview (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:989:8)
at Driver.interviewNode (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:836:10)
2021-01-08 16:12:59.802 INFO ZWAVE: Node 2: value updated: 66-0-state 1 => 1
2021-01-08 16:13:25.969 INFO ZWAVE: Node 2: value added 2-114-0-manufacturerId => 400
2021-01-08 16:13:25.970 INFO ZWAVE: Node 2: value added 2-114-0-productType => 1
2021-01-08 16:13:25.970 INFO ZWAVE: Node 2: value added 2-114-0-productId => 1
2021-01-08 16:13:25.970 INFO ZWAVE: Node 2: value added 2-64-0-mode => 1
2021-01-08 16:13:25.971 INFO ZWAVE: Node 2: value added 2-64-0-manufacturerData => undefined
2021-01-08 16:13:25.971 INFO ZWAVE: Node 2: value added 2-134-0-libraryType => 3
2021-01-08 16:13:25.971 INFO ZWAVE: Node 2: value added 2-134-0-protocolVersion => 4.54
2021-01-08 16:13:25.971 INFO ZWAVE: Node 2: value added 2-134-0-firmwareVersions => 1.20
2021-01-08 16:13:25.972 INFO ZWAVE: Node 2: value added 2-134-0-hardwareVersion => undefined
2021-01-08 16:13:25.972 INFO ZWAVE: Node 2: value added 2-128-0-level => 0
2021-01-08 16:13:25.972 INFO ZWAVE: Node 2: value added 2-128-0-isLow => false
2021-01-08 16:13:25.972 INFO ZWAVE: Node 2: value added 2-112-0-1 => 0
2021-01-08 16:13:25.973 INFO ZWAVE: Node 2: value added 2-112-0-2 => 2
2021-01-08 16:13:25.973 INFO ZWAVE: Node 2: value added 2-112-0-3 => 2
2021-01-08 16:13:25.973 INFO ZWAVE: Node 2: value added 2-112-0-4 => 1
2021-01-08 16:13:25.973 INFO ZWAVE: Node 2: value added 2-112-0-5 => 704643072
2021-01-08 16:13:25.974 INFO ZWAVE: Node 2: value added 2-112-0-6 => 704644352
2021-01-08 16:13:25.974 INFO ZWAVE: Node 2: value added 2-112-0-7 => 704643072
2021-01-08 16:13:25.974 INFO ZWAVE: Node 2: value added 2-112-0-8 => 10
2021-01-08 16:13:25.974 INFO ZWAVE: Node 2: value added 2-112-0-9 => 10
2021-01-08 16:13:25.974 INFO ZWAVE: Node 2: value added 2-112-0-10 => 704732672
2021-01-08 16:13:25.975 INFO ZWAVE: Node 2: value added 2-112-0-11 => 0
2021-01-08 16:13:25.975 INFO ZWAVE: Node 2: value added 2-112-0-12 => 20
2021-01-08 16:13:25.975 INFO ZWAVE: Node 2: value added 2-112-0-13 => 25
2021-01-08 16:13:25.975 INFO ZWAVE: Node 2: value added 2-112-0-14 => 60
2021-01-08 16:13:25.976 INFO ZWAVE: Node 2: value added 2-112-0-15 => 704886272
2021-01-08 16:13:25.976 INFO ZWAVE: Node 2: value added 2-112-0-16 => 704732672
2021-01-08 16:13:25.976 INFO ZWAVE: Node 2: value added 2-112-0-17 => 704886272
2021-01-08 16:13:25.976 INFO ZWAVE: Node 2: value added 2-112-0-18 => 704771072
2021-01-08 16:13:25.977 INFO ZWAVE: Node 2: value added 2-112-0-19 => 0
2021-01-08 16:13:25.977 INFO ZWAVE: Node 2: value added 2-112-0-20 => 5
2021-01-08 16:13:25.977 INFO ZWAVE: Node 2: value added 2-112-0-21 => 10
2021-01-08 16:13:25.977 INFO ZWAVE: Node 2: value added 2-112-0-22 => 25
2021-01-08 16:13:25.977 INFO ZWAVE: Node 2: value added 2-112-0-23 => 1
2021-01-08 16:13:25.978 INFO ZWAVE: Node 2: value added 2-112-0-24 => 15
2021-01-08 16:13:25.978 INFO ZWAVE: Node 2: value added 2-112-0-25 => 0
2021-01-08 16:13:25.978 INFO ZWAVE: Node 2: value added 2-112-0-26 => 1
2021-01-08 16:13:25.978 INFO ZWAVE: Node 2: value added 2-112-0-27 => 30
2021-01-08 16:13:25.979 INFO ZWAVE: Node 2: value added 2-112-0-28 => 15
2021-01-08 16:13:25.979 INFO ZWAVE: Node 2: value added 2-112-0-30 => 0
2021-01-08 16:13:25.979 INFO ZWAVE: Node 2: value added 2-112-0-31 => 704650752
2021-01-08 16:13:25.979 INFO ZWAVE: Node 2: value added 2-112-0-32 => 704650752
2021-01-08 16:13:25.980 INFO ZWAVE: Node 2: value added 2-112-0-33 => 704645632
2021-01-08 16:13:25.980 INFO ZWAVE: Node 2: value added 2-112-0-34 => 1
2021-01-08 16:13:25.980 INFO ZWAVE: Node 2: value added 2-112-0-35 => 0
2021-01-08 16:13:25.980 INFO ZWAVE: Node 2: value added 2-49-0-Air temperature => 20.82
2021-01-08 16:13:25.981 INFO ZWAVE: Node 2: value added 2-49-0-Humidity => 30
2021-01-08 16:13:25.981 INFO ZWAVE: Node 2: value added 2-66-0-state => 1
2021-01-08 16:13:25.986 INFO ZWAVE: Node 2: interview completed, all values are updated
@bachya Could you retry now please?
@robertsLando Just pulled the latest dev Docker image and spun up a new container with a fresh /store volume – unfortunately, seeing the same in the Docker console logs:
Logs
2021-01-11 16:06:14.861 INFO ZWAVE: Node 2: value added: 114-0-manufacturerId => 400
2021-01-11 16:06:14.862 INFO ZWAVE: Node 2: value added: 114-0-productType => 1
2021-01-11 16:06:14.863 INFO ZWAVE: Node 2: value added: 114-0-productId => 1
2021-01-11 16:06:17.432 INFO ZWAVE: Node 2: value added: 134-0-libraryType => 3
2021-01-11 16:06:17.434 INFO ZWAVE: Node 2: value added: 134-0-protocolVersion => 4.54
2021-01-11 16:06:17.436 INFO ZWAVE: Node 2: value added: 134-0-firmwareVersions => 1.20
2021-01-11 16:08:01.680 INFO ZWAVE: Node 2: value added: 128-0-level => 0
2021-01-11 16:08:01.681 INFO ZWAVE: Node 2: value added: 128-0-isLow => false
2021-01-11 16:08:16.707 INFO ZWAVE: Node 2: metadata updated: 64-0-mode
2021-01-11 16:08:20.157 INFO ZWAVE: Node 2: value added: 64-0-mode => 1
2021-01-11 16:08:56.269 INFO ZWAVE: Node 2: metadata updated: 112-0-1
2021-01-11 16:08:56.270 INFO ZWAVE: Node 2: metadata updated: 112-0-2
2021-01-11 16:08:56.271 INFO ZWAVE: Node 2: metadata updated: 112-0-3
2021-01-11 16:08:56.272 INFO ZWAVE: Node 2: metadata updated: 112-0-4
2021-01-11 16:08:56.273 INFO ZWAVE: Node 2: metadata updated: 112-0-5
2021-01-11 16:08:56.273 INFO ZWAVE: Node 2: metadata updated: 112-0-6
2021-01-11 16:08:56.274 INFO ZWAVE: Node 2: metadata updated: 112-0-7
2021-01-11 16:08:56.275 INFO ZWAVE: Node 2: metadata updated: 112-0-8
2021-01-11 16:08:56.276 INFO ZWAVE: Node 2: metadata updated: 112-0-9
2021-01-11 16:08:56.276 INFO ZWAVE: Node 2: metadata updated: 112-0-10
2021-01-11 16:08:56.277 INFO ZWAVE: Node 2: metadata updated: 112-0-11
2021-01-11 16:08:56.278 INFO ZWAVE: Node 2: metadata updated: 112-0-12
2021-01-11 16:08:56.279 INFO ZWAVE: Node 2: metadata updated: 112-0-13
2021-01-11 16:08:56.279 INFO ZWAVE: Node 2: metadata updated: 112-0-14
2021-01-11 16:08:56.280 INFO ZWAVE: Node 2: metadata updated: 112-0-15
2021-01-11 16:08:56.281 INFO ZWAVE: Node 2: metadata updated: 112-0-16
2021-01-11 16:08:56.283 INFO ZWAVE: Node 2: metadata updated: 112-0-17
2021-01-11 16:08:56.284 INFO ZWAVE: Node 2: metadata updated: 112-0-18
2021-01-11 16:08:56.285 INFO ZWAVE: Node 2: metadata updated: 112-0-19
2021-01-11 16:08:56.286 INFO ZWAVE: Node 2: metadata updated: 112-0-20
2021-01-11 16:08:56.287 INFO ZWAVE: Node 2: metadata updated: 112-0-21
2021-01-11 16:08:56.288 INFO ZWAVE: Node 2: metadata updated: 112-0-22
2021-01-11 16:08:56.289 INFO ZWAVE: Node 2: metadata updated: 112-0-23
2021-01-11 16:08:56.290 INFO ZWAVE: Node 2: metadata updated: 112-0-24
2021-01-11 16:08:56.291 INFO ZWAVE: Node 2: metadata updated: 112-0-25
2021-01-11 16:08:56.292 INFO ZWAVE: Node 2: metadata updated: 112-0-26
2021-01-11 16:08:56.294 INFO ZWAVE: Node 2: metadata updated: 112-0-27
2021-01-11 16:08:56.295 INFO ZWAVE: Node 2: metadata updated: 112-0-28
2021-01-11 16:08:56.296 INFO ZWAVE: Node 2: metadata updated: 112-0-30
2021-01-11 16:08:56.297 INFO ZWAVE: Node 2: metadata updated: 112-0-31
2021-01-11 16:08:56.298 INFO ZWAVE: Node 2: metadata updated: 112-0-32
2021-01-11 16:08:56.299 INFO ZWAVE: Node 2: metadata updated: 112-0-33
2021-01-11 16:08:56.300 INFO ZWAVE: Node 2: metadata updated: 112-0-34
2021-01-11 16:08:56.302 INFO ZWAVE: Node 2: metadata updated: 112-0-35
2021-01-11 16:09:00.659 INFO ZWAVE: Node 2: value added: 112-0-1 => 0
2021-01-11 16:09:05.019 INFO ZWAVE: Node 2: value added: 112-0-2 => 2
2021-01-11 16:09:08.867 INFO ZWAVE: Node 2: value added: 112-0-3 => 2
2021-01-11 16:09:13.859 INFO ZWAVE: Node 2: value added: 112-0-4 => 1
2021-01-11 16:09:17.851 INFO ZWAVE: Node 2: value added: 112-0-5 => 704643072
2021-01-11 16:09:21.851 INFO ZWAVE: Node 2: value added: 112-0-6 => 704644352
2021-01-11 16:09:26.201 INFO ZWAVE: Node 2: value added: 112-0-7 => 704643072
2021-01-11 16:09:29.152 INFO ZWAVE: Node 2: value added: 112-0-8 => 10
2021-01-11 16:09:29.237 INFO ZWAVE: Node 2: value updated: 112-0-8 10 => 10
2021-01-11 16:09:31.074 INFO ZWAVE: Node 2: value added: 112-0-9 => 10
2021-01-11 16:09:32.856 INFO ZWAVE: Node 2: value added: 112-0-10 => 704732672
2021-01-11 16:09:33.020 INFO ZWAVE: Node 2: value updated: 112-0-10 704732672 => 704732672
2021-01-11 16:09:34.876 INFO ZWAVE: Node 2: value added: 112-0-11 => 0
2021-01-11 16:09:36.758 INFO ZWAVE: Node 2: value added: 112-0-12 => 20
2021-01-11 16:09:41.648 INFO ZWAVE: Node 2: value added: 112-0-13 => 25
2021-01-11 16:09:43.377 INFO ZWAVE: Node 2: value added: 112-0-14 => 60
2021-01-11 16:09:45.168 INFO ZWAVE: Node 2: value added: 112-0-15 => 704886272
2021-01-11 16:09:47.051 INFO ZWAVE: Node 2: value added: 112-0-16 => 704732672
2021-01-11 16:09:48.872 INFO ZWAVE: Node 2: value added: 112-0-17 => 704886272
2021-01-11 16:09:51.904 INFO ZWAVE: Node 2: value added: 112-0-18 => 704771072
2021-01-11 16:09:55.072 INFO ZWAVE: Node 2: value added: 112-0-19 => 0
2021-01-11 16:09:56.992 INFO ZWAVE: Node 2: value added: 112-0-20 => 5
2021-01-11 16:09:58.948 INFO ZWAVE: Node 2: value added: 112-0-21 => 10
2021-01-11 16:10:03.263 INFO ZWAVE: Node 2: value added: 112-0-22 => 25
2021-01-11 16:10:05.192 INFO ZWAVE: Node 2: value added: 112-0-23 => 1
2021-01-11 16:10:07.105 INFO ZWAVE: Node 2: value added: 112-0-24 => 15
2021-01-11 16:10:19.469 INFO ZWAVE: Node 2: value added: 112-0-25 => 0
2021-01-11 16:10:21.208 INFO ZWAVE: Node 2: value added: 112-0-26 => 1
2021-01-11 16:10:22.912 INFO ZWAVE: Node 2: value added: 112-0-27 => 30
2021-01-11 16:10:24.608 INFO ZWAVE: Node 2: value added: 112-0-28 => 15
2021-01-11 16:10:26.402 INFO ZWAVE: Node 2: value added: 112-0-30 => 0
2021-01-11 16:10:28.128 INFO ZWAVE: Node 2: value added: 112-0-31 => 704650752
2021-01-11 16:10:30.080 INFO ZWAVE: Node 2: value added: 112-0-32 => 704650752
2021-01-11 16:10:31.830 INFO ZWAVE: Node 2: value added: 112-0-33 => 704645632
2021-01-11 16:10:33.542 INFO ZWAVE: Node 2: value added: 112-0-34 => 1
2021-01-11 16:10:35.241 INFO ZWAVE: Node 2: value added: 112-0-35 => 0
2021-01-11 16:10:41.884 INFO ZWAVE: Node 2: metadata updated: 49-0-Air temperature
2021-01-11 16:10:41.886 INFO ZWAVE: Node 2: value added: 49-0-Air temperature => 21.07
2021-01-11 16:10:45.646 INFO ZWAVE: Node 2: metadata updated: 49-0-Humidity
2021-01-11 16:10:45.647 INFO ZWAVE: Node 2: value added: 49-0-Humidity => 29
2021-01-11 16:10:47.369 INFO ZWAVE: Node 2: value added: 66-0-state => 0
2021-01-11 16:10:47.450 INFO ZWAVE: Node 2: value updated: 66-0-state 0 => 0
2021-01-11 16:10:56.455 INFO ZWAVE: Node 2: value added 2-114-0-manufacturerId => 400
2021-01-11 16:10:56.455 INFO ZWAVE: Node 2: value added 2-114-0-productType => 1
2021-01-11 16:10:56.456 INFO ZWAVE: Node 2: value added 2-114-0-productId => 1
2021-01-11 16:10:56.456 INFO ZWAVE: Node 2: value added 2-64-0-mode => 1
2021-01-11 16:10:56.456 INFO ZWAVE: Node 2: value added 2-64-0-manufacturerData => undefined
2021-01-11 16:10:56.457 INFO ZWAVE: Node 2: value added 2-134-0-libraryType => 3
2021-01-11 16:10:56.458 INFO ZWAVE: Node 2: value added 2-134-0-protocolVersion => 4.54
2021-01-11 16:10:56.458 INFO ZWAVE: Node 2: value added 2-134-0-firmwareVersions => 1.20
2021-01-11 16:10:56.458 INFO ZWAVE: Node 2: value added 2-134-0-hardwareVersion => undefined
2021-01-11 16:10:56.459 INFO ZWAVE: Node 2: value added 2-128-0-level => 0
2021-01-11 16:10:56.459 INFO ZWAVE: Node 2: value added 2-128-0-isLow => false
2021-01-11 16:10:56.460 INFO ZWAVE: Node 2: value added 2-112-0-1 => 0
2021-01-11 16:10:56.460 INFO ZWAVE: Node 2: value added 2-112-0-2 => 2
2021-01-11 16:10:56.460 INFO ZWAVE: Node 2: value added 2-112-0-3 => 2
2021-01-11 16:10:56.461 INFO ZWAVE: Node 2: value added 2-112-0-4 => 1
2021-01-11 16:10:56.461 INFO ZWAVE: Node 2: value added 2-112-0-5 => 704643072
2021-01-11 16:10:56.462 INFO ZWAVE: Node 2: value added 2-112-0-6 => 704644352
2021-01-11 16:10:56.462 INFO ZWAVE: Node 2: value added 2-112-0-7 => 704643072
2021-01-11 16:10:56.462 INFO ZWAVE: Node 2: value added 2-112-0-8 => 10
2021-01-11 16:10:56.463 INFO ZWAVE: Node 2: value added 2-112-0-9 => 10
2021-01-11 16:10:56.463 INFO ZWAVE: Node 2: value added 2-112-0-10 => 704732672
2021-01-11 16:10:56.464 INFO ZWAVE: Node 2: value added 2-112-0-11 => 0
2021-01-11 16:10:56.464 INFO ZWAVE: Node 2: value added 2-112-0-12 => 20
2021-01-11 16:10:56.464 INFO ZWAVE: Node 2: value added 2-112-0-13 => 25
2021-01-11 16:10:56.465 INFO ZWAVE: Node 2: value added 2-112-0-14 => 60
2021-01-11 16:10:56.465 INFO ZWAVE: Node 2: value added 2-112-0-15 => 704886272
2021-01-11 16:10:56.465 INFO ZWAVE: Node 2: value added 2-112-0-16 => 704732672
2021-01-11 16:10:56.465 INFO ZWAVE: Node 2: value added 2-112-0-17 => 704886272
2021-01-11 16:10:56.465 INFO ZWAVE: Node 2: value added 2-112-0-18 => 704771072
2021-01-11 16:10:56.466 INFO ZWAVE: Node 2: value added 2-112-0-19 => 0
2021-01-11 16:10:56.466 INFO ZWAVE: Node 2: value added 2-112-0-20 => 5
2021-01-11 16:10:56.467 INFO ZWAVE: Node 2: value added 2-112-0-21 => 10
2021-01-11 16:10:56.467 INFO ZWAVE: Node 2: value added 2-112-0-22 => 25
2021-01-11 16:10:56.467 INFO ZWAVE: Node 2: value added 2-112-0-23 => 1
2021-01-11 16:10:56.467 INFO ZWAVE: Node 2: value added 2-112-0-24 => 15
2021-01-11 16:10:56.468 INFO ZWAVE: Node 2: value added 2-112-0-25 => 0
2021-01-11 16:10:56.468 INFO ZWAVE: Node 2: value added 2-112-0-26 => 1
2021-01-11 16:10:56.468 INFO ZWAVE: Node 2: value added 2-112-0-27 => 30
2021-01-11 16:10:56.468 INFO ZWAVE: Node 2: value added 2-112-0-28 => 15
2021-01-11 16:10:56.469 INFO ZWAVE: Node 2: value added 2-112-0-30 => 0
2021-01-11 16:10:56.469 INFO ZWAVE: Node 2: value added 2-112-0-31 => 704650752
2021-01-11 16:10:56.469 INFO ZWAVE: Node 2: value added 2-112-0-32 => 704650752
2021-01-11 16:10:56.470 INFO ZWAVE: Node 2: value added 2-112-0-33 => 704645632
2021-01-11 16:10:56.470 INFO ZWAVE: Node 2: value added 2-112-0-34 => 1
2021-01-11 16:10:56.470 INFO ZWAVE: Node 2: value added 2-112-0-35 => 0
2021-01-11 16:10:56.471 INFO ZWAVE: Node 2: value added 2-49-0-Air temperature => 21.07
2021-01-11 16:10:56.472 INFO ZWAVE: Node 2: value added 2-49-0-Humidity => 29
2021-01-11 16:10:56.472 INFO ZWAVE: Node 2: value added 2-66-0-state => 0
2021-01-11 16:10:56.478 INFO ZWAVE: Node 2: interview completed, all values are updated
2021-01-11 16:10:56.474 ERROR GATEWAY: Unable to discover climate device: Cannot convert undefined or null to object Cannot convert undefined or null to object
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at Gateway.discoverClimates (/usr/src/app/lib/Gateway.js:1369:38)
at Gateway.onNodeStatus (/usr/src/app/lib/Gateway.js:357:10)
at ZwaveClient.emit (events.js:314:20)
at ZwaveClient.EventEmitter.emit (domain.js:483:12)
at ZwaveClient.onNodeStatus (/usr/src/app/lib/ZwaveClient.js:247:10)
at ZwaveClient.onNodeReady (/usr/src/app/lib/ZwaveClient.js:275:16)
at ZWaveNode.emit (events.js:326:22)
at ZWaveNode.EventEmitter.emit (domain.js:483:12)
at ZWaveNode.onReadyChange (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:441:19)
at /usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:227:10
at Interpreter.update (/usr/src/app/node_modules/xstate/lib/interpreter.js:253:17)
at /usr/src/app/node_modules/xstate/lib/interpreter.js:125:23
at Scheduler.process (/usr/src/app/node_modules/xstate/lib/scheduler.js:60:13)
at Scheduler.schedule (/usr/src/app/node_modules/xstate/lib/scheduler.js:44:14)
at Proxy.Interpreter.send (/usr/src/app/node_modules/xstate/lib/interpreter.js:121:29)
2021-01-11 16:10:56.477 INFO ZWAVE: Node 2 ready: Building 36 Technologies - ADC-T 2000 (Alarm.com Smart Thermostat)
2021-01-11 16:10:56.478 INFO ZWAVE: Node 2: interview completed, all values are updated
2021-01-11 16:10:56.479 ERROR GATEWAY: Unable to discover climate device: Cannot convert undefined or null to object Cannot convert undefined or null to object
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at Gateway.discoverClimates (/usr/src/app/lib/Gateway.js:1369:38)
at Gateway.onNodeStatus (/usr/src/app/lib/Gateway.js:357:10)
at ZwaveClient.emit (events.js:314:20)
at ZwaveClient.EventEmitter.emit (domain.js:483:12)
at ZwaveClient.onNodeStatus (/usr/src/app/lib/ZwaveClient.js:247:10)
at ZwaveClient.onNodeInterviewCompleted (/usr/src/app/lib/ZwaveClient.js:314:16)
at ZWaveNode.emit (events.js:326:22)
at ZWaveNode.EventEmitter.emit (domain.js:483:12)
at ZWaveNode.interview (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:989:8)
at Driver.interviewNode (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:860:10)
@bachya FOund the reason. Fix is on master now. Wait 30 minutes before doing a new pull :)
I don't believe this is fixed quite yet. I again pulled the latest dev (to confirm: https://hub.docker.com/layers/zwavejs/zwavejs2mqtt/dev/images/sha256-9c77c231ace09673d4133a9bba01cd50df831a88de183826427ecf70cf799236?context=explore) and started with a fresh /store, but am still seeing errors (slightly different):
Logs
2021-01-11 16:57:03.400 INFO ZWAVE: Node 2: value added 2-114-0-manufacturerId => 400
2021-01-11 16:57:03.401 INFO ZWAVE: Node 2: value added 2-114-0-productType => 1
2021-01-11 16:57:03.401 INFO ZWAVE: Node 2: value added 2-114-0-productId => 1
2021-01-11 16:57:03.401 INFO ZWAVE: Node 2: value added 2-64-0-mode => 1
2021-01-11 16:57:03.402 INFO ZWAVE: Node 2: value added 2-64-0-manufacturerData => undefined
2021-01-11 16:57:03.402 INFO ZWAVE: Node 2: value added 2-134-0-libraryType => 3
2021-01-11 16:57:03.403 INFO ZWAVE: Node 2: value added 2-134-0-protocolVersion => 4.54
2021-01-11 16:57:03.403 INFO ZWAVE: Node 2: value added 2-134-0-firmwareVersions => 1.20
2021-01-11 16:57:03.403 INFO ZWAVE: Node 2: value added 2-134-0-hardwareVersion => undefined
2021-01-11 16:57:03.404 INFO ZWAVE: Node 2: value added 2-128-0-level => 0
2021-01-11 16:57:03.404 INFO ZWAVE: Node 2: value added 2-128-0-isLow => false
2021-01-11 16:57:03.404 INFO ZWAVE: Node 2: value added 2-112-0-1 => 0
2021-01-11 16:57:03.405 INFO ZWAVE: Node 2: value added 2-112-0-2 => 2
2021-01-11 16:57:03.405 INFO ZWAVE: Node 2: value added 2-112-0-3 => 2
2021-01-11 16:57:03.405 INFO ZWAVE: Node 2: value added 2-112-0-4 => 1
2021-01-11 16:57:03.406 INFO ZWAVE: Node 2: value added 2-112-0-5 => 704643072
2021-01-11 16:57:03.406 INFO ZWAVE: Node 2: value added 2-112-0-6 => 704644352
2021-01-11 16:57:03.406 INFO ZWAVE: Node 2: value added 2-112-0-7 => 704643072
2021-01-11 16:57:03.407 INFO ZWAVE: Node 2: value added 2-112-0-8 => 10
2021-01-11 16:57:03.407 INFO ZWAVE: Node 2: value added 2-112-0-9 => 10
2021-01-11 16:57:03.407 INFO ZWAVE: Node 2: value added 2-112-0-10 => 704732672
2021-01-11 16:57:03.408 INFO ZWAVE: Node 2: value added 2-112-0-11 => 0
2021-01-11 16:57:03.408 INFO ZWAVE: Node 2: value added 2-112-0-12 => 20
2021-01-11 16:57:03.409 INFO ZWAVE: Node 2: value added 2-112-0-13 => 25
2021-01-11 16:57:03.410 INFO ZWAVE: Node 2: value added 2-112-0-14 => 60
2021-01-11 16:57:03.410 INFO ZWAVE: Node 2: value added 2-112-0-15 => 704886272
2021-01-11 16:57:03.411 INFO ZWAVE: Node 2: value added 2-112-0-16 => 704732672
2021-01-11 16:57:03.411 INFO ZWAVE: Node 2: value added 2-112-0-17 => 704886272
2021-01-11 16:57:03.411 INFO ZWAVE: Node 2: value added 2-112-0-18 => 704771072
2021-01-11 16:57:03.412 INFO ZWAVE: Node 2: value added 2-112-0-19 => 0
2021-01-11 16:57:03.412 INFO ZWAVE: Node 2: value added 2-112-0-20 => 5
2021-01-11 16:57:03.413 INFO ZWAVE: Node 2: value added 2-112-0-21 => 10
2021-01-11 16:57:03.413 INFO ZWAVE: Node 2: value added 2-112-0-23 => 1
2021-01-11 16:57:03.414 INFO ZWAVE: Node 2: value added 2-112-0-24 => 15
2021-01-11 16:57:03.414 INFO ZWAVE: Node 2: value added 2-112-0-25 => 0
2021-01-11 16:57:03.415 INFO ZWAVE: Node 2: value added 2-112-0-26 => 1
2021-01-11 16:57:03.415 INFO ZWAVE: Node 2: value added 2-112-0-27 => 30
2021-01-11 16:57:03.415 INFO ZWAVE: Node 2: value added 2-112-0-28 => 15
2021-01-11 16:57:03.416 INFO ZWAVE: Node 2: value added 2-112-0-30 => 0
2021-01-11 16:57:03.416 INFO ZWAVE: Node 2: value added 2-112-0-31 => 704650752
2021-01-11 16:57:03.417 INFO ZWAVE: Node 2: value added 2-112-0-32 => 704650752
2021-01-11 16:57:03.417 INFO ZWAVE: Node 2: value added 2-112-0-33 => 704645632
2021-01-11 16:57:03.417 INFO ZWAVE: Node 2: value added 2-112-0-34 => 1
2021-01-11 16:57:03.418 INFO ZWAVE: Node 2: value added 2-112-0-35 => 0
2021-01-11 16:57:03.418 INFO ZWAVE: Node 2: value added 2-112-0-22 => undefined
2021-01-11 16:57:03.418 INFO ZWAVE: Node 2: value added 2-49-0-Air temperature => 21.09
2021-01-11 16:57:03.419 INFO ZWAVE: Node 2: value added 2-49-0-Humidity => 29
2021-01-11 16:57:03.419 INFO ZWAVE: Node 2: value added 2-66-0-state => 0
2021-01-11 16:57:03.420 INFO GATEWAY: New climate device discovered: {"type":"climate","object_id":"climate","discovery_payload":{"min_temp":5,"max_temp":40,"temp_step":0.5,"modes":["off","heat","cool","auto"],"mode_state_topic":"64-0-mode","mode_state_template":"{{ value_json.value }}","mode_command_topic":"64-0-mode/set","current_temperature_topic":"49-0-Air temperature","current_temperature_template":"{{ value_json.value }}","temperature_state_topic":true,"temperature_state_template":"{{ value_json.value }}","temperature_command_topic":true},"values":["49-0-Air temperature","64-0-mode"],"mode_map":{"off":0,"heat":1,"cool":2,"auto":3},"setpoint_topic":{}}
2021-01-11 16:57:03.423 ERROR GATEWAY: Error while discovering device climate_climate of node 2: Cannot read property 'id' of undefined Cannot read property 'id' of undefined
TypeError: Cannot read property 'id' of undefined
at Gateway.valueTopic (/usr/src/app/lib/Gateway.js:868:23)
at Gateway.discoverDevice (/usr/src/app/lib/Gateway.js:1126:16)
at /usr/src/app/lib/Gateway.js:360:40
at Array.forEach (<anonymous>)
at Gateway.onNodeStatus (/usr/src/app/lib/Gateway.js:360:17)
at ZwaveClient.emit (events.js:314:20)
at ZwaveClient.EventEmitter.emit (domain.js:483:12)
at ZwaveClient.onNodeStatus (/usr/src/app/lib/ZwaveClient.js:247:10)
at ZwaveClient.onNodeReady (/usr/src/app/lib/ZwaveClient.js:275:16)
at ZWaveNode.emit (events.js:326:22)
at ZWaveNode.EventEmitter.emit (domain.js:483:12)
at ZWaveNode.onReadyChange (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:441:19)
at /usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:227:10
at Interpreter.update (/usr/src/app/node_modules/xstate/lib/interpreter.js:253:17)
at /usr/src/app/node_modules/xstate/lib/interpreter.js:125:23
at Scheduler.process (/usr/src/app/node_modules/xstate/lib/scheduler.js:60:13)
2021-01-11 16:57:03.426 INFO ZWAVE: Node 2 ready: Building 36 Technologies - ADC-T 2000 (Alarm.com Smart Thermostat)
2021-01-11 16:57:03.427 INFO ZWAVE: Node 2: interview completed, all values are updated
2021-01-11 16:57:03.428 ERROR GATEWAY: Error while discovering device climate_climate of node 2: Cannot read property 'id' of undefined Cannot read property 'id' of undefined
TypeError: Cannot read property 'id' of undefined
at Gateway.valueTopic (/usr/src/app/lib/Gateway.js:868:23)
at Gateway.discoverDevice (/usr/src/app/lib/Gateway.js:1126:16)
at /usr/src/app/lib/Gateway.js:360:40
at Array.forEach (<anonymous>)
at Gateway.onNodeStatus (/usr/src/app/lib/Gateway.js:360:17)
at ZwaveClient.emit (events.js:314:20)
at ZwaveClient.EventEmitter.emit (domain.js:483:12)
at ZwaveClient.onNodeStatus (/usr/src/app/lib/ZwaveClient.js:247:10)
at ZwaveClient.onNodeInterviewCompleted (/usr/src/app/lib/ZwaveClient.js:314:16)
at ZWaveNode.emit (events.js:326:22)
at ZWaveNode.EventEmitter.emit (domain.js:483:12)
at ZWaveNode.interview (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:989:8)
at Driver.interviewNode (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:860:10)
Let me check this
{
"type":"climate",
"object_id":"climate",
"discovery_payload":{
"min_temp":5,
"max_temp":40,
"temp_step":0.5,
"modes":[
"off",
"heat",
"cool",
"auto"
],
"mode_state_topic":"64-0-mode",
"mode_state_template":"{{ value_json.value }}",
"mode_command_topic":"64-0-mode/set",
"current_temperature_topic":"49-0-Air temperature",
"current_temperature_template":"{{ value_json.value }}",
"temperature_state_topic":true,
"temperature_state_template":"{{ value_json.value }}",
"temperature_command_topic":true
},
"values":[
"49-0-Air temperature",
"64-0-mode"
],
"mode_map":{
"off":0,
"heat":1,
"cool":2,
"auto":3
},
"setpoint_topic":{
}
}
@bachya What kind of thermostat is this? Does it have a setpoint topic? COuld you send me the export of node from UI control panel?
The problem is that there are no setpoints detected here
@robertsLando This is an Building36 T-10 (more commonly marketed as an Alarm.com T-2000) – here is the corresponding entry from the OpenZWave database if it's useful: https://github.com/OpenZWave/open-zwave/blob/master/config/building36/b36-t10.xml
As you can see from command class 67, there should be two setpoints: one for heating and one for cooling. I know this doesn't help you directly, but when I use the OZW integration in Home Assistant, these setpoints are seen and function.
Here's an export of Node 2:
JSON
{
"id": 2,
"deviceId": "400-1-1",
"manufacturer": "Building 36 Technologies",
"manufacturerId": 400,
"productType": 1,
"productId": 1,
"name": "",
"loc": "",
"values": [
{
"id": "2-49-0-Air temperature",
"nodeId": 2,
"commandClass": 49,
"commandClassName": "Multilevel Sensor",
"endpoint": 0,
"property": "Air temperature",
"propertyName": "Air temperature",
"type": "number",
"readable": true,
"writeable": false,
"label": "Air temperature",
"ccSpecific": {
"sensorType": 1,
"scale": 0
},
"unit": "°C",
"list": false,
"value": 20.92,
"lastUpdate": 1610387612700,
"newValue": 20.92
},
{
"id": "2-49-0-Humidity",
"nodeId": 2,
"commandClass": 49,
"commandClassName": "Multilevel Sensor",
"endpoint": 0,
"property": "Humidity",
"propertyName": "Humidity",
"type": "number",
"readable": true,
"writeable": false,
"label": "Humidity",
"ccSpecific": {
"sensorType": 5,
"scale": 0
},
"unit": "%",
"list": false,
"value": 29,
"lastUpdate": 1610387617352,
"newValue": 29
},
{
"id": "2-64-0-mode",
"nodeId": 2,
"commandClass": 64,
"commandClassName": "Thermostat Mode",
"endpoint": 0,
"property": "mode",
"propertyName": "mode",
"type": "number",
"readable": true,
"writeable": true,
"label": "Thermostat mode",
"min": 0,
"max": 31,
"list": true,
"states": [
{
"text": "Off",
"value": 0
},
{
"text": "Heat",
"value": 1
},
{
"text": "Cool",
"value": 2
},
{
"text": "Auto",
"value": 3
}
],
"value": 1,
"lastUpdate": 1610387643249,
"newValue": 1
},
{
"id": "2-64-0-manufacturerData",
"nodeId": 2,
"commandClass": 64,
"commandClassName": "Thermostat Mode",
"endpoint": 0,
"property": "manufacturerData",
"propertyName": "manufacturerData",
"type": "any",
"readable": true,
"writeable": true,
"label": "manufacturerData (property)",
"list": false,
"lastUpdate": 1610387608645
},
{
"id": "2-66-0-state",
"nodeId": 2,
"commandClass": 66,
"commandClassName": "Thermostat Operating State",
"endpoint": 0,
"property": "state",
"propertyName": "state",
"type": "number",
"readable": true,
"writeable": false,
"label": "Operating state",
"min": 0,
"max": 255,
"list": true,
"states": [
{
"text": "Idle",
"value": 0
},
{
"text": "Heating",
"value": 1
},
{
"text": "Cooling",
"value": 2
},
{
"text": "Fan Only",
"value": 3
},
{
"text": "Pending Heat",
"value": 4
},
{
"text": "Pending Cool",
"value": 5
},
{
"text": "Vent/Economizer",
"value": 6
},
{
"text": "Aux Heating",
"value": 7
},
{
"text": "2nd Stage Heating",
"value": 8
},
{
"text": "2nd Stage Cooling",
"value": 9
},
{
"text": "2nd Stage Aux Heat",
"value": 10
},
{
"text": "3rd Stage Aux Heat",
"value": 11
}
],
"value": 0,
"lastUpdate": 1610387647428,
"newValue": 0
},
{
"id": "2-112-0-1",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 1,
"propertyName": "HVAC System Type",
"type": "number",
"readable": true,
"writeable": true,
"description": "Configures the type of heating system used.",
"label": "HVAC System Type",
"default": 0,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "Normal",
"value": 0
},
{
"text": "Heat Pump",
"value": 1
}
],
"value": 0,
"lastUpdate": 1610387678451,
"newValue": 0
},
{
"id": "2-112-0-2",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 2,
"propertyName": "Number of Heat Stages",
"type": "number",
"readable": true,
"writeable": true,
"description": "Heat Stages 0-3 Default is 2.",
"label": "Number of Heat Stages",
"default": 2,
"min": 0,
"max": 3,
"list": false,
"value": 2,
"lastUpdate": 1610387683081,
"newValue": 2
},
{
"id": "2-112-0-3",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 3,
"propertyName": "Number of Cool Stages",
"type": "number",
"readable": true,
"writeable": true,
"description": "Cool Stages 0-2 Default is 2.",
"label": "Number of Cool Stages",
"default": 2,
"min": 0,
"max": 2,
"list": false,
"value": 2,
"lastUpdate": 1610387696443,
"newValue": 2
},
{
"id": "2-112-0-4",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 4,
"propertyName": "Heat Fuel Type",
"type": "number",
"readable": true,
"writeable": true,
"description": "Choose type of fuel. Reality - whether unit is boiler vs forced air.",
"label": "Heat Fuel Type",
"default": 1,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "Fossil Fuel",
"value": 0
},
{
"text": "Electric",
"value": 1
}
],
"value": 1,
"lastUpdate": 1610387701461,
"newValue": 1
},
{
"id": "2-112-0-5",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 5,
"propertyName": "Calibration Temperature",
"type": "number",
"readable": true,
"writeable": true,
"description": "Calibration Temperature Range (in deg. F) Precision is tenths of a degree.",
"label": "Calibration Temperature",
"default": 0,
"min": -100,
"max": 100,
"list": false,
"value": 704643072,
"lastUpdate": 1610387703263,
"newValue": 704643072
},
{
"id": "2-112-0-6",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 6,
"propertyName": "Overshoot",
"type": "number",
"readable": true,
"writeable": true,
"description": "Overshoot Range (in deg. F) Precision is tenths of a degree. Default is 5.",
"label": "Overshoot",
"default": 5,
"min": 0,
"max": 30,
"list": false,
"value": 704644352,
"lastUpdate": 1610387705113,
"newValue": 704644352
},
{
"id": "2-112-0-7",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 7,
"propertyName": "Swing",
"type": "number",
"readable": true,
"writeable": true,
"description": "Swing Range (in deg. F) Precision is tenths of a degree.",
"label": "Swing",
"default": 0,
"min": 0,
"max": 30,
"list": false,
"value": 704643072,
"lastUpdate": 1610387706953,
"newValue": 704643072
},
{
"id": "2-112-0-8",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 8,
"propertyName": "Heat Staging Delay",
"type": "number",
"readable": true,
"writeable": true,
"description": "Heat Staging Delay (in min)",
"label": "Heat Staging Delay",
"default": 10,
"min": 1,
"max": 60,
"list": false,
"value": 10,
"lastUpdate": 1610387712010,
"newValue": 10
},
{
"id": "2-112-0-9",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 9,
"propertyName": "Cool Staging Delay",
"type": "number",
"readable": true,
"writeable": true,
"description": "Cool Staging Delay (in min)",
"label": "Cool Staging Delay",
"default": 10,
"min": 1,
"max": 60,
"list": false,
"value": 10,
"lastUpdate": 1610387713965,
"newValue": 10
},
{
"id": "2-112-0-10",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 10,
"propertyName": "Balance Setpoint",
"type": "number",
"readable": true,
"writeable": true,
"description": "Balance Setpont Range (in deg. F) Precision is tenths of a degree.",
"label": "Balance Setpoint",
"default": 350,
"min": 0,
"max": 950,
"list": false,
"value": 704732672,
"lastUpdate": 1610387715833,
"newValue": 704732672
},
{
"id": "2-112-0-11",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 11,
"propertyName": "Recovery Settings",
"type": "number",
"readable": true,
"writeable": true,
"description": "Whether thermostat uses intelligence to try and make the best of energy usage.",
"label": "Recovery Settings",
"default": 1,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "Comfort",
"value": 0
},
{
"text": "Efficient",
"value": 1
}
],
"value": 0,
"lastUpdate": 1610387729267,
"newValue": 0
},
{
"id": "2-112-0-12",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 12,
"propertyName": "Fan Circulation Period",
"type": "number",
"readable": true,
"writeable": true,
"description": "Fan Circulation Period (in min)",
"label": "Fan Circulation Period",
"default": 20,
"min": 10,
"max": 240,
"list": false,
"value": 20,
"lastUpdate": 1610387734301,
"newValue": 20
},
{
"id": "2-112-0-13",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 13,
"propertyName": "Fan Circulation Duty Cycle",
"type": "number",
"readable": true,
"writeable": true,
"description": "Duty Cycle (percentage)",
"label": "Fan Circulation Duty Cycle",
"default": 25,
"min": 0,
"max": 100,
"list": false,
"value": 25,
"lastUpdate": 1610387736171,
"newValue": 25
},
{
"id": "2-112-0-14",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 14,
"propertyName": "Fan Purge Time",
"type": "number",
"readable": true,
"writeable": true,
"description": "Purge Time (in s)",
"label": "Fan Purge Time",
"default": 60,
"min": 1,
"max": 3600,
"list": false,
"value": 60,
"lastUpdate": 1610387738112,
"newValue": 60
},
{
"id": "2-112-0-15",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 15,
"propertyName": "Maximum Heat Setpoint",
"type": "number",
"readable": true,
"writeable": true,
"description": "Max Heat Setpoint Range (in deg. F) Precision is tenths of a degree.",
"label": "Maximum Heat Setpoint",
"default": 950,
"min": 350,
"max": 950,
"list": false,
"value": 704886272,
"lastUpdate": 1610387750369,
"newValue": 704886272
},
{
"id": "2-112-0-16",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 16,
"propertyName": "Minimum Heat Setpoint",
"type": "number",
"readable": true,
"writeable": true,
"description": "Min Heat Setpoint Range (in deg. F) Precision is tenths of a degree.",
"label": "Minimum Heat Setpoint",
"default": 350,
"min": 350,
"max": 950,
"list": false,
"value": 704732672,
"lastUpdate": 1610387752089,
"newValue": 704732672
},
{
"id": "2-112-0-17",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 17,
"propertyName": "Maximum Cool Setpoint",
"type": "number",
"readable": true,
"writeable": true,
"description": "Max Cool Setpoint Range(in deg. F) Precision is tenths of a degree.",
"label": "Maximum Cool Setpoint",
"default": 950,
"min": 500,
"max": 950,
"list": false,
"value": 704886272,
"lastUpdate": 1610387753813,
"newValue": 704886272
},
{
"id": "2-112-0-18",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 18,
"propertyName": "Minimum Cool Setpoint",
"type": "number",
"readable": true,
"writeable": true,
"description": "Min Cool Setpoint (in deg. F) Precision is tenths of a degree.",
"label": "Minimum Cool Setpoint",
"default": 500,
"min": 500,
"max": 950,
"list": false,
"value": 704771072,
"newValue": 704771072
},
{
"id": "2-112-0-19",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 19,
"propertyName": "Thermostat Lock",
"type": "number",
"readable": true,
"writeable": true,
"description": "Lock out physical thermostat controls.",
"label": "Thermostat Lock",
"default": 0,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "Disabled",
"value": 0
},
{
"text": "Enabled",
"value": 1
}
],
"value": 0,
"newValue": 0
},
{
"id": "2-112-0-20",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 20,
"propertyName": "Compressor Delay",
"type": "number",
"readable": true,
"writeable": true,
"description": "Compressor Delay (in min)",
"label": "Compressor Delay",
"default": 5,
"min": 0,
"max": 60,
"list": false,
"value": 5,
"newValue": 5
},
{
"id": "2-112-0-21",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 21,
"propertyName": "Demand Response Period",
"type": "number",
"readable": true,
"writeable": true,
"description": "Demand Response Period (in min)",
"label": "Demand Response Period",
"default": 10,
"min": 10,
"max": 240,
"list": false,
"value": 10,
"newValue": 10
},
{
"id": "2-112-0-23",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 23,
"propertyName": "Temperature Display Units",
"type": "number",
"readable": true,
"writeable": true,
"description": "Celsius or Farenheit for temperature display.",
"label": "Temperature Display Units",
"default": 1,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "Celsius",
"value": 0
},
{
"text": "Farenheit",
"value": 1
}
],
"value": 1,
"newValue": 1
},
{
"id": "2-112-0-24",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 24,
"propertyName": "HVAC Modes Enabled",
"type": "number",
"readable": true,
"writeable": true,
"description": "Which heating/cooling modes are available.",
"label": "HVAC Modes Enabled",
"default": 15,
"min": 3,
"max": 31,
"list": true,
"states": [
{
"text": "Off, Heat",
"value": 3
},
{
"text": "Off, Cool",
"value": 5
},
{
"text": "Off, Heat, Cool",
"value": 7
},
{
"text": "Off, Heat, Cool, Auto (Default)",
"value": 15
},
{
"text": "Off, Heat, Emergency Heat",
"value": 19
},
{
"text": "Off, Heat, Cool, Emergency Heat",
"value": 23
},
{
"text": "Off, Heat, Cool, Auto, Emergency Heat",
"value": 31
}
],
"value": 15,
"newValue": 15
},
{
"id": "2-112-0-25",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 25,
"propertyName": "Configurable Terminal Setting",
"type": "number",
"readable": true,
"writeable": true,
"description": "Changes control of configurable terminal",
"label": "Configurable Terminal Setting",
"default": 0,
"min": 0,
"max": 3,
"list": true,
"states": [
{
"text": "Disabled",
"value": 0
},
{
"text": "W3",
"value": 1
},
{
"text": "H",
"value": 2
},
{
"text": "DH",
"value": 3
}
],
"value": 0,
"newValue": 0
},
{
"id": "2-112-0-26",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 26,
"propertyName": "Power Source",
"type": "number",
"readable": true,
"writeable": true,
"description": "Which source of power is utilized.",
"label": "Power Source",
"default": 0,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "Battery",
"value": 0
},
{
"text": "C-Wire",
"value": 1
}
],
"value": 1,
"newValue": 1
},
{
"id": "2-112-0-27",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 27,
"propertyName": "Battery Alert Threshold Low",
"type": "number",
"readable": true,
"writeable": true,
"description": "Battery Alert Range (percentage)",
"label": "Battery Alert Threshold Low",
"default": 30,
"min": 0,
"max": 100,
"list": false,
"value": 30,
"newValue": 30
},
{
"id": "2-112-0-28",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 28,
"propertyName": "Battery Alert Threshold Very Low",
"type": "number",
"readable": true,
"writeable": true,
"description": "Very Low Battery Alert Range (percentage)",
"label": "Battery Alert Threshold Very Low",
"default": 15,
"min": 0,
"max": 100,
"list": false,
"value": 15,
"newValue": 15
},
{
"id": "2-112-0-30",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 30,
"propertyName": "Remote Temperature Enable",
"type": "number",
"readable": true,
"writeable": true,
"description": "Enables remote temperature sensor instead of built-in.",
"label": "Remote Temperature Enable",
"default": 0,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "Disabled",
"value": 0
},
{
"text": "Enabled",
"value": 1
}
],
"value": 0,
"newValue": 0
},
{
"id": "2-112-0-31",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 31,
"propertyName": "Heat Differential",
"type": "number",
"readable": true,
"writeable": true,
"description": "Heat Differential (in deg. F) Precision is tenths of a degree.",
"label": "Heat Differential",
"default": 30,
"min": 10,
"max": 100,
"list": false,
"value": 704650752,
"newValue": 704650752
},
{
"id": "2-112-0-32",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 32,
"propertyName": "Cool Differential",
"type": "number",
"readable": true,
"writeable": true,
"description": "Cool Differential (in deg. F) Precision is tenths of a degree.",
"label": "Cool Differential",
"default": 30,
"min": 10,
"max": 100,
"list": false,
"value": 704650752,
"newValue": 704650752
},
{
"id": "2-112-0-33",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 33,
"propertyName": "Temperature Reporting Threshold",
"type": "number",
"readable": true,
"writeable": true,
"description": "Temperature Reporting Range (in deg. F) Precision is tenths of a degree.",
"label": "Temperature Reporting Threshold",
"default": 10,
"min": 5,
"max": 20,
"list": false,
"value": 704645632,
"newValue": 704645632
},
{
"id": "2-112-0-34",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 34,
"propertyName": "O/B Select",
"type": "number",
"readable": true,
"writeable": true,
"description": "Configuration of O/B terminal.",
"label": "O/B Select",
"default": 1,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "O/B as B",
"value": 0
},
{
"text": "O/B as O",
"value": 1
}
],
"value": 1,
"newValue": 1
},
{
"id": "2-112-0-35",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 35,
"propertyName": "Z-Wave Echo Association Reports",
"type": "number",
"readable": true,
"writeable": true,
"description": "Enable/Disabled Echo Assoc. Reports.",
"label": "Z-Wave Echo Association Reports",
"default": 0,
"min": 0,
"max": 1,
"list": true,
"states": [
{
"text": "Disabled",
"value": 0
},
{
"text": "Enabled",
"value": 1
}
],
"value": 0,
"newValue": 0
},
{
"id": "2-112-0-22",
"nodeId": 2,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 22,
"propertyName": "Demand Response Duty Cycle",
"type": "number",
"readable": true,
"writeable": true,
"description": "Demand Response Duty Cycle (percentage)",
"label": "Demand Response Duty Cycle",
"default": 25,
"min": 0,
"max": 100,
"list": false,
"newValue": 25,
"value": 25
},
{
"id": "2-114-0-manufacturerId",
"nodeId": 2,
"commandClass": 114,
"commandClassName": "Manufacturer Specific",
"endpoint": 0,
"property": "manufacturerId",
"propertyName": "manufacturerId",
"type": "number",
"readable": true,
"writeable": false,
"label": "Manufacturer ID",
"min": 0,
"max": 65535,
"list": false,
"value": 400,
"lastUpdate": 1610387608666,
"newValue": 400
},
{
"id": "2-114-0-productType",
"nodeId": 2,
"commandClass": 114,
"commandClassName": "Manufacturer Specific",
"endpoint": 0,
"property": "productType",
"propertyName": "productType",
"type": "number",
"readable": true,
"writeable": false,
"label": "Product type",
"min": 0,
"max": 65535,
"list": false,
"value": 1,
"lastUpdate": 1610387608666,
"newValue": 1
},
{
"id": "2-114-0-productId",
"nodeId": 2,
"commandClass": 114,
"commandClassName": "Manufacturer Specific",
"endpoint": 0,
"property": "productId",
"propertyName": "productId",
"type": "number",
"readable": true,
"writeable": false,
"label": "Product ID",
"min": 0,
"max": 65535,
"list": false,
"value": 1,
"lastUpdate": 1610387608667,
"newValue": 1
},
{
"id": "2-128-0-level",
"nodeId": 2,
"commandClass": 128,
"commandClassName": "Battery",
"endpoint": 0,
"property": "level",
"propertyName": "level",
"type": "number",
"readable": true,
"writeable": false,
"label": "Battery level",
"min": 0,
"max": 100,
"unit": "%",
"list": false,
"value": 0,
"lastUpdate": 1610387608667,
"newValue": 0
},
{
"id": "2-128-0-isLow",
"nodeId": 2,
"commandClass": 128,
"commandClassName": "Battery",
"endpoint": 0,
"property": "isLow",
"propertyName": "isLow",
"type": "boolean",
"readable": true,
"writeable": false,
"label": "Low battery level",
"list": false,
"value": false,
"lastUpdate": 1610387608668,
"newValue": false
},
{
"id": "2-134-0-libraryType",
"nodeId": 2,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "libraryType",
"propertyName": "libraryType",
"type": "any",
"readable": true,
"writeable": false,
"label": "Library type",
"list": false,
"value": 3,
"lastUpdate": 1610387608668,
"newValue": 3
},
{
"id": "2-134-0-protocolVersion",
"nodeId": 2,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "protocolVersion",
"propertyName": "protocolVersion",
"type": "any",
"readable": true,
"writeable": false,
"label": "Z-Wave protocol version",
"list": false,
"value": "4.54",
"lastUpdate": 1610387608669,
"newValue": "4.54"
},
{
"id": "2-134-0-firmwareVersions",
"nodeId": 2,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "firmwareVersions",
"propertyName": "firmwareVersions",
"type": "any",
"readable": true,
"writeable": false,
"label": "Z-Wave chip firmware versions",
"list": false,
"value": [
"1.20"
],
"lastUpdate": 1610387608669,
"newValue": [
"1.20"
]
},
{
"id": "2-134-0-hardwareVersion",
"nodeId": 2,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "hardwareVersion",
"propertyName": "hardwareVersion",
"type": "any",
"readable": true,
"writeable": false,
"label": "Z-Wave chip hardware version",
"list": false,
"lastUpdate": 1610387608670
}
],
"groups": [
{
"text": "Lifeline",
"value": 1,
"maxNodes": 4,
"isLifeline": true,
"multiChannel": false
}
],
"neighbors": [
1,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
3,
5,
6,
7
],
"ready": true,
"available": true,
"hassDevices": {
"sensor_temperature_air": {
"type": "sensor",
"object_id": "temperature_air",
"discovery_payload": {
"value_template": "{{ value_json.value }}",
"device_class": "temperature",
"unit_of_measurement": "°C",
"state_topic": "zwavejs2mqtt/nodeID_2/49/0/Air_temperature",
"json_attributes_topic": "zwavejs2mqtt/nodeID_2/49/0/Air_temperature",
"device": {
"identifiers": [
"zwavejs2mqtt_0xc8341d86_node2"
],
"manufacturer": "Building 36 Technologies",
"model": "Alarm.com Smart Thermostat (ADC-T 2000)",
"name": "nodeID_2",
"sw_version": "1.20"
},
"name": "-nodeID_2_temperature_air",
"unique_id": "zwavejs2mqtt_0xc8341d86_2-49-0-Air temperature"
},
"discoveryTopic": "sensor/nodeID_2/temperature_air/config",
"values": [
"49-0-Air temperature"
],
"persistent": false,
"ignoreDiscovery": false
},
"sensor_humidity_air": {
"type": "sensor",
"object_id": "humidity_air",
"discovery_payload": {
"value_template": "{{ value_json.value }}",
"device_class": "humidity",
"unit_of_measurement": "%",
"state_topic": "zwavejs2mqtt/nodeID_2/49/0/Humidity",
"json_attributes_topic": "zwavejs2mqtt/nodeID_2/49/0/Humidity",
"device": {
"identifiers": [
"zwavejs2mqtt_0xc8341d86_node2"
],
"manufacturer": "Building 36 Technologies",
"model": "Alarm.com Smart Thermostat (ADC-T 2000)",
"name": "nodeID_2",
"sw_version": "1.20"
},
"name": "-nodeID_2_humidity_air",
"unique_id": "zwavejs2mqtt_0xc8341d86_2-49-0-Humidity"
},
"discoveryTopic": "sensor/nodeID_2/humidity_air/config",
"values": [
"49-0-Humidity"
],
"persistent": false,
"ignoreDiscovery": false
},
"sensor_battery_level": {
"type": "sensor",
"object_id": "battery_level",
"discovery_payload": {
"value_template": "{{ value_json.value }}",
"device_class": "battery",
"unit_of_measurement": "%",
"state_topic": "zwavejs2mqtt/nodeID_2/128/0/level",
"json_attributes_topic": "zwavejs2mqtt/nodeID_2/128/0/level",
"device": {
"identifiers": [
"zwavejs2mqtt_0xc8341d86_node2"
],
"manufacturer": "Building 36 Technologies",
"model": "Alarm.com Smart Thermostat (ADC-T 2000)",
"name": "nodeID_2",
"sw_version": "1.20"
},
"name": "-nodeID_2_battery_level",
"unique_id": "zwavejs2mqtt_0xc8341d86_2-128-0-level"
},
"discoveryTopic": "sensor/nodeID_2/battery_level/config",
"values": [
"128-0-level"
],
"persistent": false,
"ignoreDiscovery": false
},
"binary_sensor_battery_islow": {
"type": "binary_sensor",
"object_id": "battery_islow",
"discovery_payload": {
"payload_on": true,
"payload_off": false,
"value_template": "{{ value_json.value }}",
"device_class": "battery",
"state_topic": "zwavejs2mqtt/nodeID_2/128/0/isLow",
"json_attributes_topic": "zwavejs2mqtt/nodeID_2/128/0/isLow",
"device": {
"identifiers": [
"zwavejs2mqtt_0xc8341d86_node2"
],
"manufacturer": "Building 36 Technologies",
"model": "Alarm.com Smart Thermostat (ADC-T 2000)",
"name": "nodeID_2",
"sw_version": "1.20"
},
"name": "-nodeID_2_battery_islow",
"unique_id": "zwavejs2mqtt_0xc8341d86_2-128-0-isLow"
},
"discoveryTopic": "binary_sensor/nodeID_2/battery_islow/config",
"values": [
"128-0-isLow"
],
"persistent": false,
"ignoreDiscovery": false
}
},
"failed": false,
"lastActive": 1610387753813,
"interviewCompleted": false,
"firmwareVersion": "1.20",
"isBeaming": true,
"isSecure": false,
"keepAwake": false,
"maxBaudRate": null,
"isRouting": true,
"isFrequentListening": false,
"isListening": true,
"status": "Alive",
"interviewStage": "RestartFromCache",
"productLabel": "ADC-T 2000",
"productDescription": "Alarm.com Smart Thermostat",
"zwaveVersion": 4,
"deviceClass": {
"basic": 4,
"generic": 8,
"specific": 6
},
"hexId": "0x0190-0x0001-0x0001",
"_name": "NodeID_2"
}
@bachya Just for info but how do you change the setpoint with this device?? Do you use the configuration values?
I don't see any valueId matching command class setpoint here, this is why the discovery doesn't work as I need at least one setpoint
@robertsLando Here's what happens when I adjust the temperature in OZW (via MQTT). This may or may not answer your question (how I change the setpoint), so let me know if I'm off base.
When I adjust the thermostat in Home Assistant (which is currently set to heat) from 70°F to 69°F:
Affected MQTT topic: OpenZWave/1/node/2/instance/1/commandclass/67/value/281475015557138/
Payload before the change:
{
"Label": "Heating 1",
"Value": 70.0,
"Units": "F",
"ValueSet": true,
"ValuePolled": false,
"ChangeVerified": false,
"Min": 0,
"Max": 0,
"Type": "Decimal",
"Instance": 1,
"CommandClass": "COMMAND_CLASS_THERMOSTAT_SETPOINT",
"Index": 1,
"Node": 2,
"Genre": "User",
"Help": "Set the Thermostat target heating temperature",
"ValueIDKey": 281475015557138,
"ReadOnly": false,
"WriteOnly": false,
"Event": "valueChanged",
"TimeStamp": 1610460000
}
Payload after the change:
{
"Label": "Heating 1",
"Value": 69.0,
"Units": "F",
"ValueSet": true,
"ValuePolled": false,
"ChangeVerified": false,
"Min": 0,
"Max": 0,
"Type": "Decimal",
"Instance": 1,
"CommandClass": "COMMAND_CLASS_THERMOSTAT_SETPOINT",
"Index": 1,
"Node": 2,
"Genre": "User",
"Help": "Set the Thermostat target heating temperature",
"ValueIDKey": 281475015557138,
"ReadOnly": false,
"WriteOnly": false,
"Event": "valueChanged",
"TimeStamp": 1610471279
}
Note that the Value and TimeStamp keys change values.
I do see that command class 67 is not represented in the z2m node dump... I wonder if OZW is only able to know about it based on its own internal database?
One other nugget of information: I can't tell for sure, or say accurately when I've seen it occur, but I _think_ that in the past, I've seen the climate device randomly appear in z2m, but only after I've manually interacted with the thermostat.
@AlCalzone I think this may be a device issue that is not reporting some supported CC, in this case the Setpoint CC.
@AlCalzone if you check the linked device manual thete are some Compatibility flags, for alla values
I'll need to see a log from zwave-js with a complete interview (after refreshNode)
@AlCalzone Here is a complete, "silly"-level zwave-js log (complete startup and interview). Reminder that Node 2 is the one we're interested in.
The problem lies entirely elsewhere. The device reports a wide range of CCs, including Thermostat Setpoint, it reports that it supports Heating and Cooling setpoints.
But... it sends an invalid response to the ThermostatSetpointCCCapabilitiesGet command.
17:54:26.660 DRIVER Message with invalid data received. Dropping it:
0x010d0004000207430a012a232a5fc7
which causes the interview of the ThermostatSetpointCC to be aborted. The payload of the response should look like this:

but the min and max value fields are each one byte too short and the precision doesn't really make sense.
What we're receiving for the capabilities of the heating setpoint is [42, 35, 42, 95], which translates to
Thanks for this info, @AlCalzone. Probably too early to tell, but does this indicate a permanent incompatibility that will prevent zwave-js from supporting this device? Or more debugging to do?
As always, I'm at your disposal – let me know how I can help.
I'll need to figure out what to do with this. Probably just skip the part with the bugged responses.
@AlCalzone So does an error in the interview stop all the interview?
Not if I ignore the timeout. That seems to happen in this case but I am not sure why that causes the problems you're seeing
@bachya https://github.com/zwave-js/node-zwave-js/pull/1505 should stop the interview from aborting.
The invalid command still won't be parsed, but that isn't critical at least.
Thanks for the update, @AlCalzone. I've installed that PR into the dev z2m container and am starting fresh; will report back shortly.
Alright, after a complete startup and interview, z2m shows the climate Home Assistant device:

...with this device JSON:
{
"type": "climate",
"object_id": "climate",
"discovery_payload": {
"min_temp": 5,
"max_temp": 40,
"temp_step": 0.5,
"modes": [
"off",
"heat",
"cool",
"auto"
],
"mode_state_topic": "zwavejs2mqtt/nodeID_2/64/0/mode",
"mode_state_template": "{{ {0: \"off\",1: \"heat\",2: \"cool\",3: \"auto\"}[value_json.value] | default('off') }}",
"mode_command_topic": "zwavejs2mqtt/nodeID_2/64/0/mode/set",
"current_temperature_topic": "zwavejs2mqtt/nodeID_2/49/0/Air_temperature",
"current_temperature_template": "{{ value_json.value }}",
"temperature_state_topic": "zwavejs2mqtt/nodeID_2/67/0/setpoint/1",
"temperature_state_template": "{{ value_json.value }}",
"temperature_command_topic": "zwavejs2mqtt/nodeID_2/67/0/setpoint/1/set",
"temperature_unit": "C",
"precision": 0.1,
"device": {
"identifiers": [
"zwavejs2mqtt_0xc8341d86_node2"
],
"manufacturer": "Building 36 Technologies",
"model": "Alarm.com Smart Thermostat (ADC-T 2000)",
"name": "nodeID_2",
"sw_version": "1.20"
},
"name": "nodeID_2_climate",
"unique_id": "zwavejs2mqtt_0xc8341d86_Node2_climate"
},
"values": [
"49-0-Air temperature",
"64-0-mode",
"67-0-setpoint-1",
"67-0-setpoint-2"
],
"mode_map": {
"off": 0,
"heat": 1,
"cool": 2,
"auto": 3
},
"setpoint_topic": {
"1": "67-0-setpoint-1",
"2": "67-0-setpoint-2"
},
"default_setpoint": "67-0-setpoint-1",
"discoveryTopic": "climate/nodeID_2/climate/config",
"persistent": false,
"ignoreDiscovery": false,
"id": "climate_climate"
}
When I preview the entity in Home Assistant, I notice a couple of other oddities – not sure if they are related to zwave-js or z2m, so feel free to punt me elsewhere if needed.
Latest logs for both zwave-js and z2m: https://gist.github.com/bachya/88576de4eaf119232f447c69de956d49
My Home Assistant climate entity doesn't give me the option to set my fan mode
Because it's not supported yet in discovery
Okay so, everything works on the zwave-js side? Oh, right... the weird temperatures.
I'll need the zwave-js log only please, debug level, attached here as a file.
My Home Assistant climate entity doesn't give me the option to set my fan mode
That isn't supported in zwave-js yet
@AlCalzone Here's the zwave-js log: https://gist.githubusercontent.com/bachya/88576de4eaf119232f447c69de956d49/raw/e6ebf60fa00134eaacf856a2e1a8d4da419c934b/zwavejs_1.log
15:29:09.273 DRIVER « [Node 002] [REQ] [ApplicationCommand]
└─[ThermostatSetpointCCReport]
setpoint type: Heating
value: 70 °F
...
15:29:27.450 DRIVER « [Node 002] [REQ] [ApplicationCommand]
└─[ThermostatSetpointCCReport]
setpoint type: Cooling
value: 77 °F
Looks like there's some conversion happening outside zwave-js.
That first entry is correct: at that point in time, my thermostat was set to 70°F. @robertsLando Is it possible that the strange representation of 158°F in Home Assistant lies with z2m?
BTW: That's two differeent setpoints, the second one is for the "Cooling" capability. (a bit weird though that it is higher than "Heating").
@robertsLando your problem :) My side seems to be working now.
Is it possible that the strange representation of 158°F in Home Assistant lies with z2m
temperature_units ? @bachya
Guess that should be auto-detected from the device?
Is it possible that the strange representation of 158°F in Home Assistant lies with z2m?
This could be caused by the temperature_units set on the climate discovered.
@robertsLando I'm unclear on your question. I don't think I've set units anywhere within z2m. Are you asking that my units are in Home Assistant?
I don't think I've set units anywhere within z2m
Them are set in the discovery payload sent to hass. IMO what happens here is that the discovety payload sent them with the units C, but the value sent is in F and hass, thinking the value that is coming is in C, converts it to F giving you that
Indeed, 158 °F are 70°C
What could be wrong here is that your temperature valueId (49-0-Air temperature) has C as units instead of F. That's strange as the reported value in zwave logs prints F. To fix this you could manually edit the climate discovery payload by set F in the temperature units, and press store to keep the configuration persistent (otherwise an application restart would override your changes on the discovery payload). Rember that if you change the node name/location or else that changes the topics you need to remove the devices from persistence in order to make them rediscovered with the updated topics
Got it. I'll test this morning and get back to you.
Apologies for the delay; finally got around to this. Once again, started with a from-scratch installation; my details below.
After discovery completed, the climate device showed up in Home Assistant:

Key details:
max_temp allowed by the thermostat; it almost seems like it's trying to get to the Celsius value like before (152.9°F vs. 158°F from last time), but is being limited by max_temp.I followed @robertsLando's instructions and modified the HASS Device JSON so that the temperature_unit was F. After a Home Assistant restart, the climate device looked like this:

Key details:
max_temp, but this time, in Celsius. Once again, I'm assuming it's trying to show something larger, but can't because of max_temp.So, I have no clue what's going on here. 😂
Once again, here are silly-level logs from this fresh run:
@bachya
I have no clue :man_shrugging: What are your default scales settings in hass? C or F?
@robertsLando Imperial (F).
The target temperature once again equals the max_temp, but this time, in Celsius. Once again, I'm assuming it's trying to show something larger, but can't because of max_temp.
Did you try to also change this in the discovery payload?
I did and after a HASS restart, that new max value does lock in.
Sorry but I have no clue about what's going on here. What I can suggest is to enable the zwavejs server from settings and give a try to the new hass zwavejs addon
No worries, @robertsLando. I tried the new home Assistant integration (using the websocket) and everything worked fine, so I'll go in that direction.
@bachya Perfect glad it worked and sorry for the waste of time debugging this here