zigbee-herdsman-converters 14.0.601 → 14.0.604
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/devices/adeo.js +7 -0
- package/devices/gledopto.js +8 -0
- package/devices/philips.js +7 -0
- package/devices/shinasystem.js +42 -1
- package/devices/tuya.js +17 -4
- package/devices/woox.js +4 -0
- package/devices/xiaomi.js +42 -42
- package/devices/yale.js +4 -4
- package/lib/utils.js +2 -2
- package/package.json +1 -1
package/devices/adeo.js
CHANGED
|
@@ -80,6 +80,13 @@ module.exports = [
|
|
|
80
80
|
description: 'ENKI LEXMAN RGBTW GU10 Bulb',
|
|
81
81
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
|
|
82
82
|
},
|
|
83
|
+
{
|
|
84
|
+
zigbeeModel: ['ZBEK-10'],
|
|
85
|
+
model: 'IC-CDZFB2AC004HA-MZN',
|
|
86
|
+
vendor: 'ADEO',
|
|
87
|
+
description: 'ENKI LEXMAN E14 LED white',
|
|
88
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
89
|
+
},
|
|
83
90
|
{
|
|
84
91
|
zigbeeModel: ['ZBEK-12'],
|
|
85
92
|
model: 'IA-CDZFB2AA007NA-MZN-01',
|
package/devices/gledopto.js
CHANGED
|
@@ -482,6 +482,14 @@ module.exports = [
|
|
|
482
482
|
description: 'Zigbee 12W E26/E27 Bulb RGB+CCT (pro)',
|
|
483
483
|
extend: gledoptoExtend.light_onoff_brightness_colortemp_color(),
|
|
484
484
|
},
|
|
485
|
+
{
|
|
486
|
+
zigbeeModel: ['GL-D-002P'],
|
|
487
|
+
model: 'GL-D-002P',
|
|
488
|
+
vendor: 'Gledopto',
|
|
489
|
+
ota: ota.zigbeeOTA,
|
|
490
|
+
description: 'Zigbee 6W Downlight RGB+CCT (pro CRI>90)',
|
|
491
|
+
extend: gledoptoExtend.light_onoff_brightness_colortemp_color({colorTempRange: [158, 495]}),
|
|
492
|
+
},
|
|
485
493
|
{
|
|
486
494
|
zigbeeModel: ['GL-D-003Z'],
|
|
487
495
|
model: 'GL-D-003Z',
|
package/devices/philips.js
CHANGED
|
@@ -336,6 +336,13 @@ module.exports = [
|
|
|
336
336
|
description: 'Hue Iris rose limited edition (generation 4) ',
|
|
337
337
|
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
338
338
|
},
|
|
339
|
+
{
|
|
340
|
+
zigbeeModel: ['929002401201'],
|
|
341
|
+
model: '929002401201',
|
|
342
|
+
vendor: 'Philips',
|
|
343
|
+
description: 'Hue Iris copper special edition (generation 4) ',
|
|
344
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
345
|
+
},
|
|
339
346
|
{
|
|
340
347
|
zigbeeModel: ['5063130P7'],
|
|
341
348
|
model: '5063130P7',
|
package/devices/shinasystem.js
CHANGED
|
@@ -52,7 +52,7 @@ module.exports = [
|
|
|
52
52
|
},
|
|
53
53
|
exposes: [e.battery(), e.battery_voltage(),
|
|
54
54
|
exposes.enum('status', ea.STATE, ['idle', 'in', 'out']).withDescription('Currently status'),
|
|
55
|
-
exposes.numeric('people', ea.ALL).withValueMin(0).withValueMax(
|
|
55
|
+
exposes.numeric('people', ea.ALL).withValueMin(0).withValueMax(100).withDescription('People count')],
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
zigbeeModel: ['USM-300Z'],
|
|
@@ -390,4 +390,45 @@ module.exports = [
|
|
|
390
390
|
.withFeature(exposes.numeric('pin_code', ea.SET).withDescription('Pincode to set, set pincode(4 digit) to null to clear')),
|
|
391
391
|
],
|
|
392
392
|
},
|
|
393
|
+
{
|
|
394
|
+
zigbeeModel: ['DMS-300Z'],
|
|
395
|
+
model: 'DMS-300ZB',
|
|
396
|
+
vendor: 'ShinaSystem',
|
|
397
|
+
ota: ota.zigbeeOTA,
|
|
398
|
+
description: 'SiHAS dual motion sensor',
|
|
399
|
+
meta: {battery: {voltageToPercentage: '3V_2100'}},
|
|
400
|
+
fromZigbee: [fz.battery, fz.occupancy, fz.occupancy_timeout],
|
|
401
|
+
toZigbee: [tz.occupancy_timeout],
|
|
402
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
403
|
+
const endpoint = device.getEndpoint(1);
|
|
404
|
+
const binds = ['genPowerCfg', 'msOccupancySensing'];
|
|
405
|
+
await reporting.bind(endpoint, coordinatorEndpoint, binds);
|
|
406
|
+
await reporting.batteryVoltage(endpoint, {min: 30, max: 21600, change: 1});
|
|
407
|
+
await reporting.occupancy(endpoint, {min: 1, max: 600, change: 1});
|
|
408
|
+
await endpoint.read('msOccupancySensing', ['pirOToUDelay']);
|
|
409
|
+
},
|
|
410
|
+
exposes: [e.battery(), e.battery_voltage(), e.occupancy(),
|
|
411
|
+
exposes.numeric('occupancy_timeout', ea.ALL).withUnit('second').withValueMin(0).withValueMax(65535)],
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
zigbeeModel: ['ISM300Z3'],
|
|
415
|
+
model: 'ISM300Z3',
|
|
416
|
+
vendor: 'ShinaSystem',
|
|
417
|
+
ota: ota.zigbeeOTA,
|
|
418
|
+
description: 'SiHAS IOT smart inner switch 3 gang',
|
|
419
|
+
extend: extend.switch(),
|
|
420
|
+
exposes: [e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2'), e.switch().withEndpoint('l3')],
|
|
421
|
+
endpoint: (device) => {
|
|
422
|
+
return {l1: 1, l2: 2, l3: 3};
|
|
423
|
+
},
|
|
424
|
+
meta: {multiEndpoint: true},
|
|
425
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
426
|
+
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
427
|
+
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
428
|
+
await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
|
|
429
|
+
await reporting.onOff(device.getEndpoint(1));
|
|
430
|
+
await reporting.onOff(device.getEndpoint(2));
|
|
431
|
+
await reporting.onOff(device.getEndpoint(3));
|
|
432
|
+
},
|
|
433
|
+
},
|
|
393
434
|
];
|
package/devices/tuya.js
CHANGED
|
@@ -278,6 +278,13 @@ const fzLocal = {
|
|
|
278
278
|
return fz.metering.convert(model, msg, publish, options, meta);
|
|
279
279
|
},
|
|
280
280
|
},
|
|
281
|
+
electrical_measurement_skip_duplicate: {
|
|
282
|
+
...fz.electrical_measurement,
|
|
283
|
+
convert: (model, msg, publish, options, meta) => {
|
|
284
|
+
if (utils.hasAlreadyProcessedMessage(msg)) return;
|
|
285
|
+
return fz.electrical_measurement.convert(model, msg, publish, options, meta);
|
|
286
|
+
},
|
|
287
|
+
},
|
|
281
288
|
scenes_recall_scene_65029: {
|
|
282
289
|
cluster: '65029',
|
|
283
290
|
type: ['raw', 'attributeReport'],
|
|
@@ -759,6 +766,7 @@ module.exports = [
|
|
|
759
766
|
{modelID: 'TS0505B', manufacturerName: '_TZ3000_1mtktxdk'},
|
|
760
767
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_remypqqm'},
|
|
761
768
|
{modelID: 'TS0505B', manufacturerName: '_TZ3000_kohbva1f'},
|
|
769
|
+
{modelID: 'TS0505B', manufacturerName: '_TZ3000_luit1t00'},
|
|
762
770
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_wslkvrau'},
|
|
763
771
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_0rn9qhnu'},
|
|
764
772
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_ejctepku'},
|
|
@@ -819,7 +827,8 @@ module.exports = [
|
|
|
819
827
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_bfvybixd'},
|
|
820
828
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_i2i0bsnv'},
|
|
821
829
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_elzv6aia'},
|
|
822
|
-
{modelID: 'TS0504B', manufacturerName: '_TZ3210_1elppmba'}
|
|
830
|
+
{modelID: 'TS0504B', manufacturerName: '_TZ3210_1elppmba'},
|
|
831
|
+
{modelID: 'TS0504B', manufacturerName: '_TZ3210_onejz0gt'}],
|
|
823
832
|
model: 'TS0504B',
|
|
824
833
|
vendor: 'TuYa',
|
|
825
834
|
description: 'Zigbee RGBW light',
|
|
@@ -1232,6 +1241,7 @@ module.exports = [
|
|
|
1232
1241
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_nvaik6gk'},
|
|
1233
1242
|
{modelID: 'TS0502B', manufacturerName: '_TZ3000_armwcncd'},
|
|
1234
1243
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_2p6wbry3'},
|
|
1244
|
+
{modelID: 'TS0502B', manufacturerName: '_TZB210_nfzrlz29'},
|
|
1235
1245
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_qamcypen'},
|
|
1236
1246
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_zdrhqmo0'},
|
|
1237
1247
|
{modelID: 'TS0502B', manufacturerName: '_TZ3210_2cjfbpy0'},
|
|
@@ -1741,6 +1751,7 @@ module.exports = [
|
|
|
1741
1751
|
{modelID: 'TS0601', manufacturerName: '_TZE200_e9ba97vf'}, /* model: 'TV01-ZB', vendor: 'Moes' */
|
|
1742
1752
|
{modelID: 'TS0601', manufacturerName: '_TZE200_husqqvux'}, /* model: 'TSL-TRV-TV01ZG', vendor: 'Tesla Smart' */
|
|
1743
1753
|
{modelID: 'TS0601', manufacturerName: '_TZE200_lllliz3p'}, /* model: 'TV02-Zigbee', vendor: 'TuYa' */
|
|
1754
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_mudxchsu'}, /* model: 'TV05-ZG curve', vendor: 'TuYa' */
|
|
1744
1755
|
],
|
|
1745
1756
|
model: 'TV02-Zigbee',
|
|
1746
1757
|
vendor: 'TuYa',
|
|
@@ -1935,7 +1946,7 @@ module.exports = [
|
|
|
1935
1946
|
{vendor: 'BlitzWolf', model: 'BW-SHP15'}, {vendor: 'Nous', model: 'A1Z'}, {vendor: 'BlitzWolf', model: 'BW-SHP13'},
|
|
1936
1947
|
{vendor: 'MatSee Plus', model: 'PJ-ZSW01'}],
|
|
1937
1948
|
ota: ota.zigbeeOTA,
|
|
1938
|
-
fromZigbee: [fz.on_off,
|
|
1949
|
+
fromZigbee: [fz.on_off, fzLocal.electrical_measurement_skip_duplicate, fzLocal.metering_skip_duplicate, fz.ignore_basic_report,
|
|
1939
1950
|
fz.tuya_switch_power_outage_memory, fz.ts011f_plug_indicator_mode, fz.ts011f_plug_child_mode],
|
|
1940
1951
|
toZigbee: [tz.on_off, tz.tuya_switch_power_outage_memory, tz.ts011f_plug_indicator_mode, tz.ts011f_plug_child_mode],
|
|
1941
1952
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
@@ -1989,7 +2000,7 @@ module.exports = [
|
|
|
1989
2000
|
whiteLabel: [{vendor: 'VIKEFON', model: 'TS011F'}, {vendor: 'BlitzWolf', model: 'BW-SHP15'},
|
|
1990
2001
|
{vendor: 'Avatto', model: 'MIUCOT10Z'}, {vendor: 'Neo', model: 'NAS-WR01B'}],
|
|
1991
2002
|
ota: ota.zigbeeOTA,
|
|
1992
|
-
fromZigbee: [fz.on_off,
|
|
2003
|
+
fromZigbee: [fz.on_off, fzLocal.electrical_measurement_skip_duplicate, fzLocal.metering_skip_duplicate, fz.ignore_basic_report,
|
|
1993
2004
|
fz.tuya_switch_power_outage_memory, fz.ts011f_plug_indicator_mode, fz.ts011f_plug_child_mode],
|
|
1994
2005
|
toZigbee: [tz.on_off, tz.tuya_switch_power_outage_memory, tz.ts011f_plug_indicator_mode, tz.ts011f_plug_child_mode],
|
|
1995
2006
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
@@ -2182,6 +2193,8 @@ module.exports = [
|
|
|
2182
2193
|
},
|
|
2183
2194
|
meta: {multiEndpoint: true},
|
|
2184
2195
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
2196
|
+
await device.getEndpoint(1).read('genBasic',
|
|
2197
|
+
['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
2185
2198
|
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
2186
2199
|
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
2187
2200
|
device.powerSource = 'Mains (single phase)';
|
|
@@ -2975,7 +2988,7 @@ module.exports = [
|
|
|
2975
2988
|
fromZigbee: [fz.ZG204ZL_lms],
|
|
2976
2989
|
toZigbee: [tz.ZG204ZL_lms],
|
|
2977
2990
|
exposes: [
|
|
2978
|
-
e.occupancy(), e.illuminance(), e.battery(),
|
|
2991
|
+
e.occupancy(), e.illuminance().withUnit('lx'), e.battery(),
|
|
2979
2992
|
exposes.enum('sensitivity', ea.ALL, ['low', 'medium', 'high'])
|
|
2980
2993
|
.withDescription('PIR sensor sensitivity (refresh and update only while active)'),
|
|
2981
2994
|
exposes.enum('keep_time', ea.ALL, ['10', '30', '60', '120'])
|
package/devices/woox.js
CHANGED
|
@@ -106,6 +106,10 @@ module.exports = [
|
|
|
106
106
|
onEvent: tuya.onEventSetTime,
|
|
107
107
|
exposes: [e.switch(), e.battery()],
|
|
108
108
|
meta: {disableDefaultResponse: true},
|
|
109
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
110
|
+
const endpoint = device.getEndpoint(1);
|
|
111
|
+
await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
112
|
+
},
|
|
109
113
|
},
|
|
110
114
|
{
|
|
111
115
|
fingerprint: [{modelID: 'TS0505A', manufacturerName: '_TZ3000_keabpigv'}],
|
package/devices/xiaomi.js
CHANGED
|
@@ -48,7 +48,7 @@ module.exports = [
|
|
|
48
48
|
fromZigbee: [fz.ias_water_leak_alarm_1, fz.aqara_opple, fz.battery],
|
|
49
49
|
toZigbee: [],
|
|
50
50
|
exposes: [e.water_leak(), e.battery(), e.battery_low(), e.battery_voltage(), e.device_temperature(), e.power_outage_count(false)],
|
|
51
|
-
meta: {battery: {voltageToPercentage: '
|
|
51
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
52
52
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
53
53
|
const endpoint = device.getEndpoint(1);
|
|
54
54
|
await endpoint.read('genPowerCfg', ['batteryVoltage']);
|
|
@@ -62,7 +62,7 @@ module.exports = [
|
|
|
62
62
|
description: 'Aqara E1 door & window contact sensor',
|
|
63
63
|
fromZigbee: [fz.ias_contact_alarm_1, fz.aqara_opple, fz.battery],
|
|
64
64
|
toZigbee: [],
|
|
65
|
-
meta: {battery: {voltageToPercentage: '
|
|
65
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
66
66
|
exposes: [e.contact(), e.battery(), e.battery_low(), e.battery_voltage()],
|
|
67
67
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
68
68
|
const endpoint = device.getEndpoint(1);
|
|
@@ -78,7 +78,7 @@ module.exports = [
|
|
|
78
78
|
description: 'Aqara P1 door & window contact sensor',
|
|
79
79
|
fromZigbee: [fz. xiaomi_contact, fz.ias_contact_alarm_1, fz.aqara_opple],
|
|
80
80
|
toZigbee: [],
|
|
81
|
-
meta: {battery: {voltageToPercentage: '
|
|
81
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
82
82
|
exposes: [e.contact(), e.battery(), e.battery_voltage()],
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -198,7 +198,7 @@ module.exports = [
|
|
|
198
198
|
whiteLabel: [{vendor: 'Xiaomi', model: 'YTC4040GL'}, {vendor: 'Xiaomi', model: 'YTC4006CN'},
|
|
199
199
|
{vendor: 'Xiaomi', model: 'YTC4017CN'}, {vendor: 'Xiaomi', model: 'ZHTZ02LM'}],
|
|
200
200
|
description: 'MiJia wireless switch',
|
|
201
|
-
meta: {battery: {voltageToPercentage: '
|
|
201
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
202
202
|
fromZigbee: [fz.xiaomi_basic, fz.xiaomi_WXKG01LM_action, fz.legacy.WXKG01LM_click],
|
|
203
203
|
exposes: [e.battery(), e.action(['single', 'double', 'triple', 'quadruple', 'hold', 'release', 'many']), e.battery_voltage(),
|
|
204
204
|
e.power_outage_count(false)],
|
|
@@ -209,7 +209,7 @@ module.exports = [
|
|
|
209
209
|
model: 'WXKG11LM',
|
|
210
210
|
vendor: 'Xiaomi',
|
|
211
211
|
description: 'Aqara wireless switch',
|
|
212
|
-
meta: {battery: {voltageToPercentage: '
|
|
212
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
213
213
|
exposes: [e.battery(), e.battery_voltage(), e.action(['single', 'double', 'triple', 'quadruple', 'hold', 'release']),
|
|
214
214
|
e.device_temperature(), e.power_outage_count()],
|
|
215
215
|
fromZigbee: [fz.xiaomi_multistate_action, fz.xiaomi_WXKG11LM_action, fz.xiaomi_basic,
|
|
@@ -221,7 +221,7 @@ module.exports = [
|
|
|
221
221
|
model: 'WXKG12LM',
|
|
222
222
|
vendor: 'Xiaomi',
|
|
223
223
|
description: 'Aqara wireless switch (with gyroscope)',
|
|
224
|
-
meta: {battery: {voltageToPercentage: '
|
|
224
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
225
225
|
exposes: [e.battery(), e.action(['single', 'double', 'hold', 'release', 'shake']), e.battery_voltage()],
|
|
226
226
|
fromZigbee: [fz.xiaomi_basic, fz.xiaomi_multistate_action, fz.legacy.WXKG12LM_action_click_multistate],
|
|
227
227
|
toZigbee: [],
|
|
@@ -231,7 +231,7 @@ module.exports = [
|
|
|
231
231
|
model: 'WXKG03LM_rev1',
|
|
232
232
|
vendor: 'Xiaomi',
|
|
233
233
|
description: 'Aqara single key wireless wall switch (2016 model)',
|
|
234
|
-
meta: {battery: {voltageToPercentage: '
|
|
234
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
235
235
|
exposes: [e.battery(), e.action(['single']), e.battery_voltage()],
|
|
236
236
|
fromZigbee: [fz.xiaomi_on_off_action, fz.xiaomi_basic, fz.legacy.WXKG03LM_click],
|
|
237
237
|
toZigbee: [],
|
|
@@ -242,7 +242,7 @@ module.exports = [
|
|
|
242
242
|
model: 'WXKG03LM_rev2',
|
|
243
243
|
vendor: 'Xiaomi',
|
|
244
244
|
description: 'Aqara single key wireless wall switch (2018 model)',
|
|
245
|
-
meta: {battery: {voltageToPercentage: '
|
|
245
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
246
246
|
exposes: [e.battery(), e.action(['single', 'double', 'hold']), e.battery_voltage()],
|
|
247
247
|
fromZigbee: [fz.xiaomi_on_off_action, fz.xiaomi_multistate_action, fz.xiaomi_basic,
|
|
248
248
|
fz.legacy.WXKG03LM_click, fz.legacy.xiaomi_action_click_multistate],
|
|
@@ -260,7 +260,7 @@ module.exports = [
|
|
|
260
260
|
e.action(['single', 'double', 'hold']),
|
|
261
261
|
e.battery_voltage()],
|
|
262
262
|
onEvent: preventReset,
|
|
263
|
-
meta: {battery: {voltageToPercentage: '
|
|
263
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
264
264
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
265
265
|
try {
|
|
266
266
|
const endpoint = device.endpoints[1];
|
|
@@ -275,7 +275,7 @@ module.exports = [
|
|
|
275
275
|
model: 'WXKG02LM_rev1',
|
|
276
276
|
vendor: 'Xiaomi',
|
|
277
277
|
description: 'Aqara double key wireless wall switch (2016 model)',
|
|
278
|
-
meta: {battery: {voltageToPercentage: '
|
|
278
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
279
279
|
exposes: [e.battery(), e.action(['single_left', 'single_right', 'single_both']), e.battery_voltage(), e.power_outage_count(false)],
|
|
280
280
|
fromZigbee: [fz.xiaomi_on_off_action, fz.xiaomi_basic, fz.legacy.WXKG02LM_click],
|
|
281
281
|
toZigbee: [],
|
|
@@ -286,7 +286,7 @@ module.exports = [
|
|
|
286
286
|
model: 'WXKG02LM_rev2',
|
|
287
287
|
vendor: 'Xiaomi',
|
|
288
288
|
description: 'Aqara double key wireless wall switch (2018 model)',
|
|
289
|
-
meta: {battery: {voltageToPercentage: '
|
|
289
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
290
290
|
exposes: [e.battery(), e.action(['single_left', 'single_right', 'single_both', 'double_left', 'double_right', 'double_both',
|
|
291
291
|
'hold_left', 'hold_right', 'hold_both']), e.battery_voltage()],
|
|
292
292
|
fromZigbee: [fz.xiaomi_on_off_action, fz.xiaomi_multistate_action, fz.xiaomi_basic,
|
|
@@ -603,7 +603,7 @@ module.exports = [
|
|
|
603
603
|
model: 'WXKG07LM',
|
|
604
604
|
vendor: 'Xiaomi',
|
|
605
605
|
description: 'Aqara D1 double key wireless wall switch',
|
|
606
|
-
meta: {battery: {voltageToPercentage: '
|
|
606
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
607
607
|
fromZigbee: [fz.xiaomi_basic, fz.legacy.xiaomi_on_off_action, fz.legacy.xiaomi_multistate_action],
|
|
608
608
|
toZigbee: [],
|
|
609
609
|
endpoint: (device) => {
|
|
@@ -885,7 +885,7 @@ module.exports = [
|
|
|
885
885
|
whiteLabel: [{vendor: 'Xiaomi', model: 'YTC4042GL'}, {vendor: 'Xiaomi', model: 'YTC4007CN'},
|
|
886
886
|
{vendor: 'Xiaomi', model: 'YTC4018CN'}],
|
|
887
887
|
description: 'MiJia temperature & humidity sensor',
|
|
888
|
-
meta: {battery: {voltageToPercentage: '
|
|
888
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
889
889
|
fromZigbee: [fz.xiaomi_basic, fz.xiaomi_temperature, fz.humidity],
|
|
890
890
|
toZigbee: [],
|
|
891
891
|
exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
|
|
@@ -895,7 +895,7 @@ module.exports = [
|
|
|
895
895
|
model: 'WSDCGQ11LM',
|
|
896
896
|
vendor: 'Xiaomi',
|
|
897
897
|
description: 'Aqara temperature, humidity and pressure sensor',
|
|
898
|
-
meta: {battery: {voltageToPercentage: '
|
|
898
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
899
899
|
fromZigbee: [fz.xiaomi_basic, fz.xiaomi_temperature, fz.humidity, fz.pressure],
|
|
900
900
|
toZigbee: [],
|
|
901
901
|
exposes: [e.battery(), e.temperature(), e.humidity(), e.pressure(), e.battery_voltage()],
|
|
@@ -913,7 +913,7 @@ module.exports = [
|
|
|
913
913
|
toZigbee: [],
|
|
914
914
|
exposes: [e.temperature(), e.humidity(), e.pressure(), e.device_temperature(), e.battery(), e.battery_voltage(),
|
|
915
915
|
e.power_outage_count(false)],
|
|
916
|
-
meta: {battery: {voltageToPercentage: '
|
|
916
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
917
917
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
918
918
|
const endpoint = device.getEndpoint(1);
|
|
919
919
|
const binds = ['msTemperatureMeasurement', 'msRelativeHumidity', 'msPressureMeasurement'];
|
|
@@ -929,7 +929,7 @@ module.exports = [
|
|
|
929
929
|
whiteLabel: [{vendor: 'Xiaomi', model: 'YTC4041GL'}, {vendor: 'Xiaomi', model: 'YTC4004CN'},
|
|
930
930
|
{vendor: 'Xiaomi', model: 'YTC4016CN'}, {vendor: 'Xiaomi', model: 'ZHTZ02LM'}],
|
|
931
931
|
description: 'MiJia human body movement sensor',
|
|
932
|
-
meta: {battery: {voltageToPercentage: '
|
|
932
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
933
933
|
fromZigbee: [fz.xiaomi_basic, fz.occupancy_with_timeout],
|
|
934
934
|
toZigbee: [],
|
|
935
935
|
exposes: [e.battery(), e.occupancy(), e.battery_voltage(), e.power_outage_count(false)],
|
|
@@ -939,7 +939,7 @@ module.exports = [
|
|
|
939
939
|
model: 'RTCGQ11LM',
|
|
940
940
|
vendor: 'Xiaomi',
|
|
941
941
|
description: 'Aqara human body movement and illuminance sensor',
|
|
942
|
-
meta: {battery: {voltageToPercentage: '
|
|
942
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
943
943
|
fromZigbee: [fz.xiaomi_basic, fz.occupancy_with_timeout, fz.RTCGQ11LM_illuminance],
|
|
944
944
|
toZigbee: [],
|
|
945
945
|
exposes: [e.battery(), e.occupancy(), e.device_temperature(), e.battery_voltage(), e.illuminance_lux().withProperty('illuminance'),
|
|
@@ -957,7 +957,7 @@ module.exports = [
|
|
|
957
957
|
exposes.numeric('detection_interval', ea.ALL).withValueMin(2).withValueMax(65535).withUnit('s')
|
|
958
958
|
.withDescription('Time interval for detecting actions'),
|
|
959
959
|
e.device_temperature(), e.battery(), e.battery_voltage(), e.power_outage_count(false)],
|
|
960
|
-
meta: {battery: {voltageToPercentage: '
|
|
960
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
961
961
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
962
962
|
const endpoint = device.getEndpoint(1);
|
|
963
963
|
await endpoint.read('genPowerCfg', ['batteryVoltage']);
|
|
@@ -976,7 +976,7 @@ module.exports = [
|
|
|
976
976
|
exposes.numeric('detection_interval', ea.ALL).withValueMin(2).withValueMax(65535).withUnit('s')
|
|
977
977
|
.withDescription('Time interval for detecting actions'),
|
|
978
978
|
e.device_temperature(), e.battery(), e.battery_voltage(), e.power_outage_count(false)],
|
|
979
|
-
meta: {battery: {voltageToPercentage: '
|
|
979
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
980
980
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
981
981
|
const endpoint = device.getEndpoint(1);
|
|
982
982
|
await endpoint.read('genPowerCfg', ['batteryVoltage']);
|
|
@@ -1004,7 +1004,7 @@ module.exports = [
|
|
|
1004
1004
|
'blue LED will blink once when motion is detected. ' +
|
|
1005
1005
|
'Press pairing button right before changing this otherwise it will fail.'),
|
|
1006
1006
|
e.device_temperature(), e.battery(), e.battery_voltage()],
|
|
1007
|
-
meta: {battery: {voltageToPercentage: '
|
|
1007
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1008
1008
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1009
1009
|
const endpoint = device.getEndpoint(1);
|
|
1010
1010
|
await endpoint.read('genPowerCfg', ['batteryVoltage']);
|
|
@@ -1026,7 +1026,7 @@ module.exports = [
|
|
|
1026
1026
|
exposes.numeric('detection_interval', ea.ALL).withValueMin(2).withValueMax(65535).withUnit('s')
|
|
1027
1027
|
.withDescription('Time interval for detecting actions'),
|
|
1028
1028
|
e.device_temperature(), e.battery(), e.battery_voltage(), e.power_outage_count(false)],
|
|
1029
|
-
meta: {battery: {voltageToPercentage: '
|
|
1029
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1030
1030
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1031
1031
|
const endpoint = device.getEndpoint(1);
|
|
1032
1032
|
await endpoint.read('genPowerCfg', ['batteryVoltage']);
|
|
@@ -1070,7 +1070,7 @@ module.exports = [
|
|
|
1070
1070
|
whiteLabel: [{vendor: 'Xiaomi', model: 'YTC4039GL'}, {vendor: 'Xiaomi', model: 'YTC4005CN'},
|
|
1071
1071
|
{vendor: 'Xiaomi', model: 'YTC4015CN'}, {vendor: 'Xiaomi', model: 'ZHTZ02LM'}],
|
|
1072
1072
|
description: 'MiJia door & window contact sensor',
|
|
1073
|
-
meta: {battery: {voltageToPercentage: '
|
|
1073
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1074
1074
|
fromZigbee: [fz.xiaomi_basic, fz.xiaomi_contact],
|
|
1075
1075
|
toZigbee: [],
|
|
1076
1076
|
exposes: [e.battery(), e.contact(), e.battery_voltage(), e.power_outage_count(false)],
|
|
@@ -1080,7 +1080,7 @@ module.exports = [
|
|
|
1080
1080
|
model: 'MCCGQ11LM',
|
|
1081
1081
|
vendor: 'Xiaomi',
|
|
1082
1082
|
description: 'Aqara door & window contact sensor',
|
|
1083
|
-
meta: {battery: {voltageToPercentage: '
|
|
1083
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1084
1084
|
fromZigbee: [fz.xiaomi_basic, fz.xiaomi_contact],
|
|
1085
1085
|
toZigbee: [],
|
|
1086
1086
|
exposes: [e.battery(), e.contact(), e.device_temperature(), e.battery_voltage(), e.power_outage_count(false)],
|
|
@@ -1094,7 +1094,7 @@ module.exports = [
|
|
|
1094
1094
|
model: 'SJCGQ11LM',
|
|
1095
1095
|
vendor: 'Xiaomi',
|
|
1096
1096
|
description: 'Aqara water leak sensor',
|
|
1097
|
-
meta: {battery: {voltageToPercentage: '
|
|
1097
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1098
1098
|
fromZigbee: [fz.xiaomi_basic, fz.ias_water_leak_alarm_1],
|
|
1099
1099
|
toZigbee: [],
|
|
1100
1100
|
exposes: [e.battery(), e.water_leak(), e.battery_low(), e.battery_voltage(), e.device_temperature(), e.power_outage_count(false)],
|
|
@@ -1104,7 +1104,7 @@ module.exports = [
|
|
|
1104
1104
|
model: 'SJCGQ12LM',
|
|
1105
1105
|
vendor: 'Xiaomi',
|
|
1106
1106
|
description: 'Aqara T1 water leak sensor',
|
|
1107
|
-
meta: {battery: {voltageToPercentage: '
|
|
1107
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1108
1108
|
fromZigbee: [fz.xiaomi_basic, fz.ias_water_leak_alarm_1],
|
|
1109
1109
|
toZigbee: [],
|
|
1110
1110
|
exposes: [e.battery(), e.water_leak(), e.battery_low(), e.tamper(), e.battery_voltage()],
|
|
@@ -1115,7 +1115,7 @@ module.exports = [
|
|
|
1115
1115
|
model: 'MFKZQ01LM',
|
|
1116
1116
|
vendor: 'Xiaomi',
|
|
1117
1117
|
description: 'Mi/Aqara smart home cube',
|
|
1118
|
-
meta: {battery: {voltageToPercentage: '
|
|
1118
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1119
1119
|
fromZigbee: [fz.xiaomi_basic, fz.MFKZQ01LM_action_multistate, fz.MFKZQ01LM_action_analog],
|
|
1120
1120
|
exposes: [e.battery(), e.battery_voltage(), e.angle('action_angle'), e.device_temperature(), e.power_outage_count(false),
|
|
1121
1121
|
e.cube_side('action_from_side'), e.cube_side('action_side'), e.cube_side('action_to_side'), e.cube_side('side'),
|
|
@@ -1276,7 +1276,7 @@ module.exports = [
|
|
|
1276
1276
|
description: 'MiJia Honeywell smoke detector',
|
|
1277
1277
|
vendor: 'Xiaomi',
|
|
1278
1278
|
whiteLabel: [{vendor: 'Xiaomi', model: 'YTC4020RT'}],
|
|
1279
|
-
meta: {battery: {voltageToPercentage: '
|
|
1279
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1280
1280
|
fromZigbee: [fz.xiaomi_basic, fz.JTYJGD01LMBW_smoke],
|
|
1281
1281
|
toZigbee: [tz.JTQJBF01LMBW_JTYJGD01LMBW_sensitivity, tz.JTQJBF01LMBW_JTYJGD01LMBW_selfest],
|
|
1282
1282
|
exposes: [
|
|
@@ -1367,7 +1367,7 @@ module.exports = [
|
|
|
1367
1367
|
'been manually muted, then "linkage_alarm_state"=false'),
|
|
1368
1368
|
exposes.binary('linkage_alarm_state', ea.STATE, true, false).withDescription('"linkage_alarm" is triggered'),
|
|
1369
1369
|
e.battery(), e.battery_voltage(), e.power_outage_count(false)],
|
|
1370
|
-
meta: {battery: {voltageToPercentage: '
|
|
1370
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1371
1371
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1372
1372
|
const endpoint = device.getEndpoint(1);
|
|
1373
1373
|
await endpoint.read('genPowerCfg', ['batteryVoltage']);
|
|
@@ -1394,7 +1394,7 @@ module.exports = [
|
|
|
1394
1394
|
model: 'DJT11LM',
|
|
1395
1395
|
vendor: 'Xiaomi',
|
|
1396
1396
|
description: 'Aqara vibration sensor',
|
|
1397
|
-
meta: {battery: {voltageToPercentage: '
|
|
1397
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1398
1398
|
fromZigbee: [fz.xiaomi_basic, fz.DJT11LM_vibration],
|
|
1399
1399
|
toZigbee: [tz.DJT11LM_vibration_sensitivity],
|
|
1400
1400
|
exposes: [
|
|
@@ -1620,7 +1620,7 @@ module.exports = [
|
|
|
1620
1620
|
]), exposes.enum('operation_mode', ea.ALL, ['command', 'event'])
|
|
1621
1621
|
.withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)')],
|
|
1622
1622
|
toZigbee: [tz.aqara_opple_operation_mode],
|
|
1623
|
-
meta: {battery: {voltageToPercentage: '
|
|
1623
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1624
1624
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1625
1625
|
const endpoint = device.getEndpoint(1);
|
|
1626
1626
|
await endpoint.write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f});
|
|
@@ -1642,7 +1642,7 @@ module.exports = [
|
|
|
1642
1642
|
]), exposes.enum('operation_mode', ea.ALL, ['command', 'event'])
|
|
1643
1643
|
.withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)')],
|
|
1644
1644
|
toZigbee: [tz.aqara_opple_operation_mode],
|
|
1645
|
-
meta: {battery: {voltageToPercentage: '
|
|
1645
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1646
1646
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1647
1647
|
const endpoint = device.getEndpoint(1);
|
|
1648
1648
|
await endpoint.write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f});
|
|
@@ -1669,7 +1669,7 @@ module.exports = [
|
|
|
1669
1669
|
.withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)'),
|
|
1670
1670
|
e.power_outage_count(false)],
|
|
1671
1671
|
toZigbee: [tz.aqara_opple_operation_mode],
|
|
1672
|
-
meta: {battery: {voltageToPercentage: '
|
|
1672
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1673
1673
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1674
1674
|
const endpoint = device.getEndpoint(1);
|
|
1675
1675
|
await endpoint.write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f});
|
|
@@ -1686,7 +1686,7 @@ module.exports = [
|
|
|
1686
1686
|
description: 'MiJia light intensity sensor',
|
|
1687
1687
|
fromZigbee: [fz.battery, fz.illuminance, fz.aqara_opple],
|
|
1688
1688
|
toZigbee: [],
|
|
1689
|
-
meta: {battery: {voltageToPercentage: '
|
|
1689
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1690
1690
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1691
1691
|
const endpoint = device.getEndpoint(1);
|
|
1692
1692
|
await reporting.bind(endpoint, coordinatorEndpoint, ['msIlluminanceMeasurement']);
|
|
@@ -1843,7 +1843,7 @@ module.exports = [
|
|
|
1843
1843
|
description: 'Aqara wireless remote switch H1 (double rocker)',
|
|
1844
1844
|
fromZigbee: [fz.battery, fz.xiaomi_multistate_action, fz.aqara_opple, fz.command_toggle],
|
|
1845
1845
|
toZigbee: [tz.xiaomi_switch_click_mode, tz.aqara_opple_operation_mode],
|
|
1846
|
-
meta: {battery: {voltageToPercentage: '
|
|
1846
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}, multiEndpoint: true},
|
|
1847
1847
|
exposes: [
|
|
1848
1848
|
e.battery(), e.battery_voltage(), e.action([
|
|
1849
1849
|
'single_left', 'single_right', 'single_both',
|
|
@@ -1932,7 +1932,7 @@ module.exports = [
|
|
|
1932
1932
|
description: 'Aqara TVOC air quality monitor',
|
|
1933
1933
|
fromZigbee: [fz.xiaomi_tvoc, fz.battery, fz.temperature, fz.humidity, fz.aqara_opple],
|
|
1934
1934
|
toZigbee: [],
|
|
1935
|
-
meta: {battery: {voltageToPercentage: '
|
|
1935
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
1936
1936
|
exposes: [e.temperature(), e.humidity(), e.voc(), e.device_temperature(), e.battery(), e.battery_voltage()],
|
|
1937
1937
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1938
1938
|
const endpoint = device.getEndpoint(1);
|
|
@@ -2011,7 +2011,7 @@ module.exports = [
|
|
|
2011
2011
|
model: 'WXKG13LM',
|
|
2012
2012
|
vendor: 'Xiaomi',
|
|
2013
2013
|
description: 'Aqara T1 wireless mini switch',
|
|
2014
|
-
meta: {battery: {voltageToPercentage: '
|
|
2014
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
2015
2015
|
fromZigbee: [fz.battery, fz.aqara_opple_multistate, fz.aqara_opple],
|
|
2016
2016
|
toZigbee: [],
|
|
2017
2017
|
exposes: [e.battery(), e.battery_voltage(), e.action(['single', 'double', 'triple', 'quintuple', 'hold', 'release', 'many'])],
|
|
@@ -2027,7 +2027,7 @@ module.exports = [
|
|
|
2027
2027
|
description: 'Aqara T1 light intensity sensor',
|
|
2028
2028
|
fromZigbee: [fz.battery, fz.illuminance, fz.aqara_opple],
|
|
2029
2029
|
toZigbee: [tz.GZCGQ11LM_detection_period],
|
|
2030
|
-
meta: {battery: {voltageToPercentage: '
|
|
2030
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
2031
2031
|
exposes: [e.battery(), e.battery_voltage(), e.illuminance(), e.illuminance_lux(),
|
|
2032
2032
|
exposes.numeric('detection_period', exposes.access.ALL).withValueMin(1).withValueMax(59).withUnit('s')
|
|
2033
2033
|
.withDescription('Time interval in seconds to report after light changes')],
|
|
@@ -2066,7 +2066,7 @@ module.exports = [
|
|
|
2066
2066
|
description: 'Aqara T1 door & window contact sensor',
|
|
2067
2067
|
fromZigbee: [fz.xiaomi_contact, fz.aqara_opple],
|
|
2068
2068
|
toZigbee: [],
|
|
2069
|
-
meta: {battery: {voltageToPercentage: '
|
|
2069
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
2070
2070
|
exposes: [e.contact(), e.battery(), e.battery_voltage()],
|
|
2071
2071
|
},
|
|
2072
2072
|
{
|
|
@@ -2090,7 +2090,7 @@ module.exports = [
|
|
|
2090
2090
|
model: 'ZNXNKG02LM',
|
|
2091
2091
|
vendor: 'Xiaomi',
|
|
2092
2092
|
description: 'Aqara knob H1 (wireless)',
|
|
2093
|
-
meta: {battery: {voltageToPercentage: '
|
|
2093
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
2094
2094
|
exposes: [e.battery(), e.battery_voltage(),
|
|
2095
2095
|
e.action(['single', 'double', 'hold', 'release', 'start_rotating', 'rotation', 'stop_rotating']),
|
|
2096
2096
|
exposes.enum('operation_mode', ea.ALL, ['event', 'command']).withDescription('Button mode'),
|
|
@@ -2113,7 +2113,7 @@ module.exports = [
|
|
|
2113
2113
|
model: 'WXKG16LM',
|
|
2114
2114
|
vendor: 'Xiaomi',
|
|
2115
2115
|
description: 'Aqara wireless remote switch E1 (single rocker)',
|
|
2116
|
-
meta: {battery: {voltageToPercentage: '
|
|
2116
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
2117
2117
|
fromZigbee: [fz.xiaomi_multistate_action, fz.aqara_opple],
|
|
2118
2118
|
toZigbee: [tz.xiaomi_switch_click_mode],
|
|
2119
2119
|
exposes: [e.battery(), e.battery_voltage(), e.action(['single', 'double', 'hold']),
|
|
@@ -2129,7 +2129,7 @@ module.exports = [
|
|
|
2129
2129
|
model: 'WXKG17LM',
|
|
2130
2130
|
vendor: 'Xiaomi',
|
|
2131
2131
|
description: 'Aqara E1 double key wireless switch',
|
|
2132
|
-
meta: {battery: {voltageToPercentage: '
|
|
2132
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
2133
2133
|
exposes: [e.battery(), e.battery_voltage(),
|
|
2134
2134
|
e.action(['single_left', 'single_right', 'single_both', 'double_left', 'double_right', 'hold_left', 'hold_right']),
|
|
2135
2135
|
// eslint-disable-next-line max-len
|
|
@@ -2157,7 +2157,7 @@ module.exports = [
|
|
|
2157
2157
|
'multi: supports more events like double and hold'),
|
|
2158
2158
|
exposes.enum('operation_mode', ea.ALL, ['command', 'event'])
|
|
2159
2159
|
.withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)')],
|
|
2160
|
-
meta: {battery: {voltageToPercentage: '
|
|
2160
|
+
meta: {battery: {voltageToPercentage: '3V_2850_3000'}},
|
|
2161
2161
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
2162
2162
|
const endpoint1 = device.getEndpoint(1);
|
|
2163
2163
|
await endpoint1.write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f, disableResponse: true});
|
package/devices/yale.js
CHANGED
|
@@ -4,7 +4,7 @@ const tz = require('../converters/toZigbee');
|
|
|
4
4
|
const reporting = require('../lib/reporting');
|
|
5
5
|
const e = exposes.presets;
|
|
6
6
|
|
|
7
|
-
const lockExtend = (meta) => {
|
|
7
|
+
const lockExtend = (meta, lockStateOptions=null, binds=['closuresDoorLock', 'genPowerCfg']) => {
|
|
8
8
|
return {
|
|
9
9
|
fromZigbee: [fz.lock, fz.battery, fz.lock_operation_event, fz.lock_programming_event, fz.lock_pin_code_response,
|
|
10
10
|
fz.lock_user_status_response],
|
|
@@ -13,8 +13,8 @@ const lockExtend = (meta) => {
|
|
|
13
13
|
exposes: [e.lock(), e.battery(), e.pincode(), e.lock_action(), e.lock_action_source_name(), e.lock_action_user()],
|
|
14
14
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
15
15
|
const endpoint = device.getEndpoint(1);
|
|
16
|
-
await reporting.bind(endpoint, coordinatorEndpoint,
|
|
17
|
-
await reporting.lockState(endpoint);
|
|
16
|
+
await reporting.bind(endpoint, coordinatorEndpoint, binds);
|
|
17
|
+
await reporting.lockState(endpoint, lockStateOptions);
|
|
18
18
|
await reporting.batteryPercentageRemaining(endpoint);
|
|
19
19
|
},
|
|
20
20
|
};
|
|
@@ -129,7 +129,7 @@ module.exports = [
|
|
|
129
129
|
model: 'YDF40',
|
|
130
130
|
vendor: 'Yale',
|
|
131
131
|
description: 'Real living lock / Intelligent biometric digital lock',
|
|
132
|
-
extend: lockExtend(),
|
|
132
|
+
extend: lockExtend({}, {max: 900}, ['closuresDoorLock']),
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
135
|
zigbeeModel: ['06ffff2027'],
|
package/lib/utils.js
CHANGED
|
@@ -166,8 +166,8 @@ function batteryVoltageToPercentage(voltage, option) {
|
|
|
166
166
|
percentage = 0;
|
|
167
167
|
}
|
|
168
168
|
percentage = Math.round(percentage);
|
|
169
|
-
} else if (option === '
|
|
170
|
-
percentage = toPercentage(voltage, 2850,
|
|
169
|
+
} else if (option === '3V_2850_3000') {
|
|
170
|
+
percentage = toPercentage(voltage, 2850, 3000);
|
|
171
171
|
} else if (option === '4LR6AA1_5v') {
|
|
172
172
|
percentage = toPercentage(voltage, 3000, 4200);
|
|
173
173
|
} else if (option === '3V_add 1V') {
|