[APP][Pro] BeNext - BeNext devices for Homey

The BeNext App has been transfered to me, and will be updated to SDK3 shortly.

This will be it’s Forum Topic with information.

A support and feature ticket system wil be created also.



If you have any suggestions for the App, just let me know!

If you like the app, please leave a rating in the Store: BeNext App.


Apps:

Donations or Sponsorship

[reserved]

[reserved2]

The BeNext App is now updated to SDK3 in the test:

I would be happy if people would test this, since i only have the window sensor.
And yes, that one works fine, and i didn’t need to fix that one special.

So, i expect all drivers to work, except perhaps the 500 tag reader, since that once is buildin completly different.

Let me know if you run into issues!

@Caseda or anyone else who knows Z-Wave development.
Hey, Z-Wave Genius, :wink:

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"]

And the heating control:

'use strict';

// Documentation: http://www.benext.eu/static/manual/heatingcontrol.pdf

//still experimental

const Homey = require('homey');
const ZwaveDevice = require('homey-zwavedriver').ZwaveDevice;

const DEFAULT_SETPOINT = 20;

class HeatingDevice extends ZwaveDevice {


onNodeInit(){
	    this.enableDebug();
		this.printNode();
		this.registerCapability('target_temperature', 'CLIMATE_CONTROL_SCHEDULE', {
	get: 'SCHEDULE_OVERRIDE_GET',
	report: 'SCHEDULE_OVERRIDE_REPORT',
	reportParser: report => {
				console.log('SCHEDULE_OVERRIDE_REPORT -> report', report, 'override value', report['Override State (Raw)'][0]);
				if (report &&
					report.hasOwnProperty('Override State (Raw)')) {

					let delta;
					// Value is below DEFAULT_SETPOINT
					if (report['Override State (Raw)'][0] >= 126 && report['Override State (Raw)'][0] <= 256) {
						delta = ((256 - report['Override State (Raw)'][0]) / 10) * -1;
						console.log('calculated incoming (negative) delta', delta);
					}
					// Value is above DEFAULT_SETPOINT
					else if (report['Override State (Raw)'][0] >= 0 && report['Override State (Raw)'][0] < 126) {
						delta = report['Override State (Raw)'][0] / 10;
						console.log('calculated incoming (positive) delta', delta);
					}
					console.log('SCHEDULE_OVERRIDE_REPORT -> calculated value ->', DEFAULT_SETPOINT + delta);
					return Math.max(7.5, Math.min(DEFAULT_SETPOINT + delta, 32.5));
				}
			},
	set: 'SCHEDULE_OVERRIDE_SET',
	setParser(value) {

				console.log('Set target temperature', value);

				let delta = (value - DEFAULT_SETPOINT) * 10;

				console.log('SCHEDULE_OVERRIDE_SET -> calculated delta ->', delta);

				if (delta < 0 && delta < -125) {
					console.error('out_of_range_too_low', delta);
					delta = -125;
				} else if (delta > 0 && delta > 125) {
					console.error('out_of_range_too_high', delta);
					delta = 125;
				}

				if (delta < 0) delta = 256 + delta;

				console.log('SCHEDULE_OVERRIDE_SET -> final object ->', {
					Properties1: {
						'Override Type': this.getSetting('override_mode') || 1,
					},
					'Override State': new Buffer([delta])
				});

				return {
					Properties1: {
						'Override Type': this.getSetting('override_mode') || 1,
					},
					'Override State': new Buffer([delta])
				}
			}
		});

		this.registerCapability('measure_temperature', 'SENSOR_MULTILEVEL');

		this.registerCapability('measure_pressure', 'SENSOR_MULTILEVEL', {
			command_class: 'COMMAND_CLASS_SENSOR_MULTILEVEL',
			command_get: 'SENSOR_MULTILEVEL_GET',
			command_get_parser: () => ({
				'Sensor Type': 'Barometric pressure (version 2) ',
				Properties1: {
					Scale: 0,
				},
			}),
			command_report: 'SENSOR_MULTILEVEL_REPORT',
			command_report_parser: report => {
				if (report['Sensor Type'] !== 'Barometric pressure (version 2) ' || report['Sensor Value (Parsed)'] === -999.9) return null;
				return report['Sensor Value (Parsed)'];
			},
			optional: true,
		});
		
		
		
		this.registerCapability('measure_temperature.outside', 'SENSOR_MULTILEVEL', {
			command_class: 'COMMAND_CLASS_SENSOR_MULTILEVEL',
			command_get: 'SENSOR_MULTILEVEL_GET',
			command_get_parser: () => ({
				'Sensor Type': 'Target Temperature (v6)',
				Properties1: {
					Scale: 0,
				},
			}),
			command_report: 'SENSOR_MULTILEVEL_REPORT',
			command_report_parser: report => {
				if (report['Sensor Type'] !== 'Target Temperature (v6)' || report['Sensor Value (Parsed)'] === -999.9) return null;
				return report['Sensor Value (Parsed)'];
			},
			optional: true,
		});


		//Setpoint
				if (this.node && this.node.CommandClass && this.node.CommandClass.COMMAND_CLASS_THERMOSTAT_SETPOINT) {
			this.node.CommandClass.COMMAND_CLASS_THERMOSTAT_SETPOINT.THERMOSTAT_SETPOINT_GET({
				'Level': {
					'Setpoint Type': 'Heating 1'
				}
			}, (err, result) => {
				console.log('GET', err, result);
				if (result && result.hasOwnProperty('Value')) {
					let parsedValue = result['Value'].readUIntBE(0, 2);
					if (typeof parsedValue === 'number' && parsedValue / 10 !== 20) {
						this.node.CommandClass.COMMAND_CLASS_THERMOSTAT_SETPOINT.THERMOSTAT_SETPOINT_SET({
							'Level': {
								'Setpoint Type': 'Heating 1'
							},
							'Level2': {
								'Size': 2,
								'Scale': 0,
								'Precision': 1
							},
							'Value': new Buffer([0, DEFAULT_SETPOINT * 10])
						}, (err, result) => {
							if (err) {
								console.error('Error on THERMOSTAT_SETPOINT_SET', err);
							} else {
								console.log('Success after THERMOSTAT_SETPOINT_SET', result);
							}
						});
					} 
				}
			});

		} else {
			console.log('missing_command_class_or_method');
		}
		
		
		

}
}

module.exports = HeatingDevice;

Sorry, I completely forgot about this topic :stuck_out_tongue:

Those are some weird errors that i’ve never seen before.
Also a bit weird that they are using CLIMATE_CONTROL_SCHEDULE for the heat controller…
Looks like that driver has always been a “experimental” driver though :stuck_out_tongue:
But I guess lets begin at the beginning.

The error isn’t for the energy_switch_plus though (looks like the built_in_dimmer has the issue too), the “BASIC_SET in main node undefined” is an entirely different error.
Not sure why a device has no “basic_set” though (I would need the “printNode” part for that) as that’s the bare minimum any z-wave device should have.
You probably can just comment those (this.registerCapability('onoff', 'BASIC_SET');) out/delete them though, those are usually only used if a device only reports on an other endpoint (Association Group) then the one that should be the controller (Homey).

as for the setCapabilityValue being wrong.
invalid_type_expected_boolean ["Properties1"]["undefined"]
This looks more like a z-wave core issue, that perhaps was introduced in the SDKv3 core, or it just never worked, it is expecting a “undefined” value in the Properties1 object… there are some “reserved” bits left, but that should be ignored/not specified.
line 67, what it would expect according the error:

return {
	Properties1: {
		'Override Type': this.getSetting('override_mode') || 1,
		'undefined': 0,
	},
	'Override State': Buffer.from([delta])
};

Thanks!

Ill look into it tomorrow, because i have another device from BeNext with the same message.

And im tired :wink:

But thanks in advance!

1 Like

ik krijg deze error inderdaad ook.

Daarnaast heb ik nog wat benext apparaten die wellicht toegevoegd zouden kunnen worden (wat afstandsbedieningen)

Ik heb niet veel programmeer ervaring, maar mocht ik kunnen helpen, laat het me weten!

can you do something for the 1st gen tag reader??

Could you explain that more?
Because, as far as i know, the tag reader was working properly again.

in the afternoon i’ll send you some screenshots…

Inviato dal mio Galaxy

-------- Messaggio originale --------

1 Like

i can add the tag reader but…
image
image

naturally nothing works…i succeded only to scan a tag

Okay.
Is there anyone (in holland) from whom i can borough a Tag Reader?
Because, fixing this without, would be very tiresome and difficult.

i saw there’s the same tag reader branded ZIPATO…and there’s also an homey app (sdk3) that support it!! it has different id then cannot be recognized but i think you can try…no? i’m a developer but i’m not skilled in athom api…

Yeah i know, i already took parts off that code :wink:
Still, solving this is way easier with a device.

Ok. let me know if I can help in any way.
do you want to have access to my homey? could it help?

i resolved for now…

i cloned locally the zipato app, changed the ids in the driver and installed the app via CLI.

now i can add the tag reader (benext) as a zipato and is perfectly functional.

naturally you can include in you app as a tag reader (revision 1)

1 Like

I’ve got a tagreader you could borrow, though its a 500 version, not the gen1.

That’s very sweet of you, thanks for the offer.

In that case: Could someone please confirm that:

  • It is the Tag Reader 500 that doesn’t work correct.
  • That the Tag reader Gen1 is (or not) working correct.

@Wisefire:

  • Where do you live? In holland?
  • How long can you mis it?
  • Do also have cards/devices/tags with it so i could test it than? (i don’t know the Tag Reader, so any more info you can give me helps me to get a better image of it, how it (should) work, etc.)

And, i am first waiting for the new adapter: my HP2019 is allready pretty maxed out with all my apps.
So i am still using the HP2023 as developing machine, but i still have the random errors from the Power Supply.
When i have the new PowerAdapter, and answers to some questions, i can plan when to spend time on it. Then we can talk about borrowing it, and minimize the time it will be here (and not just laying around waiting for the poweradapter) :wink:

But already: thanks in advance!