zigbee-herdsman-converters 14.0.450 → 14.0.451
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 +2 -1
- package/converters/toZigbee.js +1 -1
- package/devices/ledvance.js +24 -0
- package/devices/lixee.js +14 -1
- package/devices/tuya.js +5 -2
- package/devices/xiaomi.js +2 -1
- package/lib/tuya.js +1 -0
- package/lib/xiaomi.js +5 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -4446,8 +4446,9 @@ const converters = {
|
|
|
4446
4446
|
const dpValue = tuya.firstDpValue(msg, meta, 'tuya_thermostat');
|
|
4447
4447
|
const dp = dpValue.dp;
|
|
4448
4448
|
const value = tuya.getDataValue(dpValue);
|
|
4449
|
-
|
|
4450
4449
|
switch (dp) {
|
|
4450
|
+
case tuya.dataPoints.windowOpen:
|
|
4451
|
+
return {window_open: value};
|
|
4451
4452
|
case tuya.dataPoints.windowDetection:
|
|
4452
4453
|
return {
|
|
4453
4454
|
window_detection: value[0] ? 'ON' : 'OFF',
|
package/converters/toZigbee.js
CHANGED
|
@@ -2116,7 +2116,7 @@ const converters = {
|
|
|
2116
2116
|
'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'QBKG19LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM',
|
|
2117
2117
|
'QBKG31LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM'].includes(meta.mapped.model)) {
|
|
2118
2118
|
await entity.write('aqaraOpple', {0x0201: {value: value ? 1 : 0, type: 0x10}}, manufacturerOptions.xiaomi);
|
|
2119
|
-
} else if (['ZNCZ02LM', 'QBCZ11LM'].includes(meta.mapped.model)) {
|
|
2119
|
+
} else if (['ZNCZ02LM', 'QBCZ11LM', 'LLKZMK11LM'].includes(meta.mapped.model)) {
|
|
2120
2120
|
const payload = value ?
|
|
2121
2121
|
[[0xaa, 0x80, 0x05, 0xd1, 0x47, 0x07, 0x01, 0x10, 0x01], [0xaa, 0x80, 0x03, 0xd3, 0x07, 0x08, 0x01]] :
|
|
2122
2122
|
[[0xaa, 0x80, 0x05, 0xd1, 0x47, 0x09, 0x01, 0x10, 0x00], [0xaa, 0x80, 0x03, 0xd3, 0x07, 0x0a, 0x01]];
|
package/devices/ledvance.js
CHANGED
|
@@ -55,6 +55,22 @@ module.exports = [
|
|
|
55
55
|
extend: extend.ledvance.light_onoff_brightness_colortemp_color(),
|
|
56
56
|
ota: ota.ledvance,
|
|
57
57
|
},
|
|
58
|
+
{
|
|
59
|
+
zigbeeModel: ['PAR16S RGBW'],
|
|
60
|
+
model: 'AC33906',
|
|
61
|
+
vendor: 'LEDVANCE',
|
|
62
|
+
description: 'SMART+ spot GU10 multicolor RGBW',
|
|
63
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
|
|
64
|
+
ota: ota.ledvance,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
zigbeeModel: ['PAR16S TW'],
|
|
68
|
+
model: 'AC33905',
|
|
69
|
+
vendor: 'LEDVANCE',
|
|
70
|
+
description: 'SMART+ spot GU10 tunable white',
|
|
71
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
|
|
72
|
+
ota: ota.ledvance,
|
|
73
|
+
},
|
|
58
74
|
{
|
|
59
75
|
zigbeeModel: ['B40 TW Z3'],
|
|
60
76
|
model: '4058075208414',
|
|
@@ -63,6 +79,14 @@ module.exports = [
|
|
|
63
79
|
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
64
80
|
ota: ota.ledvance,
|
|
65
81
|
},
|
|
82
|
+
{
|
|
83
|
+
zigbeeModel: ['P40S TW'],
|
|
84
|
+
model: 'AC33903',
|
|
85
|
+
vendor: 'LEDVANCE',
|
|
86
|
+
description: 'SMART+ classic P 40 E14 tunable white',
|
|
87
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
88
|
+
ota: ota.ledvance,
|
|
89
|
+
},
|
|
66
90
|
{
|
|
67
91
|
zigbeeModel: ['FLEX RGBW Z3'],
|
|
68
92
|
model: '4058075208339',
|
package/devices/lixee.js
CHANGED
|
@@ -509,6 +509,14 @@ function getCurrentConfig(device, options, logger=console) {
|
|
|
509
509
|
break;
|
|
510
510
|
}
|
|
511
511
|
|
|
512
|
+
// Filter exposed attributes with user whitelist
|
|
513
|
+
if (options && options.hasOwnProperty('tic_command_whitelist')) {
|
|
514
|
+
const tic_commands_str = options['tic_command_whitelist'].toUpperCase();
|
|
515
|
+
if (tic_commands_str !== 'ALL') {
|
|
516
|
+
const tic_commands = tic_commands_str.split(',').map((a) => a.trim());
|
|
517
|
+
myExpose = myExpose.filter((a) => tic_commands.includes(a.exposes.name));
|
|
518
|
+
}
|
|
519
|
+
}
|
|
512
520
|
|
|
513
521
|
return myExpose;
|
|
514
522
|
}
|
|
@@ -547,6 +555,7 @@ const definition = {
|
|
|
547
555
|
.withDescription(`Overrides the automatic current tarif. This option will exclude unnecesary attributes. Open a issue to support more of them. Default: auto`),
|
|
548
556
|
exposes.options.precision(`kWh`),
|
|
549
557
|
exposes.numeric(`measurement_poll_chunk`, ea.SET).withValueMin(1).withDescription(`During the poll, request multiple exposes to the Zlinky at once for reducing Zigbee network overload. Too much request at once could exceed device limit. Requieres Z2M restart. Default: 1`),
|
|
558
|
+
exposes.text(`tic_command_whitelist`, ea.SET).withDescription(`List of TIC commands to be exposed (separated by comma). Reconfigure device after change. Default: all`),
|
|
550
559
|
],
|
|
551
560
|
configure: async (device, coordinatorEndpoint, logger, options) => {
|
|
552
561
|
const endpoint = device.getEndpoint(1);
|
|
@@ -621,7 +630,11 @@ const definition = {
|
|
|
621
630
|
// Split array by chunks
|
|
622
631
|
for (i = 0, j = targ.length; i < j; i += measurement_poll_chunk) {
|
|
623
632
|
await endpoint
|
|
624
|
-
.read(cluster, targ.slice(i, i + measurement_poll_chunk), {manufacturerCode: null})
|
|
633
|
+
.read(cluster, targ.slice(i, i + measurement_poll_chunk), {manufacturerCode: null})
|
|
634
|
+
.catch((e) => {
|
|
635
|
+
// https://github.com/Koenkk/zigbee2mqtt/issues/11674
|
|
636
|
+
console.warn(`Failed to read zigbee attributes: ${e}`);
|
|
637
|
+
});
|
|
625
638
|
}
|
|
626
639
|
}
|
|
627
640
|
}
|
package/devices/tuya.js
CHANGED
|
@@ -143,7 +143,8 @@ module.exports = [
|
|
|
143
143
|
description: 'Smart air house keeper',
|
|
144
144
|
fromZigbee: [fz.tuya_air_quality],
|
|
145
145
|
toZigbee: [],
|
|
146
|
-
exposes: [e.temperature(), e.humidity(), e.co2(), e.voc(), e.formaldehyd().withUnit('ppm'),
|
|
146
|
+
exposes: [e.temperature(), e.humidity(), e.co2(), e.voc(), e.formaldehyd().withUnit('ppm'),
|
|
147
|
+
e.pm25().withValueMin(0).withValueMax(999).withValueStep(1)],
|
|
147
148
|
},
|
|
148
149
|
{
|
|
149
150
|
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_7bztmfm1'}],
|
|
@@ -1039,7 +1040,9 @@ module.exports = [
|
|
|
1039
1040
|
tz.tuya_thermostat_window_detect, tz.tuya_thermostat_schedule, tz.tuya_thermostat_week, tz.tuya_thermostat_away_preset,
|
|
1040
1041
|
tz.tuya_thermostat_schedule_programming_mode],
|
|
1041
1042
|
exposes: [
|
|
1042
|
-
e.child_lock(), e.window_detection(),
|
|
1043
|
+
e.child_lock(), e.window_detection(),
|
|
1044
|
+
exposes.binary('window_open', ea.STATE).withDescription('Window open?'),
|
|
1045
|
+
e.battery_low(), e.valve_detection(), e.position(),
|
|
1043
1046
|
exposes.climate().withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
1044
1047
|
.withLocalTemperature(ea.STATE).withSystemMode(['heat', 'auto', 'off'], ea.STATE_SET,
|
|
1045
1048
|
'Mode of this device, in the `heat` mode the TS0601 will remain continuously heating, i.e. it does not regulate ' +
|
package/devices/xiaomi.js
CHANGED
|
@@ -1305,12 +1305,13 @@ module.exports = [
|
|
|
1305
1305
|
description: 'Aqara wireless relay controller',
|
|
1306
1306
|
fromZigbee: [fz.xiaomi_switch_basic, fz.xiaomi_power, fz.ignore_multistate_report, fz.on_off, fz.xiaomi_basic_raw],
|
|
1307
1307
|
meta: {multiEndpoint: true},
|
|
1308
|
-
toZigbee: [tz.on_off, tz.LLKZMK11LM_interlock, tz.xiaomi_power],
|
|
1308
|
+
toZigbee: [tz.on_off, tz.LLKZMK11LM_interlock, tz.xiaomi_power, tz.xiaomi_switch_power_outage_memory],
|
|
1309
1309
|
endpoint: (device) => {
|
|
1310
1310
|
return {'l1': 1, 'l2': 2};
|
|
1311
1311
|
},
|
|
1312
1312
|
exposes: [e.power().withAccess(ea.STATE_GET), e.energy(), e.temperature(), e.voltage(), e.current(),
|
|
1313
1313
|
e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2'), e.power_outage_count(false),
|
|
1314
|
+
e.power_outage_memory(),
|
|
1314
1315
|
exposes.binary('interlock', ea.STATE_SET, true, false)
|
|
1315
1316
|
.withDescription('Enabling prevents both relais being on at the same time'),
|
|
1316
1317
|
],
|
package/lib/tuya.js
CHANGED
package/lib/xiaomi.js
CHANGED
|
@@ -129,7 +129,11 @@ const buffer2DataObject = (meta, model, buffer) => {
|
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
if (meta.logger)
|
|
132
|
+
if (meta.logger) {
|
|
133
|
+
meta.logger.debug(`${model.zigbeeModel}: Processed buffer into data ${JSON.stringify(dataObject,
|
|
134
|
+
(key, value) => typeof value === 'bigint' ? value.toString() : value)}`);
|
|
135
|
+
}
|
|
136
|
+
|
|
133
137
|
|
|
134
138
|
return dataObject;
|
|
135
139
|
};
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zigbee-herdsman-converters",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.451",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "zigbee-herdsman-converters",
|
|
9
|
-
"version": "14.0.
|
|
9
|
+
"version": "14.0.451",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"axios": "^0.26.1",
|