zigbee-herdsman-converters 15.0.39 → 15.0.41
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/ajax_online.js +1 -1
- package/devices/bankamp.js +1 -1
- package/devices/datek.js +6 -7
- package/devices/essentialb.js +7 -0
- package/devices/immax.js +1 -1
- package/devices/linkind.js +7 -0
- package/devices/lonsonho.js +1 -1
- package/devices/stelpro.js +3 -0
- package/devices/tuya.js +16 -15
- package/lib/tuya.js +6 -2
- package/package.json +1 -1
package/devices/ajax_online.js
CHANGED
|
@@ -39,7 +39,7 @@ module.exports = [
|
|
|
39
39
|
meta: {applyRedFix: true, enhancedHue: false},
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
|
|
42
|
+
fingerprint: [{modelID: 'CCT Light', manufacturerName: 'ZB/Ajax Online', manufacturerID: 4137}],
|
|
43
43
|
model: 'ZB-CCT_Filament',
|
|
44
44
|
vendor: 'Ajax Online',
|
|
45
45
|
description: 'Zigbee LED filament light dimmable E27, edison ST64, flame 2200K',
|
package/devices/bankamp.js
CHANGED
package/devices/datek.js
CHANGED
|
@@ -10,12 +10,13 @@ const ea = exposes.access;
|
|
|
10
10
|
|
|
11
11
|
module.exports = [
|
|
12
12
|
{
|
|
13
|
-
|
|
13
|
+
zigbeeModel: ['PoP'],
|
|
14
14
|
model: 'HLU2909K',
|
|
15
15
|
vendor: 'Datek',
|
|
16
16
|
description: 'APEX smart plug 16A',
|
|
17
17
|
fromZigbee: [fz.on_off, fz.electrical_measurement, fz.temperature],
|
|
18
18
|
toZigbee: [tz.on_off, tz.power_on_behavior],
|
|
19
|
+
ota: ota.zigbeeOTA,
|
|
19
20
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
20
21
|
const endpoint = device.getEndpoint(1);
|
|
21
22
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'msTemperatureMeasurement']);
|
|
@@ -28,11 +29,10 @@ module.exports = [
|
|
|
28
29
|
await reporting.activePower(endpoint);
|
|
29
30
|
await reporting.temperature(endpoint);
|
|
30
31
|
},
|
|
31
|
-
ota: ota.zigbeeOTA,
|
|
32
32
|
exposes: [e.power(), e.current(), e.voltage(), e.switch(), e.temperature(), e.power_on_behavior()],
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
|
|
35
|
+
zigbeeModel: ['Meter Reader'],
|
|
36
36
|
model: 'HSE2905E',
|
|
37
37
|
vendor: 'Datek',
|
|
38
38
|
description: 'Datek Eva AMS HAN power-meter sensor',
|
|
@@ -86,7 +86,7 @@ module.exports = [
|
|
|
86
86
|
e.voltage_phase_c(), e.temperature()],
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
|
|
89
|
+
zigbeeModel: ['Motion Sensor'],
|
|
90
90
|
model: 'HSE2927E',
|
|
91
91
|
vendor: 'Datek',
|
|
92
92
|
description: 'Eva motion sensor',
|
|
@@ -114,7 +114,7 @@ module.exports = [
|
|
|
114
114
|
exposes.numeric('occupancy_timeout', ea.ALL).withUnit('seconds').withValueMin(0).withValueMax(65535)],
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
|
-
|
|
117
|
+
zigbeeModel: ['ID Lock 150'],
|
|
118
118
|
model: '0402946',
|
|
119
119
|
vendor: 'Datek',
|
|
120
120
|
description: 'Zigbee module for ID lock 150',
|
|
@@ -188,7 +188,7 @@ module.exports = [
|
|
|
188
188
|
'random_pin_24_hours']).withDescription('Service Mode of the Lock')],
|
|
189
189
|
},
|
|
190
190
|
{
|
|
191
|
-
|
|
191
|
+
zigbeeModel: ['Water Sensor'],
|
|
192
192
|
model: 'HSE2919E',
|
|
193
193
|
vendor: 'Datek',
|
|
194
194
|
description: 'Eva water leak sensor',
|
|
@@ -229,7 +229,6 @@ module.exports = [
|
|
|
229
229
|
'brightness_move_down', 'brightness_move_up', 'brightness_stop'])],
|
|
230
230
|
},
|
|
231
231
|
{
|
|
232
|
-
fingerprint: [{modelID: 'Door/Window Sensor', manufacturerName: 'Eva'}],
|
|
233
232
|
zigbeeModel: ['Door/Window Sensor'],
|
|
234
233
|
model: 'HSE2920E',
|
|
235
234
|
vendor: 'Datek',
|
package/devices/essentialb.js
CHANGED
|
@@ -8,4 +8,11 @@ module.exports = [
|
|
|
8
8
|
description: 'Smart LED bulb',
|
|
9
9
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
10
10
|
},
|
|
11
|
+
{
|
|
12
|
+
zigbeeModel: ['EB-E27-ST64-CCT-FV'],
|
|
13
|
+
model: 'EB-E27-ST64-CCT-FV',
|
|
14
|
+
vendor: 'EssentielB',
|
|
15
|
+
description: 'Filament vintage light bulb',
|
|
16
|
+
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 454]}),
|
|
17
|
+
},
|
|
11
18
|
];
|
package/devices/immax.js
CHANGED
|
@@ -192,7 +192,7 @@ module.exports = [
|
|
|
192
192
|
exposes: [e.action(['disarm', 'arm_home', 'arm_away', 'sos']), e.tamper()],
|
|
193
193
|
meta: {
|
|
194
194
|
tuyaDatapoints: [
|
|
195
|
-
[24, 'tamper', tuya.valueConverter.
|
|
195
|
+
[24, 'tamper', tuya.valueConverter.trueFalse1],
|
|
196
196
|
[26, 'action', tuya.valueConverter.static('disarm')],
|
|
197
197
|
[27, 'action', tuya.valueConverter.static('arm_away')],
|
|
198
198
|
[28, 'action', tuya.valueConverter.static('arm_home')],
|
package/devices/linkind.js
CHANGED
|
@@ -81,6 +81,13 @@ module.exports = [
|
|
|
81
81
|
description: 'Zigbee LED 4.8W GU10 bulb, dimmable & tunable',
|
|
82
82
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
83
83
|
},
|
|
84
|
+
{
|
|
85
|
+
zigbeeModel: ['ZBT-CCTLight-D115'],
|
|
86
|
+
model: 'ZL13100314',
|
|
87
|
+
vendor: 'Linkind',
|
|
88
|
+
description: 'Ceiling light 28W, 3000 lm, Ø40CM CCT',
|
|
89
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
90
|
+
},
|
|
84
91
|
{
|
|
85
92
|
zigbeeModel: ['ZBT-CCTLight-BR300107'],
|
|
86
93
|
model: 'ZL100050004',
|
package/devices/lonsonho.js
CHANGED
|
@@ -183,7 +183,7 @@ module.exports = [
|
|
|
183
183
|
{disableColorTempStartup: true, colorTempRange: [153, 500], disableEffect: true}),
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
|
-
fingerprint: [{modelID: 'TS0003', manufacturerName: '_TYZB01_zsl6z0pw'}],
|
|
186
|
+
fingerprint: [{modelID: 'TS0003', manufacturerName: '_TYZB01_zsl6z0pw'}, {modelID: 'TS0003', manufacturerName: '_TYZB01_uqkphoed'}],
|
|
187
187
|
model: 'QS-Zigbee-S04-2C-LN',
|
|
188
188
|
vendor: 'Lonsonho',
|
|
189
189
|
description: '2 gang switch module with neutral wire',
|
package/devices/stelpro.js
CHANGED
|
@@ -48,6 +48,9 @@ module.exports = [
|
|
|
48
48
|
await reporting.thermostatSystemMode(endpoint);
|
|
49
49
|
await reporting.thermostatPIHeatingDemand(endpoint);
|
|
50
50
|
await reporting.thermostatKeypadLockMode(endpoint);
|
|
51
|
+
// Has Unknown power source, force it.
|
|
52
|
+
device.powerSource = 'Mains (single phase)';
|
|
53
|
+
device.save();
|
|
51
54
|
},
|
|
52
55
|
},
|
|
53
56
|
{
|
package/devices/tuya.js
CHANGED
|
@@ -873,10 +873,10 @@ module.exports = [
|
|
|
873
873
|
exposes: [e.gas(), tuya.exposes.selfTest(), tuya.exposes.selfTestResult(), tuya.exposes.faultAlarm(), tuya.exposes.silence()],
|
|
874
874
|
meta: {
|
|
875
875
|
tuyaDatapoints: [
|
|
876
|
-
[1, 'gas', tuya.valueConverter.
|
|
876
|
+
[1, 'gas', tuya.valueConverter.trueFalse0],
|
|
877
877
|
[8, 'self_test', tuya.valueConverter.raw],
|
|
878
878
|
[9, 'self_test_result', tuya.valueConverter.selfTestResult],
|
|
879
|
-
[11, 'fault_alarm', tuya.valueConverter.
|
|
879
|
+
[11, 'fault_alarm', tuya.valueConverter.trueFalse1],
|
|
880
880
|
[16, 'silence', tuya.valueConverter.raw],
|
|
881
881
|
],
|
|
882
882
|
},
|
|
@@ -1828,7 +1828,7 @@ module.exports = [
|
|
|
1828
1828
|
vendor: 'TuYa',
|
|
1829
1829
|
description: 'Wireless switch with 4 buttons',
|
|
1830
1830
|
whiteLabel: [{vendor: 'Lonsonho', model: 'TS0044'}, {vendor: 'Haozee', model: 'ESW-OZAA-EU'},
|
|
1831
|
-
{vendor: 'LoraTap', model: 'SS6400ZB'}],
|
|
1831
|
+
{vendor: 'LoraTap', model: 'SS6400ZB'}, {vendor: 'Moes', model: 'ZT-SY-EU-G-4S-WH-MS'}],
|
|
1832
1832
|
fromZigbee: [fz.tuya_on_off_action, fz.battery],
|
|
1833
1833
|
exposes: [e.battery(), e.action(['1_single', '1_double', '1_hold', '2_single', '2_double', '2_hold',
|
|
1834
1834
|
'3_single', '3_double', '3_hold', '4_single', '4_double', '4_hold'])],
|
|
@@ -1894,7 +1894,8 @@ module.exports = [
|
|
|
1894
1894
|
exposes: [e.battery(), e.water_leak()],
|
|
1895
1895
|
},
|
|
1896
1896
|
{
|
|
1897
|
-
fingerprint: tuya.fingerprint('TS0001', ['_TZ3000_xkap8wtb', '_TZ3000_qnejhcsu', '_TZ3000_x3ewpzyr',
|
|
1897
|
+
fingerprint: tuya.fingerprint('TS0001', ['_TZ3000_xkap8wtb', '_TZ3000_qnejhcsu', '_TZ3000_x3ewpzyr',
|
|
1898
|
+
'_TZ3000_mkhkxx1p', '_TZ3000_tgddllx4']),
|
|
1898
1899
|
model: 'TS0001_power',
|
|
1899
1900
|
description: 'Switch with power monitoring',
|
|
1900
1901
|
vendor: 'TuYa',
|
|
@@ -2302,7 +2303,7 @@ module.exports = [
|
|
|
2302
2303
|
[31, 'working_day', tuya.valueConverterBasic.lookup({'mon_sun': tuya.enum(0), 'mon_fri+sat+sun': tuya.enum(1),
|
|
2303
2304
|
'separate': tuya.enum(2)})],
|
|
2304
2305
|
[32, 'holiday_temperature', tuya.valueConverter.divideBy10],
|
|
2305
|
-
[35, 'battery_low', tuya.valueConverter.
|
|
2306
|
+
[35, 'battery_low', tuya.valueConverter.trueFalse0],
|
|
2306
2307
|
[40, 'child_lock', tuya.valueConverter.lockUnlock],
|
|
2307
2308
|
[45, 'error_status', tuya.valueConverter.raw],
|
|
2308
2309
|
[46, 'holiday_start_stop', tuya.valueConverter.thermostatHolidayStartStop],
|
|
@@ -2349,7 +2350,7 @@ module.exports = [
|
|
|
2349
2350
|
[16, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
|
|
2350
2351
|
[24, 'local_temperature', tuya.valueConverter.divideBy10],
|
|
2351
2352
|
[27, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
|
|
2352
|
-
[35, 'battery_low', tuya.valueConverter.
|
|
2353
|
+
[35, 'battery_low', tuya.valueConverter.trueFalse0],
|
|
2353
2354
|
[40, 'child_lock', tuya.valueConverter.lockUnlock],
|
|
2354
2355
|
[45, 'error_status', tuya.valueConverter.raw],
|
|
2355
2356
|
[101, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDP],
|
|
@@ -2626,9 +2627,9 @@ module.exports = [
|
|
|
2626
2627
|
exposes: [e.smoke(), e.tamper(), e.battery_low()],
|
|
2627
2628
|
meta: {
|
|
2628
2629
|
tuyaDatapoints: [
|
|
2629
|
-
[1, 'smoke', tuya.valueConverter.
|
|
2630
|
+
[1, 'smoke', tuya.valueConverter.trueFalse0],
|
|
2630
2631
|
[4, 'tamper', tuya.valueConverter.raw],
|
|
2631
|
-
[14, 'battery_low', tuya.valueConverter.
|
|
2632
|
+
[14, 'battery_low', tuya.valueConverter.trueFalse0],
|
|
2632
2633
|
],
|
|
2633
2634
|
},
|
|
2634
2635
|
},
|
|
@@ -2648,7 +2649,7 @@ module.exports = [
|
|
|
2648
2649
|
],
|
|
2649
2650
|
meta: {
|
|
2650
2651
|
tuyaDatapoints: [
|
|
2651
|
-
[1, 'smoke', tuya.valueConverter.
|
|
2652
|
+
[1, 'smoke', tuya.valueConverter.trueFalse0],
|
|
2652
2653
|
[2, 'smoke_concentration', tuya.valueConverter.divideBy10],
|
|
2653
2654
|
[11, 'device_fault', tuya.valueConverter.raw],
|
|
2654
2655
|
[15, 'battery', tuya.valueConverter.raw],
|
|
@@ -2659,7 +2660,7 @@ module.exports = [
|
|
|
2659
2660
|
{
|
|
2660
2661
|
zigbeeModel: ['5p1vj8r'],
|
|
2661
2662
|
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_t5p1vj8r', '_TZE200_uebojraa', '_TZE200_vzekyi4c', '_TZE200_yh7aoahi',
|
|
2662
|
-
'_TZE200_dnz6yvl2']),
|
|
2663
|
+
'_TZE200_dnz6yvl2', '_TZE200_dq1mfjug']),
|
|
2663
2664
|
model: 'TS0601_smoke',
|
|
2664
2665
|
vendor: 'TuYa',
|
|
2665
2666
|
description: 'Smoke sensor',
|
|
@@ -2668,7 +2669,7 @@ module.exports = [
|
|
|
2668
2669
|
exposes: [e.smoke(), e.battery(), tuya.exposes.batteryState()],
|
|
2669
2670
|
meta: {
|
|
2670
2671
|
tuyaDatapoints: [
|
|
2671
|
-
[1, 'smoke', tuya.valueConverter.
|
|
2672
|
+
[1, 'smoke', tuya.valueConverter.trueFalse0],
|
|
2672
2673
|
[14, 'battery_state', tuya.valueConverter.batteryState],
|
|
2673
2674
|
[15, 'battery', tuya.valueConverter.raw],
|
|
2674
2675
|
],
|
|
@@ -3449,9 +3450,9 @@ module.exports = [
|
|
|
3449
3450
|
],
|
|
3450
3451
|
meta: {
|
|
3451
3452
|
tuyaDatapoints: [
|
|
3452
|
-
[1, 'presence', tuya.valueConverter.
|
|
3453
|
+
[1, 'presence', tuya.valueConverter.trueFalse1],
|
|
3453
3454
|
[2, 'radar_sensitivity', tuya.valueConverter.raw],
|
|
3454
|
-
[102, 'occupancy', tuya.valueConverterBasic.
|
|
3455
|
+
[102, 'occupancy', tuya.valueConverterBasic.trueFalse2],
|
|
3455
3456
|
[103, 'illuminance_lux', tuya.valueConverter.raw],
|
|
3456
3457
|
[105, 'tumble_switch', tuya.valueConverter.plus1],
|
|
3457
3458
|
[106, 'tumble_alarm_time', tuya.valueConverter.raw],
|
|
@@ -3857,7 +3858,7 @@ module.exports = [
|
|
|
3857
3858
|
exposes: [e.gas(), tuya.exposes.gasValue().withUnit('ppm')],
|
|
3858
3859
|
meta: {
|
|
3859
3860
|
tuyaDatapoints: [
|
|
3860
|
-
[1, 'gas', tuya.valueConverter.
|
|
3861
|
+
[1, 'gas', tuya.valueConverter.trueFalse0],
|
|
3861
3862
|
[2, 'gas_value', tuya.valueConverter.raw],
|
|
3862
3863
|
],
|
|
3863
3864
|
},
|
|
@@ -3875,7 +3876,7 @@ module.exports = [
|
|
|
3875
3876
|
[tz.light_onoff_brightness],
|
|
3876
3877
|
[tzLocal.TS110E_light_onoff_brightness],
|
|
3877
3878
|
),
|
|
3878
|
-
exposes: [e.light_brightness(), e.power_on_behavior(), tuya.exposes.switchType()],
|
|
3879
|
+
exposes: [e.light_brightness().withMinBrightness().withMaxBrightness(), e.power_on_behavior(), tuya.exposes.switchType()],
|
|
3879
3880
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
3880
3881
|
await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
|
|
3881
3882
|
await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
|
package/lib/tuya.js
CHANGED
|
@@ -1243,10 +1243,15 @@ const valueConverterBasic = {
|
|
|
1243
1243
|
divideBy: (value) => {
|
|
1244
1244
|
return {to: (v) => v * value, from: (v) => v / value};
|
|
1245
1245
|
},
|
|
1246
|
+
trueFalse: (valueTrue) => {
|
|
1247
|
+
return {from: (v) => v === valueTrue};
|
|
1248
|
+
},
|
|
1246
1249
|
};
|
|
1247
1250
|
|
|
1248
1251
|
const valueConverter = {
|
|
1249
|
-
|
|
1252
|
+
trueFalse0: valueConverterBasic.trueFalse(0),
|
|
1253
|
+
trueFalse1: valueConverterBasic.trueFalse(1),
|
|
1254
|
+
trueFalse2: valueConverterBasic.trueFalse(2),
|
|
1250
1255
|
onOff: valueConverterBasic.lookup({'ON': true, 'OFF': false}),
|
|
1251
1256
|
powerOnBehavior: valueConverterBasic.lookup({'off': 0, 'on': 1, 'previous': 2}),
|
|
1252
1257
|
lightType: valueConverterBasic.lookup({'led': 0, 'incandescent': 1, 'halogen': 2}),
|
|
@@ -1308,7 +1313,6 @@ const valueConverter = {
|
|
|
1308
1313
|
};
|
|
1309
1314
|
},
|
|
1310
1315
|
},
|
|
1311
|
-
true0ElseFalse: {from: (v) => v === 0},
|
|
1312
1316
|
selfTestResult: valueConverterBasic.lookup({'checking': 0, 'success': 1, 'failure': 2, 'others': 3}),
|
|
1313
1317
|
lockUnlock: valueConverterBasic.lookup({'LOCK': true, 'UNLOCK': false}),
|
|
1314
1318
|
localTempCalibration1: {
|