zigbee-herdsman-converters 14.0.616 → 14.0.619
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/aurora_lighting.js +7 -0
- package/devices/ikea.js +1 -0
- package/devices/lonsonho.js +1 -1
- package/devices/philips.js +8 -1
- package/devices/sengled.js +23 -3
- package/devices/siglis.js +1 -1
- package/devices/sonoff.js +24 -0
- package/devices/tuya.js +131 -4
- package/devices/zemismart.js +9 -0
- package/package.json +2 -2
|
@@ -79,6 +79,13 @@ const batteryRotaryDimmer = (...endpointsIds) => ({
|
|
|
79
79
|
});
|
|
80
80
|
|
|
81
81
|
module.exports = [
|
|
82
|
+
{
|
|
83
|
+
zigbeeModel: ['RGBCXStrip50AU'],
|
|
84
|
+
model: 'AU-A1ZBSCRGBCX',
|
|
85
|
+
vendor: 'Aurora',
|
|
86
|
+
description: 'RGBW LED strip controller',
|
|
87
|
+
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [166, 400]}),
|
|
88
|
+
},
|
|
82
89
|
{
|
|
83
90
|
zigbeeModel: ['TWGU10Bulb50AU'],
|
|
84
91
|
model: 'AU-A1GUZBCX5',
|
package/devices/ikea.js
CHANGED
|
@@ -924,6 +924,7 @@ module.exports = [
|
|
|
924
924
|
|
|
925
925
|
await endpoint.read('manuSpecificIkeaAirPurifier', ['controlPanelLight', 'childLock', 'filterRunTime']);
|
|
926
926
|
},
|
|
927
|
+
ota: ota.tradfri,
|
|
927
928
|
},
|
|
928
929
|
{
|
|
929
930
|
zigbeeModel: ['TRADFRIbulbE14WScandleopal470lm', 'TRADFRIbulbE12WScandleopal450lm'],
|
package/devices/lonsonho.js
CHANGED
|
@@ -77,7 +77,7 @@ module.exports = [
|
|
|
77
77
|
description: 'Dual curtain/blind module',
|
|
78
78
|
fromZigbee: [fz.cover_position_tilt, fz.tuya_cover_options],
|
|
79
79
|
toZigbee: [tz.cover_state, tz.cover_position_tilt, tz.tuya_cover_calibration, tz.tuya_cover_reversal],
|
|
80
|
-
meta: {multiEndpoint: true},
|
|
80
|
+
meta: {multiEndpoint: true, coverInverted: true},
|
|
81
81
|
endpoint: (device) => {
|
|
82
82
|
return {'left': 1, 'right': 2};
|
|
83
83
|
},
|
package/devices/philips.js
CHANGED
|
@@ -984,7 +984,14 @@ module.exports = [
|
|
|
984
984
|
zigbeeModel: ['929003053001'],
|
|
985
985
|
model: '929003053001',
|
|
986
986
|
vendor: 'Philips',
|
|
987
|
-
description: 'Hue Sana wall light',
|
|
987
|
+
description: 'Hue Sana wall light (white)',
|
|
988
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
zigbeeModel: ['929003052901'],
|
|
992
|
+
model: '929003052901',
|
|
993
|
+
vendor: 'Philips',
|
|
994
|
+
description: 'Hue Sana wall light (black)',
|
|
988
995
|
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
989
996
|
},
|
|
990
997
|
{
|
package/devices/sengled.js
CHANGED
|
@@ -61,8 +61,22 @@ module.exports = [
|
|
|
61
61
|
model: 'E12-N1E',
|
|
62
62
|
vendor: 'Sengled',
|
|
63
63
|
description: 'Smart LED multicolor (BR30)',
|
|
64
|
-
|
|
64
|
+
fromZigbee: sengledExtend.light_onoff_brightness_colortemp_color({colorTempRange: [154, 500]}).fromZigbee.concat([fz.metering]),
|
|
65
|
+
toZigbee: sengledExtend.light_onoff_brightness_colortemp_color({colorTempRange: [154, 500]}).toZigbee,
|
|
66
|
+
exposes: sengledExtend.light_onoff_brightness_colortemp_color({colorTempRange: [154, 500]}).exposes.concat([e.power(), e.energy()]),
|
|
65
67
|
ota: ota.zigbeeOTA,
|
|
68
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
69
|
+
await sengledExtend.light_onoff_brightness_colortemp_color({colorTempRange: [154, 500]})
|
|
70
|
+
.configure(device, coordinatorEndpoint, logger);
|
|
71
|
+
device.powerSource = 'Mains (single phase)';
|
|
72
|
+
device.save();
|
|
73
|
+
|
|
74
|
+
const endpoint = device.getEndpoint(1);
|
|
75
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'seMetering']);
|
|
76
|
+
await reporting.readMeteringMultiplierDivisor(endpoint);
|
|
77
|
+
await reporting.currentSummDelivered(endpoint);
|
|
78
|
+
await reporting.instantaneousDemand(endpoint);
|
|
79
|
+
},
|
|
66
80
|
},
|
|
67
81
|
{
|
|
68
82
|
zigbeeModel: ['E1G-G8E'],
|
|
@@ -221,10 +235,16 @@ module.exports = [
|
|
|
221
235
|
model: 'E1D-G73WNA',
|
|
222
236
|
vendor: 'Sengled',
|
|
223
237
|
description: 'Smart window and door sensor',
|
|
224
|
-
fromZigbee: [fz.ias_contact_alarm_1],
|
|
238
|
+
fromZigbee: [fz.ias_contact_alarm_1, fz.battery],
|
|
225
239
|
toZigbee: [],
|
|
226
240
|
ota: ota.zigbeeOTA,
|
|
227
|
-
exposes: [e.contact(), e.battery_low(), e.tamper()],
|
|
241
|
+
exposes: [e.contact(), e.battery_low(), e.battery(), e.battery_voltage(), e.tamper()],
|
|
242
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
243
|
+
const endpoint = device.getEndpoint(1);
|
|
244
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
|
|
245
|
+
await reporting.batteryVoltage(endpoint);
|
|
246
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
247
|
+
},
|
|
228
248
|
},
|
|
229
249
|
{
|
|
230
250
|
zigbeeModel: ['E1C-NB6'],
|
package/devices/siglis.js
CHANGED
package/devices/sonoff.js
CHANGED
|
@@ -5,6 +5,7 @@ const constants = require('../lib/constants');
|
|
|
5
5
|
const reporting = require('../lib/reporting');
|
|
6
6
|
const extend = require('../lib/extend');
|
|
7
7
|
const e = exposes.presets;
|
|
8
|
+
const ea = exposes.access;
|
|
8
9
|
const ota = require('../lib/ota');
|
|
9
10
|
|
|
10
11
|
const fzLocal = {
|
|
@@ -18,6 +19,16 @@ const fzLocal = {
|
|
|
18
19
|
}
|
|
19
20
|
},
|
|
20
21
|
},
|
|
22
|
+
router_config: {
|
|
23
|
+
cluster: 'genLevelCtrl',
|
|
24
|
+
type: ['attributeReport', 'readResponse'],
|
|
25
|
+
convert: (model, msg, publish, options, meta) => {
|
|
26
|
+
const result = {};
|
|
27
|
+
if (msg.data.hasOwnProperty('currentLevel')) {
|
|
28
|
+
result.light_indicator_level = msg.data['currentLevel'];
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
},
|
|
21
32
|
};
|
|
22
33
|
|
|
23
34
|
module.exports = [
|
|
@@ -189,4 +200,17 @@ module.exports = [
|
|
|
189
200
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
190
201
|
},
|
|
191
202
|
},
|
|
203
|
+
{
|
|
204
|
+
zigbeeModel: ['DONGLE-E_R'],
|
|
205
|
+
model: 'ZBDongle-E',
|
|
206
|
+
vendor: 'SONOFF',
|
|
207
|
+
description: 'Sonoff Zigbee 3.0 USB Dongle Plus (EFR32MG21) with router firmware',
|
|
208
|
+
fromZigbee: [fz.linkquality_from_basic, fzLocal.router_config],
|
|
209
|
+
toZigbee: [],
|
|
210
|
+
exposes: [exposes.numeric('light_indicator_level').withDescription('Brightness of the indicator light').withAccess(ea.STATE)],
|
|
211
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
212
|
+
device.powerSource = 'Mains (single phase)';
|
|
213
|
+
device.save();
|
|
214
|
+
},
|
|
215
|
+
},
|
|
192
216
|
];
|
package/devices/tuya.js
CHANGED
|
@@ -23,6 +23,18 @@ const TS011Fplugs = ['_TZ3000_5f43h46b', '_TZ3000_cphmq0q7', '_TZ3000_dpo1ysak',
|
|
|
23
23
|
'_TZ3000_ss98ec5d', '_TZ3000_gznh2xla', '_TZ3000_hdopuwv6', '_TZ3000_gvn91tmx', '_TZ3000_dksbtrzs', '_TZ3000_b28wrpvx'];
|
|
24
24
|
|
|
25
25
|
const tzLocal = {
|
|
26
|
+
SA12IZL_silence_siren: {
|
|
27
|
+
key: ['silence_siren'],
|
|
28
|
+
convertSet: async (entity, key, value, meta) => {
|
|
29
|
+
await tuya.sendDataPointBool(entity, 16, value);
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
SA12IZL_alarm: {
|
|
33
|
+
key: ['alarm'],
|
|
34
|
+
convertSet: async (entity, key, value, meta) => {
|
|
35
|
+
await tuya.sendDataPointEnum(entity, 20, {true: 0, false: 1}[value]);
|
|
36
|
+
},
|
|
37
|
+
},
|
|
26
38
|
hpsz: {
|
|
27
39
|
key: ['led_state'],
|
|
28
40
|
convertSet: async (entity, key, value, meta) => {
|
|
@@ -277,6 +289,59 @@ const tzLocal = {
|
|
|
277
289
|
};
|
|
278
290
|
|
|
279
291
|
const fzLocal = {
|
|
292
|
+
SA12IZL: {
|
|
293
|
+
cluster: 'manuSpecificTuya',
|
|
294
|
+
type: ['commandDataResponse', 'commandDataReport'],
|
|
295
|
+
convert: (model, msg, publish, options, meta) => {
|
|
296
|
+
const result = {};
|
|
297
|
+
for (const dpValue of msg.data.dpValues) {
|
|
298
|
+
const dp = dpValue.dp;
|
|
299
|
+
const value = tuya.getDataValue(dpValue);
|
|
300
|
+
switch (dp) {
|
|
301
|
+
case tuya.dataPoints.state:
|
|
302
|
+
result.smoke = value === 0;
|
|
303
|
+
break;
|
|
304
|
+
case 15:
|
|
305
|
+
result.battery = value;
|
|
306
|
+
break;
|
|
307
|
+
case 16:
|
|
308
|
+
result.silence_siren = value;
|
|
309
|
+
break;
|
|
310
|
+
case 20: {
|
|
311
|
+
const alarm = {0: true, 1: false};
|
|
312
|
+
result.alarm = alarm[value];
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
default:
|
|
316
|
+
meta.logger.warn(`zigbee-herdsman-converters:SA12IZL: NOT RECOGNIZED DP #${
|
|
317
|
+
dp} with data ${JSON.stringify(dpValue)}`);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return result;
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
tuya_dinrail_switch2: {
|
|
324
|
+
cluster: 'manuSpecificTuya',
|
|
325
|
+
type: ['commandDataReport', 'commandDataResponse', 'commandActiveStatusReport'],
|
|
326
|
+
convert: (model, msg, publish, options, meta) => {
|
|
327
|
+
const dpValue = tuya.firstDpValue(msg, meta, 'tuya_dinrail_switch2');
|
|
328
|
+
const dp = dpValue.dp;
|
|
329
|
+
const value = tuya.getDataValue(dpValue);
|
|
330
|
+
const state = value ? 'ON' : 'OFF';
|
|
331
|
+
|
|
332
|
+
switch (dp) {
|
|
333
|
+
case tuya.dataPoints.state: // DPID that we added to common
|
|
334
|
+
return {state: state};
|
|
335
|
+
case tuya.dataPoints.dinrailPowerMeterTotalEnergy2:
|
|
336
|
+
return {energy: value/100};
|
|
337
|
+
case tuya.dataPoints.dinrailPowerMeterPower2:
|
|
338
|
+
return {power: value};
|
|
339
|
+
default:
|
|
340
|
+
meta.logger.warn(`zigbee-herdsman-converters:TuyaDinRailSwitch: NOT RECOGNIZED DP ` +
|
|
341
|
+
`#${dp} with data ${JSON.stringify(dpValue)}`);
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
},
|
|
280
345
|
hpsz: {
|
|
281
346
|
cluster: 'manuSpecificTuya',
|
|
282
347
|
type: ['commandDataResponse', 'commandDataReport'],
|
|
@@ -911,14 +976,20 @@ module.exports = [
|
|
|
911
976
|
},
|
|
912
977
|
{
|
|
913
978
|
fingerprint: [{modelID: 'TS0202', manufacturerName: '_TYZB01_jytabjkb'},
|
|
914
|
-
{modelID: 'TS0202', manufacturerName: '_TZ3000_lltemgsf'}
|
|
979
|
+
{modelID: 'TS0202', manufacturerName: '_TZ3000_lltemgsf'},
|
|
980
|
+
{modelID: 'TS0202', manufacturerName: '_TZ3000_mg4dy6z6'}],
|
|
915
981
|
model: 'TS0202_1',
|
|
916
982
|
vendor: 'TuYa',
|
|
917
983
|
description: 'Motion sensor',
|
|
918
984
|
// Requires alarm_1_with_timeout https://github.com/Koenkk/zigbee2mqtt/issues/2818#issuecomment-776119586
|
|
919
985
|
fromZigbee: [fz.ias_occupancy_alarm_1_with_timeout, fz.battery, fz.ignore_basic_report],
|
|
920
986
|
toZigbee: [],
|
|
921
|
-
exposes: [e.occupancy(), e.battery_low(), e.linkquality()],
|
|
987
|
+
exposes: [e.occupancy(), e.battery_low(), e.linkquality(), e.battery(), e.battery_voltage()],
|
|
988
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
989
|
+
const endpoint = device.getEndpoint(1);
|
|
990
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
|
|
991
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
992
|
+
},
|
|
922
993
|
},
|
|
923
994
|
{
|
|
924
995
|
fingerprint: [{modelID: 'TS0202', manufacturerName: '_TYZB01_dr6sduka'},
|
|
@@ -987,6 +1058,7 @@ module.exports = [
|
|
|
987
1058
|
fingerprint: [{modelID: 'TS0207', manufacturerName: '_TZ3000_m0vaazab'},
|
|
988
1059
|
{modelID: 'TS0207', manufacturerName: '_TZ3000_ufttklsz'},
|
|
989
1060
|
{modelID: 'TS0207', manufacturerName: '_TZ3000_nkkl7uzv'},
|
|
1061
|
+
{modelID: 'TS0207', manufacturerName: '_TZ3000_gszjt2xx'},
|
|
990
1062
|
{modelID: 'TS0207', manufacturerName: '_TZ3000_5k5vh43t'}],
|
|
991
1063
|
model: 'TS0207_repeater',
|
|
992
1064
|
vendor: 'TuYa',
|
|
@@ -1530,6 +1602,27 @@ module.exports = [
|
|
|
1530
1602
|
},
|
|
1531
1603
|
exposes: [e.battery(), e.water_leak()],
|
|
1532
1604
|
},
|
|
1605
|
+
{
|
|
1606
|
+
fingerprint: [{modelID: 'TS0001', manufacturerName: '_TZ3000_xkap8wtb'}],
|
|
1607
|
+
model: 'TS0001_power',
|
|
1608
|
+
description: 'Switch with power monitoring',
|
|
1609
|
+
vendor: 'TuYa',
|
|
1610
|
+
fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering, fz.ignore_basic_report],
|
|
1611
|
+
toZigbee: [tz.on_off],
|
|
1612
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1613
|
+
const endpoint = device.getEndpoint(1);
|
|
1614
|
+
await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
1615
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering']);
|
|
1616
|
+
await reporting.rmsVoltage(endpoint, {change: 5});
|
|
1617
|
+
await reporting.rmsCurrent(endpoint, {change: 50});
|
|
1618
|
+
await reporting.activePower(endpoint, {change: 10});
|
|
1619
|
+
await reporting.currentSummDelivered(endpoint);
|
|
1620
|
+
endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {acCurrentDivisor: 1000, acCurrentMultiplier: 1});
|
|
1621
|
+
endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 100, multiplier: 1});
|
|
1622
|
+
device.save();
|
|
1623
|
+
},
|
|
1624
|
+
exposes: [e.switch(), e.power(), e.current(), e.voltage().withAccess(ea.STATE)],
|
|
1625
|
+
},
|
|
1533
1626
|
{
|
|
1534
1627
|
zigbeeModel: ['TS0001'],
|
|
1535
1628
|
model: 'TS0001',
|
|
@@ -1582,7 +1675,8 @@ module.exports = [
|
|
|
1582
1675
|
},
|
|
1583
1676
|
},
|
|
1584
1677
|
{
|
|
1585
|
-
fingerprint: [{modelID: 'TS0002', manufacturerName: '_TZ3000_01gpyda5'}, {modelID: 'TS0002', manufacturerName: '_TZ3000_bvrlqyj7'}
|
|
1678
|
+
fingerprint: [{modelID: 'TS0002', manufacturerName: '_TZ3000_01gpyda5'}, {modelID: 'TS0002', manufacturerName: '_TZ3000_bvrlqyj7'},
|
|
1679
|
+
{modelID: 'TS0002', manufacturerName: '_TZ3000_7ed9cqgi'}],
|
|
1586
1680
|
model: 'TS0002_switch_module',
|
|
1587
1681
|
vendor: 'TuYa',
|
|
1588
1682
|
description: '2 gang switch module',
|
|
@@ -1600,6 +1694,8 @@ module.exports = [
|
|
|
1600
1694
|
},
|
|
1601
1695
|
meta: {multiEndpoint: true},
|
|
1602
1696
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1697
|
+
await device.getEndpoint(1).read('genBasic',
|
|
1698
|
+
['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
1603
1699
|
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
1604
1700
|
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
1605
1701
|
},
|
|
@@ -1709,6 +1805,7 @@ module.exports = [
|
|
|
1709
1805
|
{modelID: 'TS0601', manufacturerName: '_TZE200_fctwhugx'},
|
|
1710
1806
|
{modelID: 'TS0601', manufacturerName: '_TZE200_zah67ekd'},
|
|
1711
1807
|
{modelID: 'TS0601', manufacturerName: '_TZE200_hsgrhjpf'},
|
|
1808
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_pw7mji0l'},
|
|
1712
1809
|
// Window pushers:
|
|
1713
1810
|
{modelID: 'TS0601', manufacturerName: '_TZE200_g5wdnuow'},
|
|
1714
1811
|
// Tubular motors:
|
|
@@ -1725,6 +1822,7 @@ module.exports = [
|
|
|
1725
1822
|
{vendor: 'Binthen', model: 'BCM100D'},
|
|
1726
1823
|
{vendor: 'Binthen', model: 'CV01A'},
|
|
1727
1824
|
{vendor: 'Zemismart', model: 'M515EGB'},
|
|
1825
|
+
{vendor: 'OZ Smart Things', model: 'ZM85EL-1Z'},
|
|
1728
1826
|
{vendor: 'TuYa', model: 'M515EGZT'},
|
|
1729
1827
|
{vendor: 'TuYa', model: 'DT82LEMA-1.2N'},
|
|
1730
1828
|
{vendor: 'TuYa', model: 'ZD82TN', description: 'Curtain motor'},
|
|
@@ -2089,6 +2187,21 @@ module.exports = [
|
|
|
2089
2187
|
toZigbee: [],
|
|
2090
2188
|
exposes: [e.smoke(), e.battery()],
|
|
2091
2189
|
},
|
|
2190
|
+
{
|
|
2191
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_5d3vhjro'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ntcy3xu1'}],
|
|
2192
|
+
model: 'SA12IZL',
|
|
2193
|
+
vendor: 'TuYa',
|
|
2194
|
+
description: 'Smart smoke alarm',
|
|
2195
|
+
meta: {timeout: 30000, disableDefaultResponse: true},
|
|
2196
|
+
fromZigbee: [fzLocal.SA12IZL],
|
|
2197
|
+
toZigbee: [tzLocal.SA12IZL_silence_siren, tzLocal.SA12IZL_alarm],
|
|
2198
|
+
exposes: [e.battery(),
|
|
2199
|
+
exposes.binary('smoke', ea.STATE, true, false).withDescription('Smoke alarm status'),
|
|
2200
|
+
exposes.enum('battery_level', ea.STATE, ['low', 'middle', 'high']).withDescription('Battery level state'),
|
|
2201
|
+
exposes.binary('alarm', ea.STATE_SET, true, false).withDescription('Enable the alarm'),
|
|
2202
|
+
exposes.binary('silence_siren', ea.STATE_SET, true, false).withDescription('Silence the siren')],
|
|
2203
|
+
onEvent: tuya.onEventsetTime,
|
|
2204
|
+
},
|
|
2092
2205
|
{
|
|
2093
2206
|
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_byzdayie'},
|
|
2094
2207
|
{modelID: 'TS0601', manufacturerName: '_TZE200_fsb6zw01'},
|
|
@@ -2104,6 +2217,19 @@ module.exports = [
|
|
|
2104
2217
|
},
|
|
2105
2218
|
exposes: [e.switch().setAccess('state', ea.STATE_SET), e.voltage(), e.power(), e.current(), e.energy()],
|
|
2106
2219
|
},
|
|
2220
|
+
{
|
|
2221
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_bkkmqmyo'}],
|
|
2222
|
+
model: 'DDS238-2',
|
|
2223
|
+
vendor: 'TuYa',
|
|
2224
|
+
description: 'Zigbee smart energy meter',
|
|
2225
|
+
fromZigbee: [fzLocal.tuya_dinrail_switch2],
|
|
2226
|
+
toZigbee: [tz.tuya_switch_state],
|
|
2227
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
2228
|
+
const endpoint = device.getEndpoint(1);
|
|
2229
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
|
|
2230
|
+
},
|
|
2231
|
+
exposes: [e.switch().setAccess('state', ea.STATE_SET), e.energy(), e.power()],
|
|
2232
|
+
},
|
|
2107
2233
|
{
|
|
2108
2234
|
fingerprint: [{modelID: 'TS1101', manufacturerName: '_TZ3000_xfs39dbf'}],
|
|
2109
2235
|
model: 'TS1101_dimmer_module_1ch',
|
|
@@ -3028,7 +3154,8 @@ module.exports = [
|
|
|
3028
3154
|
],
|
|
3029
3155
|
},
|
|
3030
3156
|
{
|
|
3031
|
-
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_qoy0ekbd'}
|
|
3157
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_qoy0ekbd'},
|
|
3158
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_znbl8dj5'}],
|
|
3032
3159
|
model: 'CX-0726',
|
|
3033
3160
|
vendor: 'TuYa',
|
|
3034
3161
|
description: 'Temperature & humidity LCD sensor',
|
package/devices/zemismart.js
CHANGED
|
@@ -201,6 +201,15 @@ module.exports = [
|
|
|
201
201
|
toZigbee: [tz.tuya_cover_control, tz.tuya_cover_options, tz.tuya_data_point_test],
|
|
202
202
|
exposes: [e.cover_position().setAccess('position', ea.STATE_SET)],
|
|
203
203
|
},
|
|
204
|
+
{
|
|
205
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_7eue9vhc'}],
|
|
206
|
+
model: 'ZM25RX-08/30',
|
|
207
|
+
vendor: 'Zemismart',
|
|
208
|
+
description: 'Tubular motor',
|
|
209
|
+
fromZigbee: [fz.tuya_cover, fz.ignore_basic_report],
|
|
210
|
+
toZigbee: [tz.tuya_cover_control, tz.tuya_cover_options],
|
|
211
|
+
exposes: [e.cover_position().setAccess('position', ea.STATE_SET)],
|
|
212
|
+
},
|
|
204
213
|
{
|
|
205
214
|
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_1n2kyphz'}],
|
|
206
215
|
model: 'TB26-4',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zigbee-herdsman-converters",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.619",
|
|
4
4
|
"description": "Collection of device converters to be used with zigbee-herdsman",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"buffer-crc32": "^0.2.13",
|
|
39
39
|
"https-proxy-agent": "^5.0.1",
|
|
40
40
|
"tar-stream": "^2.2.0",
|
|
41
|
-
"zigbee-herdsman": "^0.14.
|
|
41
|
+
"zigbee-herdsman": "^0.14.54"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"eslint": "*",
|