@Caseda or anyone else who knows Z-Wave development.
Hey, Z-Wave Genius,
Question: I have updated the BeNext app to SDK3.
It used the old version of homey-zwavedriver, which i upgraded to the newest version of Home - Homey ZWaveDriver (athombv.github.io).
Now, for me, it works fine, but i only have the window/door sensor.
Yesterday i pushed to live, and this morning, i got a support ticket for the heating_control.
In it’s diagnostic tho, i also found the same errors for the energy_switch_plus.
Which i find very wierd, because it’s source, the coding itself at least, is just this:
const ZwaveDevice = require('homey-zwavedriver').ZwaveDevice;
class EnergySwitchDevice extends ZwaveDevice {
onNodeInit(){
this.enableDebug();
this.printNode();
this.registerCapability('onoff', 'SWITCH_BINARY');
this.registerCapability('onoff', 'BASIC_SET');
this.registerCapability('measure_power', 'METER');
this.registerCapability('meter_power', 'METER');
}
}
module.exports = EnergySwitchDevice;
While, straingly enough, the window-sensor does work, while it’s a lott more complicated:
class DoorSensorDevice extends ZwaveDevice {
onNodeInit() {
//this.enableDebug();
//this.printNode();
this.registerCapability('alarm_contact', 'BASIC');
this.registerCapability('alarm_contact', 'SENSOR_BINARY');
this.registerCapability('alarm_generic', 'ALARM', {
get: 'ALARM_GET',
getParser: () => ({
'Alarm Type': 2,
}),
report: 'ALARM_REPORT',
reportParser: report => {
if (report &&
report.hasOwnProperty('Alarm Type') &&
report['Alarm Type'] === 2 &&
report.hasOwnProperty('Alarm Level')) {
return report['Alarm Level'] === 255;
}
return null;
}
});
this.registerCapability('alarm_tamper', 'ALARM', {
get: 'ALARM_GET',
getParser: () => ({
'Alarm Type': 3,
}),
report: 'ALARM_REPORT',
reportParser: report => {
if (report &&
report.hasOwnProperty('Alarm Type') &&
report['Alarm Type'] === 3 &&
report.hasOwnProperty('Alarm Level')) {
return report['Alarm Level'] === 255;
}
return null;
}
});
this.registerCapability('measure_temperature', 'SENSOR_MULTILEVEL');
this.registerCapability('measure_battery', 'BATTERY');
this.registerCapability('alarm_battery', 'BATTERY');
}
}
Here is part of the diagnostic (stderr is at the bottom):
User Message:
Heating Control
---- stdout ----
[log] 2023-02-14 06:35:53 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] [dbg] _onReport() -> measure_temperature, SENSOR_MULTILEVEL -> parsed payload: 15.96
[log] 2023-02-14 06:35:53 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] [dbg] _onReport() -> measure_temperature.outside, SENSOR_MULTILEVEL -> parsed payload: 15.96
[log] 2023-02-14 06:38:53 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: [
{ value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
{
'Sensor Type (Raw)': ,
'Sensor Type': 'Temperature (version 1)',
'Level (Raw)': ,
Level: { Size: 4, Scale: 0, Precision: 2 },
'Sensor Value (Raw)': ,
'Sensor Value': ,
'Sensor Value (Parsed)': 16.08
},
22
]
[log] 2023-02-14 06:38:53 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] [dbg] _onReport() -> measure_temperature, SENSOR_MULTILEVEL -> parsed payload: 16.08
[log] 2023-02-14 06:38:53 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] [dbg] _onReport() -> measure_temperature.outside, SENSOR_MULTILEVEL -> parsed payload: 16.08
[log] 2023-02-14 06:42:53 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: [
{ value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
{
'Sensor Type (Raw)': ,
'Sensor Type': 'Temperature (version 1)',
'Level (Raw)': ,
Level: { Size: 4, Scale: 0, Precision: 2 },
'Sensor Value (Raw)': ,
'Sensor Value': ,
'Sensor Value (Parsed)': 16.2
},
22
]
[log] 2023-02-14 06:42:53 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] [dbg] _onReport() -> measure_temperature, SENSOR_MULTILEVEL -> parsed payload: 16.2
[log] 2023-02-14 06:42:53 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] [dbg] _onReport() -> measure_temperature.outside, SENSOR_MULTILEVEL -> parsed payload: 16.2
[log] 2023-02-14 06:47:12 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] node.CommandClass['COMMAND_CLASS_SENSOR_MULTILEVEL'].on('report') arguments: [
{ value: 5, name: 'SENSOR_MULTILEVEL_REPORT' },
{
'Sensor Type (Raw)': ,
'Sensor Type': 'Temperature (version 1)',
'Level (Raw)': ,
Level: { Size: 4, Scale: 0, Precision: 2 },
'Sensor Value (Raw)': ,
'Sensor Value': ,
'Sensor Value (Parsed)': 16.32
},
22
]
[log] 2023-02-14 06:47:12 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] [dbg] _onReport() -> measure_temperature, SENSOR_MULTILEVEL -> parsed payload: 16.32
[log] 2023-02-14 06:47:12 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] [dbg] _onReport() -> measure_temperature.outside, SENSOR_MULTILEVEL -> parsed payload: 16.32
---- stderr ----
[err] 2023-02-14 05:33:26 [ManagerDrivers] [Driver:built_in_dimmer] [Device:bf182365-2494-4cca-8779-e6e46574207b] CommandClass: BASIC_SET in main node undefined
[err] 2023-02-14 05:33:26 [ManagerDrivers] [Driver:energy_switch_plus] [Device:c51b7283-1cbb-4f54-8806-938ba6f9778a] CommandClass: BASIC_SET in main node undefined
[err] 2023-02-14 05:33:28 [ManagerDrivers] [Driver:energy_switch_plus] [Device:c51b7283-1cbb-4f54-8806-938ba6f9778a] Error: capability get command failed {
capabilityId: 'onoff',
commandClassId: 'SWITCH_BINARY',
parsedPayload: {}
} Error: TRANSMIT_COMPLETE_NO_ACK
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at EnergySwitchDevice._getCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:445:29)
at EnergySwitchDevice._registerCapabilityGet (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:358:14)
at EnergySwitchDevice.registerCapability (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:834:10)
at EnergySwitchDevice.onNodeInit (/drivers/energy_switch_plus/device.js:16:6)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:108:20
at processTicksAndRejections (node:internal/process/task_queues:96:5)
[err] 2023-02-14 05:33:28 [ManagerDrivers] [Driver:energy_switch_plus] [Device:c51b7283-1cbb-4f54-8806-938ba6f9778a] Could not get capability value for capabilityId: onoff Error: TRANSMIT_COMPLETE_NO_ACK
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at EnergySwitchDevice._getCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:445:29)
at EnergySwitchDevice._registerCapabilityGet (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:358:14)
at EnergySwitchDevice.registerCapability (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:834:10)
at EnergySwitchDevice.onNodeInit (/drivers/energy_switch_plus/device.js:16:6)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:108:20
at processTicksAndRejections (node:internal/process/task_queues:96:5)
(node:22603) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
[err] 2023-02-14 05:33:29 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] setCapabilityValue (target_temperature) failed Error: invalid_type_expected_boolean ["Properties1"]["undefined"]
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at HeatingDevice._setCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:511:20)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:533:19
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:534:7
at HeatingDevice._onSetCapabilityValue (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/Device.js:1:2140)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
[err] 2023-02-14 05:33:30 [ManagerDrivers] [Driver:energy_switch_plus] [Device:c51b7283-1cbb-4f54-8806-938ba6f9778a] Error: capability get command failed {
capabilityId: 'measure_power',
commandClassId: 'METER',
parsedPayload: { Properties1: { 'Rate Type': 'Import', Scale: 2 }, 'Scale 2': 0 }
} Error: TRANSMIT_COMPLETE_NO_ACK
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at EnergySwitchDevice._getCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:445:29)
at EnergySwitchDevice._registerCapabilityGet (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:358:14)
at EnergySwitchDevice.registerCapability (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:834:10)
at EnergySwitchDevice.onNodeInit (/drivers/energy_switch_plus/device.js:18:6)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:108:20
at processTicksAndRejections (node:internal/process/task_queues:96:5)
[err] 2023-02-14 05:33:30 [ManagerDrivers] [Driver:energy_switch_plus] [Device:c51b7283-1cbb-4f54-8806-938ba6f9778a] Could not get capability value for capabilityId: measure_power Error: TRANSMIT_COMPLETE_NO_ACK
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at EnergySwitchDevice._getCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:445:29)
at EnergySwitchDevice._registerCapabilityGet (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:358:14)
at EnergySwitchDevice.registerCapability (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:834:10)
at EnergySwitchDevice.onNodeInit (/drivers/energy_switch_plus/device.js:18:6)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:108:20
at processTicksAndRejections (node:internal/process/task_queues:96:5)
[err] 2023-02-14 05:33:35 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] setCapabilityValue (target_temperature) failed Error: invalid_type_expected_boolean ["Properties1"]["undefined"]
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at HeatingDevice._setCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:511:20)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:533:19
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:534:7
at HeatingDevice._onSetCapabilityValue (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/Device.js:1:2140)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
[err] 2023-02-14 05:33:37 [ManagerDrivers] [Driver:energy_switch_plus] [Device:c51b7283-1cbb-4f54-8806-938ba6f9778a] Error: capability get command failed {
capabilityId: 'meter_power',
commandClassId: 'METER',
parsedPayload: { Properties1: { 'Rate Type': 'Import', Scale: 0 }, 'Scale 2': 0 }
} Error: TRANSMIT_COMPLETE_NO_ACK
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at EnergySwitchDevice._getCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:445:29)
at EnergySwitchDevice._registerCapabilityGet (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:358:14)
at EnergySwitchDevice.registerCapability (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:834:10)
at EnergySwitchDevice.onNodeInit (/drivers/energy_switch_plus/device.js:19:6)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:108:20
at processTicksAndRejections (node:internal/process/task_queues:96:5)
[err] 2023-02-14 05:33:37 [ManagerDrivers] [Driver:energy_switch_plus] [Device:c51b7283-1cbb-4f54-8806-938ba6f9778a] Could not get capability value for capabilityId: meter_power Error: TRANSMIT_COMPLETE_NO_ACK
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at EnergySwitchDevice._getCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:445:29)
at EnergySwitchDevice._registerCapabilityGet (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:358:14)
at EnergySwitchDevice.registerCapability (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:834:10)
at EnergySwitchDevice.onNodeInit (/drivers/energy_switch_plus/device.js:19:6)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:108:20
at processTicksAndRejections (node:internal/process/task_queues:96:5)
[err] 2023-02-14 05:34:28 [ManagerDrivers] [Driver:heating_control] [Device:d19d1ea6-b95e-4ee1-8e2c-9ead6ef2af2d] setCapabilityValue (target_temperature) failed Error: invalid_type_expected_boolean ["Properties1"]["undefined"]
at Remote Process
at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/HomeyClient.js:1:312)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/manager/zwave.js:76:30)
at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveNode.js:1:812)
at (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/ZwaveCommandClass.js:1:223)
at HeatingDevice._setCapabilityValue (/node_modules/homey-zwavedriver/lib/ZwaveDevice.js:511:20)
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:533:19
at /node_modules/homey-zwavedriver/lib/ZwaveDevice.js:534:7
at HeatingDevice._onSetCapabilityValue (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v3/lib/Device.js:1:2140)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Any idea why the error about the heating control is there?
setCapabilityValue (target_temperature) failed Error: invalid_type_expected_boolean ["Properties1"]["undefined"]