zigbee-herdsman-converters 15.0.15 → 15.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/converters/fromZigbee.js +4 -4
- package/converters/toZigbee.js +1 -0
- package/devices/dlink.js +37 -0
- package/devices/gidealed.js +1 -1
- package/devices/ikea.js +7 -0
- package/devices/inovelli.js +2 -2
- package/devices/legrand.js +20 -1
- package/devices/lidl.js +1 -1
- package/devices/m/303/274ller_licht.js +1 -1
- package/devices/philips.js +10 -3
- package/devices/sonoff.js +6 -6
- package/devices/sunricher.js +2 -0
- package/devices/tuya.js +1 -2
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -2622,10 +2622,10 @@ const converters = {
|
|
|
2622
2622
|
result.current_heating_setpoint = precisionRound(msg.data[0x4003], 2) / 100;
|
|
2623
2623
|
}
|
|
2624
2624
|
if (typeof msg.data[0x4008] == 'number') {
|
|
2625
|
-
result.child_protection = (
|
|
2626
|
-
result.mirror_display = (
|
|
2627
|
-
result.boost = (
|
|
2628
|
-
result.window_open = (
|
|
2625
|
+
result.child_protection = (msg.data[0x4008] & (1 << 7)) != 0;
|
|
2626
|
+
result.mirror_display = (msg.data[0x4008] & (1 << 1)) != 0;
|
|
2627
|
+
result.boost = (msg.data[0x4008] & 1 << 2) != 0;
|
|
2628
|
+
result.window_open = (msg.data[0x4008] & (1 << 4)) != 0;
|
|
2629
2629
|
|
|
2630
2630
|
if (result.boost) result.system_mode = constants.thermostatSystemModes[4];
|
|
2631
2631
|
else if (result.window_open) result.system_mode = constants.thermostatSystemModes[0];
|
package/converters/toZigbee.js
CHANGED
|
@@ -4166,6 +4166,7 @@ const converters = {
|
|
|
4166
4166
|
convertSet: async (entity, key, value, meta) => {
|
|
4167
4167
|
const payload = {0x4001: {value, type: 0x20}};
|
|
4168
4168
|
await entity.write('hvacThermostat', payload, manufacturerOptions.eurotronic);
|
|
4169
|
+
return {state: {[key]: value}};
|
|
4169
4170
|
},
|
|
4170
4171
|
convertGet: async (entity, key, meta) => {
|
|
4171
4172
|
await entity.read('hvacThermostat', [0x4001], manufacturerOptions.eurotronic);
|
package/devices/dlink.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const fz = require('../converters/fromZigbee');
|
|
2
|
+
const exposes = require('../lib/exposes');
|
|
3
|
+
const reporting = require('../lib/reporting');
|
|
4
|
+
const e = exposes.presets;
|
|
5
|
+
|
|
6
|
+
const fzLocal = {
|
|
7
|
+
DCH_B112: {
|
|
8
|
+
cluster: 'ssIasZone',
|
|
9
|
+
type: 'commandStatusChangeNotification',
|
|
10
|
+
convert: (model, msg, publish, options, meta) => {
|
|
11
|
+
const zoneStatus = msg.data.zonestatus;
|
|
12
|
+
return {
|
|
13
|
+
contact: !((zoneStatus & 1) > 0),
|
|
14
|
+
vibration: (zoneStatus & 1<<1) > 0,
|
|
15
|
+
tamper: (zoneStatus & 1<<2) > 0,
|
|
16
|
+
battery_low: (zoneStatus & 1<<3) > 0,
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
module.exports = [
|
|
23
|
+
{
|
|
24
|
+
zigbeeModel: ['DCH-B112'],
|
|
25
|
+
model: 'DCH-B112',
|
|
26
|
+
vendor: 'D-Link',
|
|
27
|
+
description: 'Wireless smart door window sensor with vibration',
|
|
28
|
+
fromZigbee: [fzLocal.DCH_B112, fz.battery],
|
|
29
|
+
toZigbee: [],
|
|
30
|
+
exposes: [e.battery_low(), e.contact(), e.vibration(), e.tamper(), e.battery()],
|
|
31
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
32
|
+
const endpoint = device.getEndpoint(1);
|
|
33
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
|
|
34
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
];
|
package/devices/gidealed.js
CHANGED
|
@@ -6,6 +6,6 @@ module.exports = [
|
|
|
6
6
|
model: 'ZC05M',
|
|
7
7
|
vendor: 'GIDEALED',
|
|
8
8
|
description: 'Smart Zigbee RGB LED strip controller',
|
|
9
|
-
extend: extend.light_onoff_brightness_colortemp_color({supportsHS: true, colorTempRange: [153,
|
|
9
|
+
extend: extend.light_onoff_brightness_colortemp_color({supportsHS: true, colorTempRange: [153, 370]}),
|
|
10
10
|
},
|
|
11
11
|
];
|
package/devices/ikea.js
CHANGED
|
@@ -977,4 +977,11 @@ module.exports = [
|
|
|
977
977
|
description: 'TRADFRI E26 PAR38 LED bulb 900 lumen, dimmable, white spectrum, downlight',
|
|
978
978
|
extend: tradfriExtend.light_onoff_brightness_colortemp(),
|
|
979
979
|
},
|
|
980
|
+
{
|
|
981
|
+
zigbeeModel: ['Floor lamp WW'],
|
|
982
|
+
model: 'G2015',
|
|
983
|
+
vendor: 'IKEA',
|
|
984
|
+
description: 'PILSKOTT LED floor lamp',
|
|
985
|
+
extend: tradfriExtend.light_onoff_brightness(),
|
|
986
|
+
},
|
|
980
987
|
];
|
package/devices/inovelli.js
CHANGED
|
@@ -1304,9 +1304,9 @@ module.exports = [
|
|
|
1304
1304
|
]);
|
|
1305
1305
|
await reporting.readMeteringMultiplierDivisor(endpoint);
|
|
1306
1306
|
|
|
1307
|
-
await reporting.activePower(endpoint, {min:
|
|
1307
|
+
await reporting.activePower(endpoint, {min: 15, max: 3600, change: 1});
|
|
1308
1308
|
await reporting.currentSummDelivered(endpoint, {
|
|
1309
|
-
min:
|
|
1309
|
+
min: 15,
|
|
1310
1310
|
max: 3600,
|
|
1311
1311
|
change: 0,
|
|
1312
1312
|
});
|
package/devices/legrand.js
CHANGED
|
@@ -303,7 +303,7 @@ module.exports = [
|
|
|
303
303
|
description: 'DIN power consumption module',
|
|
304
304
|
fromZigbee: [fz.identify, fz.metering, fz.electrical_measurement, fz.ignore_basic_report, fz.ignore_genOta, fz.legrand_power_alarm],
|
|
305
305
|
toZigbee: [tz.legrand_settingEnableLedInDark, tz.legrand_identify, tz.electrical_measurement_power, tz.legrand_powerAlarm],
|
|
306
|
-
exposes: [e.power().withAccess(ea.STATE_GET), exposes.binary('power_alarm_active', ea.STATE, true, false),
|
|
306
|
+
exposes: [e.power().withAccess(ea.STATE_GET), e.power_apparent(), exposes.binary('power_alarm_active', ea.STATE, true, false),
|
|
307
307
|
exposes.binary('power_alarm', ea.ALL, true, false).withDescription('Enable/disable the power alarm')],
|
|
308
308
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
309
309
|
const endpoint = device.getEndpoint(1);
|
|
@@ -447,4 +447,23 @@ module.exports = [
|
|
|
447
447
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genOnOff', 'genLevelCtrl']);
|
|
448
448
|
},
|
|
449
449
|
},
|
|
450
|
+
{
|
|
451
|
+
zigbeeModel: [' Centralized ventilation SW', ' Centralized ventilation SW\u0000\u0000\u0000\u0000'],
|
|
452
|
+
model: '067766',
|
|
453
|
+
vendor: 'Legrand',
|
|
454
|
+
description: 'Centralized ventilation switch',
|
|
455
|
+
fromZigbee: [fz.identify, fz.on_off, fz.power_on_behavior],
|
|
456
|
+
toZigbee: [tz.on_off, tz.legrand_settingEnableLedInDark, tz.legrand_identify, tz.legrand_settingEnableLedIfOn,
|
|
457
|
+
tz.power_on_behavior],
|
|
458
|
+
exposes: [e.switch(), e.action(['identify']),
|
|
459
|
+
exposes.binary('led_in_dark', ea.ALL, 'ON', 'OFF').withDescription(`Enables the LED when the power socket is turned off,
|
|
460
|
+
allowing to see it in the dark`),
|
|
461
|
+
exposes.binary('led_if_on', ea.ALL, 'ON', 'OFF').withDescription('Enables the LED when the device is turned on'),
|
|
462
|
+
e.power_on_behavior()],
|
|
463
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
464
|
+
const endpoint = device.getEndpoint(1);
|
|
465
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genOnOff']);
|
|
466
|
+
await reporting.onOff(endpoint);
|
|
467
|
+
},
|
|
468
|
+
},
|
|
450
469
|
];
|
package/devices/lidl.js
CHANGED
|
@@ -510,7 +510,7 @@ module.exports = [
|
|
|
510
510
|
model: 'HG06104A',
|
|
511
511
|
vendor: 'Lidl',
|
|
512
512
|
description: 'Livarno Lux smart LED light strip 2.5m',
|
|
513
|
-
...extend.light_onoff_brightness_colortemp_color({disableColorTempStartup: true}),
|
|
513
|
+
...extend.light_onoff_brightness_colortemp_color({disableColorTempStartup: true, disablePowerOnBehavior: true}),
|
|
514
514
|
meta: {applyRedFix: true, enhancedHue: false},
|
|
515
515
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
516
516
|
device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 29});
|
|
@@ -8,7 +8,7 @@ const e = exposes.presets;
|
|
|
8
8
|
module.exports = [
|
|
9
9
|
{
|
|
10
10
|
zigbeeModel: ['tint-ExtendedColor'],
|
|
11
|
-
model: '404036/45327/45317',
|
|
11
|
+
model: '404036/45327/45317/45328',
|
|
12
12
|
vendor: 'Müller Licht',
|
|
13
13
|
description: 'Tint LED white+color',
|
|
14
14
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 556]}),
|
package/devices/philips.js
CHANGED
|
@@ -458,7 +458,7 @@ module.exports = [
|
|
|
458
458
|
model: '929002994901',
|
|
459
459
|
vendor: 'Philips',
|
|
460
460
|
description: 'Hue gradient lightstrip',
|
|
461
|
-
extend: hueExtend.light_onoff_brightness_colortemp_color_gradient({colorTempRange: [153, 500]}),
|
|
461
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color_gradient({disableHueEffects: false, colorTempRange: [153, 500]}),
|
|
462
462
|
},
|
|
463
463
|
{
|
|
464
464
|
zigbeeModel: ['929003045401'],
|
|
@@ -738,14 +738,14 @@ module.exports = [
|
|
|
738
738
|
model: '4090331P9',
|
|
739
739
|
vendor: 'Philips',
|
|
740
740
|
description: 'Hue Ensis (white)',
|
|
741
|
-
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
741
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({disableHueEffects: false, colorTempRange: [153, 500]}),
|
|
742
742
|
},
|
|
743
743
|
{
|
|
744
744
|
zigbeeModel: ['4090330P9_01', '4090330P9_02', '929003052501_01', '929003052501_02'],
|
|
745
745
|
model: '4090330P9',
|
|
746
746
|
vendor: 'Philips',
|
|
747
747
|
description: 'Hue Ensis (black)',
|
|
748
|
-
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
748
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({disableHueEffects: false, colorTempRange: [153, 500]}),
|
|
749
749
|
},
|
|
750
750
|
{
|
|
751
751
|
zigbeeModel: ['929003055901', '929003055901_01', '929003055901_02', '929003055901_03'],
|
|
@@ -3105,6 +3105,13 @@ module.exports = [
|
|
|
3105
3105
|
description: 'Hue Bluetooth white & color ambiance ceiling lamp Infuse large',
|
|
3106
3106
|
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
3107
3107
|
},
|
|
3108
|
+
{
|
|
3109
|
+
zigbeeModel: ['929003531702'],
|
|
3110
|
+
model: '929003531702',
|
|
3111
|
+
vendor: 'Philips',
|
|
3112
|
+
description: 'Hue Bluetooth white & color ambiance ceiling lamp Infuse medium',
|
|
3113
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
3114
|
+
},
|
|
3108
3115
|
{
|
|
3109
3116
|
zigbeeModel: ['929003045001_01', '929003045001_02', '929003045001_03'],
|
|
3110
3117
|
model: '9290019533',
|
package/devices/sonoff.js
CHANGED
|
@@ -116,8 +116,8 @@ module.exports = [
|
|
|
116
116
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
117
117
|
const endpoint = device.getEndpoint(1);
|
|
118
118
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
|
|
119
|
-
await reporting.batteryVoltage(endpoint);
|
|
120
|
-
await reporting.batteryPercentageRemaining(endpoint);
|
|
119
|
+
await reporting.batteryVoltage(endpoint, {min: 3600, max: 7200});
|
|
120
|
+
await reporting.batteryPercentageRemaining(endpoint, {min: 3600, max: 7200});
|
|
121
121
|
},
|
|
122
122
|
},
|
|
123
123
|
{
|
|
@@ -132,8 +132,8 @@ module.exports = [
|
|
|
132
132
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
133
133
|
const endpoint = device.getEndpoint(1);
|
|
134
134
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genPowerCfg']);
|
|
135
|
-
await reporting.batteryVoltage(endpoint);
|
|
136
|
-
await reporting.batteryPercentageRemaining(endpoint);
|
|
135
|
+
await reporting.batteryVoltage(endpoint, {min: 3600, max: 7200});
|
|
136
|
+
await reporting.batteryPercentageRemaining(endpoint, {min: 3600, max: 7200});
|
|
137
137
|
},
|
|
138
138
|
},
|
|
139
139
|
{
|
|
@@ -165,8 +165,8 @@ module.exports = [
|
|
|
165
165
|
await reporting.bind(endpoint, coordinatorEndpoint, bindClusters);
|
|
166
166
|
await reporting.temperature(endpoint, {min: 5, max: constants.repInterval.MINUTES_30, change: 20});
|
|
167
167
|
await reporting.humidity(endpoint);
|
|
168
|
-
await reporting.batteryVoltage(endpoint);
|
|
169
|
-
await reporting.batteryPercentageRemaining(endpoint);
|
|
168
|
+
await reporting.batteryVoltage(endpoint, {min: 3600, max: 7200});
|
|
169
|
+
await reporting.batteryPercentageRemaining(endpoint, {min: 3600, max: 7200});
|
|
170
170
|
} catch (e) {/* Not required for all: https://github.com/Koenkk/zigbee2mqtt/issues/5562 */
|
|
171
171
|
logger.error(`Configure failed: ${e}`);
|
|
172
172
|
}
|
package/devices/sunricher.js
CHANGED
|
@@ -359,6 +359,8 @@ module.exports = [
|
|
|
359
359
|
{
|
|
360
360
|
fingerprint: [{modelID: 'GreenPower_2', ieeeAddr: /^0x000000005d5.....$/},
|
|
361
361
|
{modelID: 'GreenPower_2', ieeeAddr: /^0x0000000057e.....$/},
|
|
362
|
+
{modelID: 'GreenPower_2', ieeeAddr: /^0x000000001fa.....$/},
|
|
363
|
+
{modelID: 'GreenPower_2', ieeeAddr: /^0x0000000034b.....$/},
|
|
362
364
|
{modelID: 'GreenPower_2', ieeeAddr: /^0x00000000f12.....$/}],
|
|
363
365
|
model: 'SR-ZGP2801K4-DIM',
|
|
364
366
|
vendor: 'Sunricher',
|
package/devices/tuya.js
CHANGED
|
@@ -3493,7 +3493,7 @@ module.exports = [
|
|
|
3493
3493
|
exposes: [e.contact(), e.battery(), e.vibration()],
|
|
3494
3494
|
},
|
|
3495
3495
|
{
|
|
3496
|
-
fingerprint: [{modelID: `TS0601`, manufacturerName: `_TZE200_yi4jtqq1`}],
|
|
3496
|
+
fingerprint: [{modelID: `TS0601`, manufacturerName: `_TZE200_yi4jtqq1`}, {modelID: `TS0601`, manufacturerName: `_TZE200_khx7nnka`}],
|
|
3497
3497
|
model: `XFY-CGQ-ZIGB`,
|
|
3498
3498
|
vendor: `TuYa`,
|
|
3499
3499
|
description: `Illuminance sensor`,
|
|
@@ -3769,7 +3769,6 @@ module.exports = [
|
|
|
3769
3769
|
.fromZigbee.concat([tuya.fz.power_on_behavior, fzLocal.TS110E_switch_type, fzLocal.TS110E]),
|
|
3770
3770
|
toZigbee: extend.light_onoff_brightness({disablePowerOnBehavior: true, disableMoveStep: true, disableTransition: true})
|
|
3771
3771
|
.toZigbee.concat([tuya.tz.power_on_behavior, tzLocal.TS110E_options]),
|
|
3772
|
-
meta: {multiEndpoint: true},
|
|
3773
3772
|
exposes: [e.light_brightness(), e.power_on_behavior(), tuya.exposes.switchType()],
|
|
3774
3773
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
3775
3774
|
await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
|