zigbee-herdsman-converters 14.0.328 → 14.0.332
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 -2
- package/converters/toZigbee.js +21 -11
- package/devices/girier.js +4 -1
- package/devices/gledopto.js +1 -1
- package/devices/ikea.js +4 -4
- package/devices/innr.js +1 -1
- package/devices/ledvance.js +1 -1
- package/devices/lidl.js +2 -2
- package/devices/lonsonho.js +1 -1
- package/devices/osram.js +6 -6
- package/devices/philips.js +28 -2
- package/devices/schneider_electric.js +1 -0
- package/devices/tuya.js +48 -48
- package/lib/exposes.js +1 -0
- package/npm-shrinkwrap.json +1 -1
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -3610,7 +3610,7 @@ const converters = {
|
|
|
3610
3610
|
case tuya.dataPoints.tvFrostDetection:
|
|
3611
3611
|
return {frost_protection: value ? 'ON' : 'OFF'};
|
|
3612
3612
|
case tuya.dataPoints.tvWindowDetection:
|
|
3613
|
-
return {
|
|
3613
|
+
return {open_window: value ? 'ON' : 'OFF'};
|
|
3614
3614
|
case tuya.dataPoints.tvHeatingStop:
|
|
3615
3615
|
return {heating_stop: value ? 'ON' : 'OFF'};
|
|
3616
3616
|
case tuya.dataPoints.tvLocalTemp:
|
|
@@ -3841,7 +3841,7 @@ const converters = {
|
|
|
3841
3841
|
return {'local_temperature_calibration': ( value/10 ).toFixed(1)};
|
|
3842
3842
|
case tuya.dataPoints.haozeeValvePosition:
|
|
3843
3843
|
// valve position
|
|
3844
|
-
return {'position': value};
|
|
3844
|
+
return {'position': ( value/10 ).toFixed(1)};
|
|
3845
3845
|
case tuya.dataPoints.haozeeMinTemp:
|
|
3846
3846
|
// lower limit temperature
|
|
3847
3847
|
return {'min_temperature': ( value/10 ).toFixed(1)};
|
package/converters/toZigbee.js
CHANGED
|
@@ -2810,11 +2810,10 @@ const converters = {
|
|
|
2810
2810
|
},
|
|
2811
2811
|
tvtwo_thermostat: {
|
|
2812
2812
|
key: [
|
|
2813
|
-
'
|
|
2814
|
-
'current_heating_setpoint', 'local_temperature_calibration',
|
|
2815
|
-
'holiday_temperature', 'comfort_temperature', 'eco_temperature',
|
|
2816
|
-
'
|
|
2817
|
-
'holiday_mode_date', 'working_day', 'week_schedule', 'week', 'online',
|
|
2813
|
+
'child_lock', 'open_window', 'open_window_temperature', 'frost_protection', 'heating_stop',
|
|
2814
|
+
'current_heating_setpoint', 'local_temperature_calibration', 'preset', 'boost_timeset_countdown',
|
|
2815
|
+
'holiday_mode_date', 'holiday_temperature', 'comfort_temperature', 'eco_temperature',
|
|
2816
|
+
'working_day', 'week_schedule', 'week', 'online',
|
|
2818
2817
|
],
|
|
2819
2818
|
convertSet: async (entity, key, value, meta) => {
|
|
2820
2819
|
switch (key) {
|
|
@@ -2822,13 +2821,23 @@ const converters = {
|
|
|
2822
2821
|
const presetLookup = {'auto': 0, 'manual': 1, 'holiday': 3};
|
|
2823
2822
|
await tuya.sendDataPointEnum(entity, tuya.dataPoints.tvMode, presetLookup[value]);
|
|
2824
2823
|
return {state: {preset: value}};}
|
|
2825
|
-
case 'frost_protection':
|
|
2826
|
-
await tuya.sendDataPointBool(entity, tuya.dataPoints.tvFrostDetection, value === 'ON');
|
|
2827
|
-
break;
|
|
2828
2824
|
case 'heating_stop':
|
|
2829
|
-
|
|
2825
|
+
if (value == 'ON') {
|
|
2826
|
+
await tuya.sendDataPointBool(entity, tuya.dataPoints.tvHeatingStop, 1);
|
|
2827
|
+
} else {
|
|
2828
|
+
await tuya.sendDataPointBool(entity, tuya.dataPoints.tvHeatingStop, 0);
|
|
2829
|
+
await tuya.sendDataPointEnum(entity, tuya.dataPoints.tvMode, 1 /* manual */);
|
|
2830
|
+
}
|
|
2830
2831
|
break;
|
|
2831
|
-
case '
|
|
2832
|
+
case 'frost_protection':
|
|
2833
|
+
if (value == 'ON') {
|
|
2834
|
+
await tuya.sendDataPointBool(entity, tuya.dataPoints.tvFrostDetection, 1);
|
|
2835
|
+
} else {
|
|
2836
|
+
await tuya.sendDataPointBool(entity, tuya.dataPoints.tvFrostDetection, 0);
|
|
2837
|
+
await tuya.sendDataPointEnum(entity, tuya.dataPoints.tvMode, 1 /* manual */);
|
|
2838
|
+
}
|
|
2839
|
+
break;
|
|
2840
|
+
case 'open_window':
|
|
2832
2841
|
await tuya.sendDataPointBool(entity, tuya.dataPoints.tvWindowDetection, value === 'ON');
|
|
2833
2842
|
break;
|
|
2834
2843
|
case 'child_lock':
|
|
@@ -2841,6 +2850,7 @@ const converters = {
|
|
|
2841
2850
|
break;
|
|
2842
2851
|
case 'current_heating_setpoint':
|
|
2843
2852
|
await tuya.sendDataPointValue(entity, tuya.dataPoints.tvHeatingSetpoint, value * 10);
|
|
2853
|
+
await tuya.sendDataPointEnum(entity, tuya.dataPoints.tvMode, 1 /* manual */);
|
|
2844
2854
|
break;
|
|
2845
2855
|
case 'holiday_temperature':
|
|
2846
2856
|
await tuya.sendDataPointValue(entity, tuya.dataPoints.tvHolidayTemp, value * 10);
|
|
@@ -2859,7 +2869,7 @@ const converters = {
|
|
|
2859
2869
|
await tuya.sendDataPointValue(entity, tuya.dataPoints.tvOpenWindowTemp, value * 10);
|
|
2860
2870
|
break;
|
|
2861
2871
|
case 'holiday_mode_date':
|
|
2862
|
-
await tuya.sendDataPointBitmap(entity, tuya.dataPoints.
|
|
2872
|
+
await tuya.sendDataPointBitmap(entity, tuya.dataPoints.tvHolidayMode, value);
|
|
2863
2873
|
break;
|
|
2864
2874
|
|
|
2865
2875
|
case 'online':
|
package/devices/girier.js
CHANGED
|
@@ -6,7 +6,10 @@ const extend = require('../lib/extend');
|
|
|
6
6
|
|
|
7
7
|
module.exports = [
|
|
8
8
|
{
|
|
9
|
-
fingerprint: [
|
|
9
|
+
fingerprint: [
|
|
10
|
+
{modelID: 'TS0001', manufacturerName: '_TZ3000_majwnphg'},
|
|
11
|
+
{modelID: 'TS0001', manufacturerName: '_TZ3000_6axxqqi2'},
|
|
12
|
+
],
|
|
10
13
|
model: 'JR-ZDS01',
|
|
11
14
|
vendor: 'Girier',
|
|
12
15
|
description: '1 gang mini switch',
|
package/devices/gledopto.js
CHANGED
|
@@ -464,7 +464,7 @@ module.exports = [
|
|
|
464
464
|
vendor: 'Gledopto',
|
|
465
465
|
ota: ota.zigbeeOTA,
|
|
466
466
|
description: 'Zigbee 12W Downlight RGB+CCT (pro)',
|
|
467
|
-
extend: gledoptoExtend.light_onoff_brightness_colortemp_color(),
|
|
467
|
+
extend: gledoptoExtend.light_onoff_brightness_colortemp_color({colorTempRange: [158, 495]}),
|
|
468
468
|
},
|
|
469
469
|
{
|
|
470
470
|
zigbeeModel: ['GL-D-006P'],
|
package/devices/ikea.js
CHANGED
|
@@ -354,7 +354,7 @@ module.exports = [
|
|
|
354
354
|
model: 'LED1624G9',
|
|
355
355
|
vendor: 'IKEA',
|
|
356
356
|
description: 'TRADFRI LED bulb E14/E26/E27 600 lumen, dimmable, color, opal white',
|
|
357
|
-
extend: tradfriExtend.light_onoff_brightness_colortemp_color(),
|
|
357
|
+
extend: tradfriExtend.light_onoff_brightness_colortemp_color({colorTempRange: [250, 454]}),
|
|
358
358
|
meta: {supportsHueAndSaturation: false},
|
|
359
359
|
},
|
|
360
360
|
{
|
|
@@ -376,7 +376,7 @@ module.exports = [
|
|
|
376
376
|
model: 'LED1732G11',
|
|
377
377
|
vendor: 'IKEA',
|
|
378
378
|
description: 'TRADFRI LED bulb E27 1000 lumen, dimmable, white spectrum, opal white',
|
|
379
|
-
extend: tradfriExtend.light_onoff_brightness_colortemp(),
|
|
379
|
+
extend: tradfriExtend.light_onoff_brightness_colortemp({colorTempRange: [250, 454]}),
|
|
380
380
|
},
|
|
381
381
|
{
|
|
382
382
|
zigbeeModel: ['TRADFRI bulb E27 WW 806lm', 'TRADFRI bulb E26 WW 806lm'],
|
|
@@ -753,11 +753,11 @@ module.exports = [
|
|
|
753
753
|
extend: tradfriExtend.light_onoff_brightness_colortemp(),
|
|
754
754
|
},
|
|
755
755
|
{
|
|
756
|
-
zigbeeModel: ['TRADFRI bulb GU10 CWS 345lm'],
|
|
756
|
+
zigbeeModel: ['TRADFRI bulb GU10 CWS 345lm', 'TRADFRI bulb GU10 CWS 380lm'],
|
|
757
757
|
model: 'LED1923R5',
|
|
758
758
|
vendor: 'IKEA',
|
|
759
759
|
description: 'TRADFRI LED bulb GU10 345 lumen, dimmable, white spectrum, color spectrum',
|
|
760
|
-
extend: tradfriExtend.light_onoff_brightness_colortemp_color(),
|
|
760
|
+
extend: tradfriExtend.light_onoff_brightness_colortemp_color({colorTempRange: [250, 454]}),
|
|
761
761
|
},
|
|
762
762
|
{
|
|
763
763
|
zigbeeModel: ['TRADFRI bulb E14 CWS 470lm', 'TRADFRI bulb E12 CWS 450lm'],
|
package/devices/innr.js
CHANGED
|
@@ -220,7 +220,7 @@ module.exports = [
|
|
|
220
220
|
model: 'RS 228 T',
|
|
221
221
|
vendor: 'Innr',
|
|
222
222
|
description: 'GU10 spot 350 lm, dimmable, white spectrum',
|
|
223
|
-
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [
|
|
223
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [200, 454]}),
|
|
224
224
|
meta: {applyRedFix: true, turnsOffAtBrightness1: true},
|
|
225
225
|
},
|
|
226
226
|
{
|
package/devices/ledvance.js
CHANGED
|
@@ -31,7 +31,7 @@ module.exports = [
|
|
|
31
31
|
model: 'AC25697',
|
|
32
32
|
vendor: 'LEDVANCE',
|
|
33
33
|
description: 'SMART+ CLASSIC MULTICOLOUR 60 10W E27',
|
|
34
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp_color(),
|
|
34
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
35
35
|
ota: ota.ledvance,
|
|
36
36
|
},
|
|
37
37
|
{
|
package/devices/lidl.js
CHANGED
|
@@ -553,7 +553,7 @@ module.exports = [
|
|
|
553
553
|
model: 'HG06492B',
|
|
554
554
|
vendor: 'Lidl',
|
|
555
555
|
description: 'Livarno Lux E14 candle CCT',
|
|
556
|
-
...extend.light_onoff_brightness_colortemp({disableColorTempStartup: true}),
|
|
556
|
+
...extend.light_onoff_brightness_colortemp({disableColorTempStartup: true, colorTempRange: [153, 500]}),
|
|
557
557
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
558
558
|
device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 16});
|
|
559
559
|
},
|
|
@@ -624,7 +624,7 @@ module.exports = [
|
|
|
624
624
|
fingerprint: [{modelID: 'TS0501A', manufacturerName: '_TZ3000_nosnx7im'}],
|
|
625
625
|
model: 'HG06463B',
|
|
626
626
|
vendor: 'Lidl',
|
|
627
|
-
description: 'Livarno Lux E27
|
|
627
|
+
description: 'Livarno Lux E27 G95 filament bulb',
|
|
628
628
|
extend: extend.light_onoff_brightness({disableEffect: true}),
|
|
629
629
|
meta: {turnsOffAtBrightness1: false},
|
|
630
630
|
},
|
package/devices/lonsonho.js
CHANGED
|
@@ -142,7 +142,7 @@ module.exports = [
|
|
|
142
142
|
{
|
|
143
143
|
zigbeeModel: ['ZB-RGBCW'],
|
|
144
144
|
fingerprint: [{modelID: 'ZB-CL01', manufacturerName: 'eWeLight'}, {modelID: 'ZB-CL01', manufacturerName: 'eWeLink'},
|
|
145
|
-
{modelID: 'ZB-CL02', manufacturerName: 'eWeLight'}],
|
|
145
|
+
{modelID: 'ZB-CL02', manufacturerName: 'eWeLight'}, {modelID: 'ZB-CL01', manufacturerName: 'eWeLi\u0001\u0000\u0010'}],
|
|
146
146
|
model: 'ZB-RGBCW',
|
|
147
147
|
vendor: 'Lonsonho',
|
|
148
148
|
description: 'Zigbee 3.0 LED-bulb, RGBW LED',
|
package/devices/osram.js
CHANGED
|
@@ -126,7 +126,7 @@ module.exports = [
|
|
|
126
126
|
model: 'AA70155',
|
|
127
127
|
vendor: 'OSRAM',
|
|
128
128
|
description: 'LIGHTIFY LED A19 tunable white / Classic A60 TW',
|
|
129
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp(),
|
|
129
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
130
130
|
ota: ota.ledvance,
|
|
131
131
|
},
|
|
132
132
|
{
|
|
@@ -134,7 +134,7 @@ module.exports = [
|
|
|
134
134
|
model: 'AA68199',
|
|
135
135
|
vendor: 'OSRAM',
|
|
136
136
|
description: 'LIGHTIFY LED PAR16 50 GU10 tunable white',
|
|
137
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp(),
|
|
137
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
138
138
|
ota: ota.ledvance,
|
|
139
139
|
},
|
|
140
140
|
{
|
|
@@ -142,7 +142,7 @@ module.exports = [
|
|
|
142
142
|
model: '4058075148338',
|
|
143
143
|
vendor: 'OSRAM',
|
|
144
144
|
description: 'LIGHTIFY LED PAR16 50 GU10 tunable white',
|
|
145
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp(),
|
|
145
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
146
146
|
ota: ota.ledvance,
|
|
147
147
|
},
|
|
148
148
|
{
|
|
@@ -228,7 +228,7 @@ module.exports = [
|
|
|
228
228
|
model: '4052899926110',
|
|
229
229
|
vendor: 'OSRAM',
|
|
230
230
|
description: 'Flex RGBW',
|
|
231
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp_color(),
|
|
231
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [125, 666]}),
|
|
232
232
|
ota: ota.ledvance,
|
|
233
233
|
},
|
|
234
234
|
{
|
|
@@ -278,7 +278,7 @@ module.exports = [
|
|
|
278
278
|
model: 'AB35996',
|
|
279
279
|
vendor: 'OSRAM',
|
|
280
280
|
description: 'Smart+ Spot GU10 Multicolor',
|
|
281
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp_color(),
|
|
281
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [125, 666]}),
|
|
282
282
|
ota: ota.ledvance,
|
|
283
283
|
},
|
|
284
284
|
{
|
|
@@ -318,7 +318,7 @@ module.exports = [
|
|
|
318
318
|
model: 'AC03648',
|
|
319
319
|
vendor: 'OSRAM',
|
|
320
320
|
description: 'SMART+ spot GU5.3 tunable white',
|
|
321
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp(),
|
|
321
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
322
322
|
ota: ota.ledvance,
|
|
323
323
|
},
|
|
324
324
|
{
|
package/devices/philips.js
CHANGED
|
@@ -404,6 +404,15 @@ module.exports = [
|
|
|
404
404
|
extend: hueExtend.light_onoff_brightness_colortemp_color(),
|
|
405
405
|
ota: ota.zigbeeOTA,
|
|
406
406
|
},
|
|
407
|
+
{
|
|
408
|
+
zigbeeModel: ['1740193P0'],
|
|
409
|
+
model: '1740193P0',
|
|
410
|
+
vendor: 'Philips',
|
|
411
|
+
description: 'Hue Lucca wall light',
|
|
412
|
+
meta: {turnsOffAtBrightness1: true},
|
|
413
|
+
extend: hueExtend.light_onoff_brightness(),
|
|
414
|
+
ota: ota.zigbeeOTA,
|
|
415
|
+
},
|
|
407
416
|
{
|
|
408
417
|
zigbeeModel: ['1740293P0'],
|
|
409
418
|
model: '1740293P0',
|
|
@@ -848,7 +857,7 @@ module.exports = [
|
|
|
848
857
|
vendor: 'Philips',
|
|
849
858
|
description: 'Hue white ambiance E14',
|
|
850
859
|
meta: {turnsOffAtBrightness1: true},
|
|
851
|
-
extend: hueExtend.light_onoff_brightness_colortemp(),
|
|
860
|
+
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
852
861
|
ota: ota.zigbeeOTA,
|
|
853
862
|
},
|
|
854
863
|
{
|
|
@@ -1203,7 +1212,7 @@ module.exports = [
|
|
|
1203
1212
|
ota: ota.zigbeeOTA,
|
|
1204
1213
|
},
|
|
1205
1214
|
{
|
|
1206
|
-
zigbeeModel: ['4096730P6'],
|
|
1215
|
+
zigbeeModel: ['4096730P6', '929003055601'],
|
|
1207
1216
|
model: '4096730P6',
|
|
1208
1217
|
vendor: 'Philips',
|
|
1209
1218
|
description: 'Hue Cher ceiling light',
|
|
@@ -2433,4 +2442,21 @@ module.exports = [
|
|
|
2433
2442
|
extend: hueExtend.light_onoff_brightness(),
|
|
2434
2443
|
ota: ota.zigbeeOTA,
|
|
2435
2444
|
},
|
|
2445
|
+
{
|
|
2446
|
+
zigbeeModel: ['LCD003'],
|
|
2447
|
+
model: '8719514344723',
|
|
2448
|
+
vendor: 'Philips',
|
|
2449
|
+
description: 'Akari downlight',
|
|
2450
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
2451
|
+
meta: {turnsOffAtBrightness1: true},
|
|
2452
|
+
ota: ota.zigbeeOTA,
|
|
2453
|
+
},
|
|
2454
|
+
{
|
|
2455
|
+
zigbeeModel: ['LWE004'],
|
|
2456
|
+
model: '8719514302235',
|
|
2457
|
+
vendor: 'Philips',
|
|
2458
|
+
description: 'Hue White Filament Bulb E14',
|
|
2459
|
+
extend: hueExtend.light_onoff_brightness(),
|
|
2460
|
+
ota: ota.zigbeeOTA,
|
|
2461
|
+
},
|
|
2436
2462
|
];
|
|
@@ -273,6 +273,7 @@ module.exports = [
|
|
|
273
273
|
endpoint: (device) => {
|
|
274
274
|
return {'l1': 3, 's1': 21, 's2': 22, 's3': 23, 's4': 24};
|
|
275
275
|
},
|
|
276
|
+
meta: {multiEndpoint: true},
|
|
276
277
|
exposes: [e.light_brightness().withLevelConfig().withEndpoint('l1'),
|
|
277
278
|
exposes.numeric('ballast_minimum_level', ea.ALL).withValueMin(1).withValueMax(254)
|
|
278
279
|
.withDescription('Specifies the minimum light output of the ballast')
|
package/devices/tuya.js
CHANGED
|
@@ -804,8 +804,8 @@ module.exports = [
|
|
|
804
804
|
toZigbee: [tz.tvtwo_thermostat],
|
|
805
805
|
onEvent: tuya.onEventSetLocalTime,
|
|
806
806
|
exposes: [
|
|
807
|
-
e.battery_low(), e.
|
|
808
|
-
e.
|
|
807
|
+
e.battery_low(), e.child_lock(), e.open_window(), e.open_window_temperature(), e.holiday_temperature(),
|
|
808
|
+
e.comfort_temperature(), e.eco_temperature(),
|
|
809
809
|
exposes.climate().withPreset(['auto', 'manual', 'holiday']).withLocalTemperatureCalibration(-20, 20, 1, ea.STATE_SET)
|
|
810
810
|
.withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 0, 30, 0.5, ea.STATE_SET),
|
|
811
811
|
exposes.numeric('boost_timeset_countdown', ea.STATE_SET).withUnit('second').withDescription('Setting '+
|
|
@@ -820,7 +820,7 @@ module.exports = [
|
|
|
820
820
|
exposes.binary('online', ea.STATE_SET, 'ON', 'OFF').withDescription('Is the device online'),
|
|
821
821
|
exposes.numeric('holiday_mode_date', ea.STATE_SET).withDescription('The holiday mode( ⛱ ) will '+
|
|
822
822
|
'automatically start at the set time starting point and run the holiday temperature.'),
|
|
823
|
-
exposes.composite('programming'
|
|
823
|
+
exposes.composite('programming').withDescription('Auto Mode ⏱ - In this mode,'+
|
|
824
824
|
' the device executes a preset week programming temperature time and temperature. ')
|
|
825
825
|
.withFeature(exposes.text('schedule_monday', ea.STATE))
|
|
826
826
|
.withFeature(exposes.text('schedule_tuesday', ea.STATE))
|
|
@@ -969,51 +969,6 @@ module.exports = [
|
|
|
969
969
|
description: 'Smart water/gas valve',
|
|
970
970
|
extend: extend.switch(),
|
|
971
971
|
},
|
|
972
|
-
{
|
|
973
|
-
fingerprint: [
|
|
974
|
-
{modelID: 'TS011F', manufacturerName: '_TZ3000_dpo1ysak', applicationVersion: 69},
|
|
975
|
-
{modelID: 'TS011F', manufacturerName: '_TZ3000_cphmq0q7', applicationVersion: 69},
|
|
976
|
-
{modelID: 'TS011F', manufacturerName: '_TZ3000_5f43h46b', applicationVersion: 69},
|
|
977
|
-
{modelID: 'TS011F', manufacturerName: '_TZ3000_dpo1ysak', applicationVersion: 68},
|
|
978
|
-
{modelID: 'TS011F', manufacturerName: '_TZ3000_cphmq0q7', applicationVersion: 68},
|
|
979
|
-
{modelID: 'TS011F', manufacturerName: '_TZ3000_5f43h46b', applicationVersion: 68},
|
|
980
|
-
{modelID: 'TS011F', manufacturerName: '_TZ3000_ps3dmato', applicationVersion: 69},
|
|
981
|
-
{modelID: 'TS011F', manufacturerName: '_TZ3000_w0qqde0g', applicationVersion: 68},
|
|
982
|
-
],
|
|
983
|
-
model: 'TS011F_plug_3',
|
|
984
|
-
description: 'Smart plug (with power monitoring by polling)',
|
|
985
|
-
vendor: 'TuYa',
|
|
986
|
-
whiteLabel: [{vendor: 'VIKEFON', model: 'TS011F'}],
|
|
987
|
-
fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering, fz.ignore_basic_report, fz.tuya_switch_power_outage_memory],
|
|
988
|
-
toZigbee: [tz.on_off, tz.tuya_switch_power_outage_memory],
|
|
989
|
-
configure: async (device, coordinatorEndpoint, logger) => {
|
|
990
|
-
const endpoint = device.getEndpoint(1);
|
|
991
|
-
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
992
|
-
endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {acCurrentDivisor: 1000, acCurrentMultiplier: 1});
|
|
993
|
-
endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 100, multiplier: 1});
|
|
994
|
-
device.save();
|
|
995
|
-
},
|
|
996
|
-
options: [exposes.options.measurement_poll_interval()],
|
|
997
|
-
exposes: [e.switch(), e.power(), e.current(), e.voltage().withAccess(ea.STATE),
|
|
998
|
-
e.energy(), exposes.enum('power_outage_memory', ea.STATE_SET, ['on', 'off', 'restore'])
|
|
999
|
-
.withDescription('Recover state after power outage')],
|
|
1000
|
-
onEvent: (type, data, device, options) => {
|
|
1001
|
-
const endpoint = device.getEndpoint(1);
|
|
1002
|
-
if (type === 'stop') {
|
|
1003
|
-
clearInterval(globalStore.getValue(device, 'interval'));
|
|
1004
|
-
globalStore.clearValue(device, 'interval');
|
|
1005
|
-
} else if (!globalStore.hasValue(device, 'interval')) {
|
|
1006
|
-
const seconds = options && options.measurement_poll_interval ? options.measurement_poll_interval : 60;
|
|
1007
|
-
const interval = setInterval(async () => {
|
|
1008
|
-
try {
|
|
1009
|
-
await endpoint.read('haElectricalMeasurement', ['rmsVoltage', 'rmsCurrent', 'activePower']);
|
|
1010
|
-
await endpoint.read('seMetering', ['currentSummDelivered']);
|
|
1011
|
-
} catch (error) {/* Do nothing*/}
|
|
1012
|
-
}, seconds*1000);
|
|
1013
|
-
globalStore.putValue(device, 'interval', interval);
|
|
1014
|
-
}
|
|
1015
|
-
},
|
|
1016
|
-
},
|
|
1017
972
|
{
|
|
1018
973
|
fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_cphmq0q7'},
|
|
1019
974
|
{modelID: 'TS011F', manufacturerName: '_TZ3000_ew3ldmgx'},
|
|
@@ -1059,6 +1014,51 @@ module.exports = [
|
|
|
1059
1014
|
exposes: [e.switch(), exposes.enum('power_outage_memory', ea.STATE_SET, ['on', 'off', 'restore'])
|
|
1060
1015
|
.withDescription('Recover state after power outage')],
|
|
1061
1016
|
},
|
|
1017
|
+
{
|
|
1018
|
+
fingerprint: [
|
|
1019
|
+
{modelID: 'TS011F', manufacturerName: '_TZ3000_dpo1ysak', applicationVersion: 69},
|
|
1020
|
+
{modelID: 'TS011F', manufacturerName: '_TZ3000_cphmq0q7', applicationVersion: 69},
|
|
1021
|
+
{modelID: 'TS011F', manufacturerName: '_TZ3000_5f43h46b', applicationVersion: 69},
|
|
1022
|
+
{modelID: 'TS011F', manufacturerName: '_TZ3000_dpo1ysak', applicationVersion: 68},
|
|
1023
|
+
{modelID: 'TS011F', manufacturerName: '_TZ3000_cphmq0q7', applicationVersion: 68},
|
|
1024
|
+
{modelID: 'TS011F', manufacturerName: '_TZ3000_5f43h46b', applicationVersion: 68},
|
|
1025
|
+
{modelID: 'TS011F', manufacturerName: '_TZ3000_ps3dmato', applicationVersion: 69},
|
|
1026
|
+
{modelID: 'TS011F', manufacturerName: '_TZ3000_w0qqde0g', applicationVersion: 68},
|
|
1027
|
+
],
|
|
1028
|
+
model: 'TS011F_plug_3',
|
|
1029
|
+
description: 'Smart plug (with power monitoring by polling)',
|
|
1030
|
+
vendor: 'TuYa',
|
|
1031
|
+
whiteLabel: [{vendor: 'VIKEFON', model: 'TS011F'}],
|
|
1032
|
+
fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering, fz.ignore_basic_report, fz.tuya_switch_power_outage_memory],
|
|
1033
|
+
toZigbee: [tz.on_off, tz.tuya_switch_power_outage_memory],
|
|
1034
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1035
|
+
const endpoint = device.getEndpoint(1);
|
|
1036
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
1037
|
+
endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {acCurrentDivisor: 1000, acCurrentMultiplier: 1});
|
|
1038
|
+
endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 100, multiplier: 1});
|
|
1039
|
+
device.save();
|
|
1040
|
+
},
|
|
1041
|
+
options: [exposes.options.measurement_poll_interval()],
|
|
1042
|
+
exposes: [e.switch(), e.power(), e.current(), e.voltage().withAccess(ea.STATE),
|
|
1043
|
+
e.energy(), exposes.enum('power_outage_memory', ea.STATE_SET, ['on', 'off', 'restore'])
|
|
1044
|
+
.withDescription('Recover state after power outage')],
|
|
1045
|
+
onEvent: (type, data, device, options) => {
|
|
1046
|
+
const endpoint = device.getEndpoint(1);
|
|
1047
|
+
if (type === 'stop') {
|
|
1048
|
+
clearInterval(globalStore.getValue(device, 'interval'));
|
|
1049
|
+
globalStore.clearValue(device, 'interval');
|
|
1050
|
+
} else if (!globalStore.hasValue(device, 'interval')) {
|
|
1051
|
+
const seconds = options && options.measurement_poll_interval ? options.measurement_poll_interval : 60;
|
|
1052
|
+
const interval = setInterval(async () => {
|
|
1053
|
+
try {
|
|
1054
|
+
await endpoint.read('haElectricalMeasurement', ['rmsVoltage', 'rmsCurrent', 'activePower']);
|
|
1055
|
+
await endpoint.read('seMetering', ['currentSummDelivered']);
|
|
1056
|
+
} catch (error) {/* Do nothing*/}
|
|
1057
|
+
}, seconds*1000);
|
|
1058
|
+
globalStore.putValue(device, 'interval', interval);
|
|
1059
|
+
}
|
|
1060
|
+
},
|
|
1061
|
+
},
|
|
1062
1062
|
{
|
|
1063
1063
|
zigbeeModel: ['5p1vj8r'],
|
|
1064
1064
|
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_t5p1vj8r'}, {modelID: 'TS0601', manufacturerName: '_TZE200_uebojraa'}],
|
package/lib/exposes.js
CHANGED
|
@@ -561,6 +561,7 @@ module.exports = {
|
|
|
561
561
|
max_temperature_limit: () => new Numeric('max_temperature_limit', access.STATE_SET).withUnit('°C').withDescription('Maximum temperature limit'),
|
|
562
562
|
min_temperature: () => new Numeric('min_temperature', access.STATE_SET).withUnit('°C').withDescription('Minimum temperature'),
|
|
563
563
|
occupancy: () => new Binary('occupancy', access.STATE, true, false).withDescription('Indicates whether the device detected occupancy'),
|
|
564
|
+
open_window: () => new Binary('open_window', access.STATE_SET, 'ON', 'OFF').withDescription('Enables/disables the status on the device'),
|
|
564
565
|
open_window_temperature: () => new Numeric('open_window_temperature', access.STATE_SET).withUnit('°C').withDescription('Open window temperature'),
|
|
565
566
|
pm10: () => new Numeric('pm10', access.STATE).withUnit('µg/m³').withDescription('Measured PM10 (particulate matter) concentration'),
|
|
566
567
|
pm25: () => new Numeric('pm25', access.STATE).withUnit('µg/m³').withDescription('Measured PM2.5 (particulate matter) concentration'),
|
package/npm-shrinkwrap.json
CHANGED