zigbee-herdsman-converters 14.0.552 → 14.0.555
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/RMC002.js +17 -0
- package/devices/adeo.js +16 -0
- package/devices/envilar.js +2 -2
- package/devices/giex.js +132 -0
- package/devices/ikea.js +2 -1
- package/devices/lidl.js +30 -0
- package/devices/niko.js +1 -1
- package/devices/paulmann.js +8 -1
- package/devices/philips.js +16 -588
- package/devices/schneider_electric.js +3 -2
- package/devices/tuya.js +28 -6
- package/devices/visonic.js +9 -0
- package/devices/xiaomi.js +33 -16
- package/lib/xiaomi.js +2 -3
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const reporting = require('../lib/reporting');
|
|
2
|
+
const extend = require('../lib/extend');
|
|
3
|
+
|
|
4
|
+
module.exports = [
|
|
5
|
+
{
|
|
6
|
+
zigbeeModel: ['Bouffalolab'],
|
|
7
|
+
model: 'RMC002',
|
|
8
|
+
vendor: 'Bouffalolab',
|
|
9
|
+
description: 'US plug smart socket',
|
|
10
|
+
extend: extend.switch(),
|
|
11
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
12
|
+
const endpoint = device.getEndpoint(1);
|
|
13
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
14
|
+
await reporting.onOff(endpoint);
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
];
|
package/devices/adeo.js
CHANGED
|
@@ -6,6 +6,22 @@ const tz = require('../converters/toZigbee');
|
|
|
6
6
|
const e = exposes.presets;
|
|
7
7
|
|
|
8
8
|
module.exports = [
|
|
9
|
+
{
|
|
10
|
+
zigbeeModel: ['LDSENK09'],
|
|
11
|
+
model: 'LDSENK09',
|
|
12
|
+
vendor: 'ADEO',
|
|
13
|
+
description: 'Security system key fob',
|
|
14
|
+
fromZigbee: [fz.command_arm, fz.command_panic],
|
|
15
|
+
toZigbee: [],
|
|
16
|
+
exposes: [e.action(['panic', 'disarm', 'arm_partial_zones', 'arm_all_zones'])],
|
|
17
|
+
onEvent: async (type, data, device) => {
|
|
18
|
+
// Since arm command has a response zigbee-herdsman doesn't send a default response.
|
|
19
|
+
// This causes the remote to repeat the arm command, so send a default response here.
|
|
20
|
+
if (data.type === 'commandArm' && data.cluster === 'ssIasAce') {
|
|
21
|
+
await data.endpoint.defaultResponse(0, 0, 1281, data.meta.zclTransactionSequenceNumber);
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
},
|
|
9
25
|
{
|
|
10
26
|
zigbeeModel: ['ZBEK-4'],
|
|
11
27
|
model: 'IM-CDZDGAAA0005KA_MAN',
|
package/devices/envilar.js
CHANGED
|
@@ -9,8 +9,8 @@ module.exports = [
|
|
|
9
9
|
zigbeeModel: ['ZG50CC-CCT-DRIVER'],
|
|
10
10
|
model: 'ZG50CC-CCT-DRIVER',
|
|
11
11
|
vendor: 'Envilar',
|
|
12
|
-
description: 'Zigbee LED driver',
|
|
13
|
-
extend: extend.
|
|
12
|
+
description: 'Zigbee CCT LED driver',
|
|
13
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [160, 450]}),
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
zigbeeModel: ['ZGR904-S'],
|
package/devices/giex.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
const exposes = require('../lib/exposes');
|
|
2
|
+
const tuya = require('../lib/tuya');
|
|
3
|
+
const e = exposes.presets;
|
|
4
|
+
const ea = exposes.access;
|
|
5
|
+
|
|
6
|
+
const dataPoints = {
|
|
7
|
+
// GIEX Water Valve
|
|
8
|
+
giexWaterValveState: 2,
|
|
9
|
+
giexWaterValveMode: 1,
|
|
10
|
+
giexWaterValveIrrigationTarget: 104,
|
|
11
|
+
giexWaterValveWaterConsumed: 111,
|
|
12
|
+
giexWaterValveIrrigationStartTime: 101,
|
|
13
|
+
giexWaterValveIrrigationEndTime: 102,
|
|
14
|
+
giexWaterValveLastIrrigationDuration: 114,
|
|
15
|
+
giexWaterValveBattery: 108,
|
|
16
|
+
giexWaterValveCycleIrrigationNumTimes: 103,
|
|
17
|
+
giexWaterValveCycleIrrigationInterval: 105,
|
|
18
|
+
giexWaterValveCurrentTempurature: 106,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const fzLocal = {
|
|
22
|
+
giex_water_valve:
|
|
23
|
+
{
|
|
24
|
+
cluster: 'manuSpecificTuya',
|
|
25
|
+
type: ['commandDataResponse', 'commandDataReport'],
|
|
26
|
+
convert: (model, msg, publish, options, meta) => {
|
|
27
|
+
for (const dpValue of msg.data.dpValues) {
|
|
28
|
+
const value = tuya.getDataValue(dpValue);
|
|
29
|
+
const dp = dpValue.dp;
|
|
30
|
+
switch (dp) {
|
|
31
|
+
case dataPoints.giexWaterValveState: {
|
|
32
|
+
return {state: value ? 'ON': 'OFF'};
|
|
33
|
+
}
|
|
34
|
+
case dataPoints.giexWaterValveMode: {
|
|
35
|
+
return {mode: value ? 'capacity': 'duration'};
|
|
36
|
+
}
|
|
37
|
+
case dataPoints.giexWaterValveIrrigationTarget: {
|
|
38
|
+
return {irrigation_target: value};
|
|
39
|
+
}
|
|
40
|
+
case dataPoints.giexWaterValveCycleIrrigationNumTimes: {
|
|
41
|
+
return {cycle_irrigation_num_times: value};
|
|
42
|
+
}
|
|
43
|
+
case dataPoints.giexWaterValveCycleIrrigationInterval: {
|
|
44
|
+
return {cycle_irrigation_interval: value};
|
|
45
|
+
}
|
|
46
|
+
case dataPoints.giexWaterValveWaterConsumed: {
|
|
47
|
+
return {water_consumed: value};
|
|
48
|
+
}
|
|
49
|
+
case dataPoints.giexWaterValveIrrigationStartTime: {
|
|
50
|
+
return {irrigation_start_time: value};
|
|
51
|
+
}
|
|
52
|
+
case dataPoints.giexWaterValveIrrigationEndTime: {
|
|
53
|
+
return {irrigation_end_time: value};
|
|
54
|
+
}
|
|
55
|
+
case dataPoints.giexWaterValveLastIrrigationDuration: {
|
|
56
|
+
return {last_irrigation_duration: value};
|
|
57
|
+
}
|
|
58
|
+
case dataPoints.giexWaterValveBattery: {
|
|
59
|
+
return {battery: value};
|
|
60
|
+
}
|
|
61
|
+
case dataPoints.giexWaterValveCurrentTempurature: {
|
|
62
|
+
return; // Do Nothing - value ignored because isn't a valid tempurature reading. Misdocumented and usage unclear
|
|
63
|
+
}
|
|
64
|
+
default: {
|
|
65
|
+
meta.logger.warn(`fz:giex_water_valve: NOT RECOGNIZED DP #${dp} with VALUE = ${value}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const tzLocal = {
|
|
74
|
+
giex_water_valve:
|
|
75
|
+
{
|
|
76
|
+
key: ['mode', 'irrigation_target', 'state', 'cycle_irrigation_num_times', 'cycle_irrigation_interval'],
|
|
77
|
+
convertSet: async (entity, key, value, meta) => {
|
|
78
|
+
switch (key) {
|
|
79
|
+
case 'mode': {
|
|
80
|
+
let mode = 0;
|
|
81
|
+
if (value === 'duration') mode = 0;
|
|
82
|
+
else if (value === 'capacity') mode = 1;
|
|
83
|
+
await tuya.sendDataPointBool(entity, dataPoints.giexWaterValveMode, mode);
|
|
84
|
+
return {state: {mode: value}};
|
|
85
|
+
}
|
|
86
|
+
case 'irrigation_target':
|
|
87
|
+
await tuya.sendDataPointValue(entity, dataPoints.giexWaterValveIrrigationTarget, value);
|
|
88
|
+
return {state: {irrigation_target: value}};
|
|
89
|
+
case 'state':
|
|
90
|
+
await tuya.sendDataPointBool(entity, dataPoints.giexWaterValveState, value === 'ON');
|
|
91
|
+
break;
|
|
92
|
+
case 'cycle_irrigation_num_times':
|
|
93
|
+
await tuya.sendDataPointValue(entity, dataPoints.giexWaterValveCycleIrrigationNumTimes, value);
|
|
94
|
+
return {state: {cycle_irrigation_num_times: value}};
|
|
95
|
+
case 'cycle_irrigation_interval':
|
|
96
|
+
await tuya.sendDataPointValue(entity, dataPoints.giexWaterValveCycleIrrigationInterval, value);
|
|
97
|
+
return {state: {cycle_irrigation_interval: value}};
|
|
98
|
+
default: // Unknown key warning
|
|
99
|
+
meta.logger.warn(`tz.GIEX_water_valve: Unhandled key ${key}`);
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
module.exports = [
|
|
106
|
+
{
|
|
107
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_sh1btabb'}],
|
|
108
|
+
model: 'QT06',
|
|
109
|
+
vendor: 'GiEX',
|
|
110
|
+
description: 'Water irrigation valve',
|
|
111
|
+
onEvent: tuya.onEventSetLocalTime,
|
|
112
|
+
fromZigbee: [fzLocal.giex_water_valve],
|
|
113
|
+
toZigbee: [tzLocal.giex_water_valve],
|
|
114
|
+
exposes: [
|
|
115
|
+
e.battery(),
|
|
116
|
+
exposes.binary('state', ea.STATE_SET, 'ON', 'OFF').withDescription('State'),
|
|
117
|
+
exposes.enum('mode', ea.STATE_SET, ['duration', 'capacity']).withDescription('Irrigation mode'),
|
|
118
|
+
exposes.numeric('irrigation_target', exposes.access.STATE_SET).withValueMin(0).withValueMax(1440).withUnit('mintues or Litres')
|
|
119
|
+
.withDescription('Irrigation Target, duration in minutes or capacity in Liters (depending on mode)'),
|
|
120
|
+
exposes.numeric('cycle_irrigation_num_times', exposes.access.STATE_SET).withValueMin(0).withValueMax(100).withUnit('#')
|
|
121
|
+
.withDescription('Number of cycle irrigation times, set to 0 for single cycle'),
|
|
122
|
+
exposes.numeric('cycle_irrigation_interval', exposes.access.STATE_SET).withValueMin(0).withValueMax(1440).withUnit('min')
|
|
123
|
+
.withDescription('Cycle irrigation interval'),
|
|
124
|
+
exposes.numeric('irrigation_start_time', ea.STATE).withUnit('GMT+8').withDescription('Irrigation start time'),
|
|
125
|
+
exposes.numeric('irrigation_end_time', ea.STATE).withUnit('GMT+8').withDescription('Irrigation end time'),
|
|
126
|
+
exposes.numeric('last_irrigation_duration', exposes.access.STATE).withUnit('min')
|
|
127
|
+
.withDescription('Last irrigation duration'),
|
|
128
|
+
exposes.numeric('water_consumed', exposes.access.STATE).withUnit('L')
|
|
129
|
+
.withDescription('Water consumed (Litres)'),
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
];
|
package/devices/ikea.js
CHANGED
|
@@ -292,7 +292,8 @@ module.exports = [
|
|
|
292
292
|
extend: tradfriExtend.light_onoff_brightness_colortemp(),
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
|
-
zigbeeModel: ['TRADFRIbulbE27WSglobeopal1055lm', 'TRADFRIbulbE26WSglobeopal1100lm', 'TRADFRIbulbE26WSglobeopal1160lm'
|
|
295
|
+
zigbeeModel: ['TRADFRIbulbE27WSglobeopal1055lm', 'TRADFRIbulbE26WSglobeopal1100lm', 'TRADFRIbulbE26WSglobeopal1160lm',
|
|
296
|
+
'TRADFRIbulbE26WSglobeopal1055lm'],
|
|
296
297
|
model: 'LED2003G10',
|
|
297
298
|
vendor: 'IKEA',
|
|
298
299
|
description: 'TRADFRI LED bulb E26/27 1100/1055/1160 lumen, dimmable, white spectrum, opal white',
|
package/devices/lidl.js
CHANGED
|
@@ -539,6 +539,17 @@ module.exports = [
|
|
|
539
539
|
device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 16});
|
|
540
540
|
},
|
|
541
541
|
},
|
|
542
|
+
{
|
|
543
|
+
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3210_umi6vbsz'}],
|
|
544
|
+
model: 'HG08010',
|
|
545
|
+
vendor: 'Lidl',
|
|
546
|
+
description: 'Livarno Home outdoor spotlight',
|
|
547
|
+
...extend.light_onoff_brightness_colortemp_color({disableColorTempStartup: true, colorTempRange: [153, 500]}),
|
|
548
|
+
meta: {applyRedFix: true, enhancedHue: false},
|
|
549
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
550
|
+
device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 29});
|
|
551
|
+
},
|
|
552
|
+
},
|
|
542
553
|
{
|
|
543
554
|
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3210_p9ao60da'}],
|
|
544
555
|
model: 'HG08008',
|
|
@@ -595,6 +606,17 @@ module.exports = [
|
|
|
595
606
|
device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 29});
|
|
596
607
|
},
|
|
597
608
|
},
|
|
609
|
+
{
|
|
610
|
+
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_q50zhdsc'}],
|
|
611
|
+
model: 'HG08131C',
|
|
612
|
+
vendor: 'Lidl',
|
|
613
|
+
description: 'Livarno Home outdoor E27 bulb in set with flare',
|
|
614
|
+
...extend.light_onoff_brightness_colortemp_color({disableColorTempStartup: true, colorTempRange: [153, 500]}),
|
|
615
|
+
meta: {applyRedFix: true, enhancedHue: false},
|
|
616
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
617
|
+
device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 29});
|
|
618
|
+
},
|
|
619
|
+
},
|
|
598
620
|
{
|
|
599
621
|
fingerprint: [{modelID: 'TS0505A', manufacturerName: '_TZ3000_kdpxju99'}],
|
|
600
622
|
model: 'HG06106A',
|
|
@@ -772,6 +794,14 @@ module.exports = [
|
|
|
772
794
|
extend: extend.light_onoff_brightness_colortemp_color({supportsHS: true, preferHS: true, colorTempRange: [153, 500]}),
|
|
773
795
|
meta: {enhancedHue: false},
|
|
774
796
|
},
|
|
797
|
+
{
|
|
798
|
+
fingerprint: [{modelID: 'TS0505B', manufactureName: '_TZ3000_bwlvyjwk'}],
|
|
799
|
+
model: 'HG08383B',
|
|
800
|
+
vendor: 'Lidl',
|
|
801
|
+
description: 'Livarno outdoor LED light chain',
|
|
802
|
+
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500], disableColorTempStartup: true}),
|
|
803
|
+
meta: {applyRedFix: true, enhancedHue: false},
|
|
804
|
+
},
|
|
775
805
|
{
|
|
776
806
|
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_chyvmhay'}],
|
|
777
807
|
model: '368308_2010',
|
package/devices/niko.js
CHANGED
|
@@ -96,7 +96,7 @@ const local = {
|
|
|
96
96
|
module.exports = [
|
|
97
97
|
{
|
|
98
98
|
zigbeeModel: ['Connected socket outlet'],
|
|
99
|
-
model: '170-33505',
|
|
99
|
+
model: '170-33505/170-34605',
|
|
100
100
|
vendor: 'Niko',
|
|
101
101
|
description: 'Connected socket outlet',
|
|
102
102
|
fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering, local.fz.outlet],
|
package/devices/paulmann.js
CHANGED
|
@@ -64,7 +64,14 @@ module.exports = [
|
|
|
64
64
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
|
-
|
|
67
|
+
fingerprint: [{modelID: 'RGBW Controller', manufacturerName: 'Paulmann Licht'}],
|
|
68
|
+
model: '94191',
|
|
69
|
+
vendor: 'Paulmann',
|
|
70
|
+
description: 'Plug & shine LED strip',
|
|
71
|
+
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
zigbeeModel: ['CCT light', 'CCT_light', 'CCT light '],
|
|
68
75
|
model: '50064',
|
|
69
76
|
vendor: 'Paulmann',
|
|
70
77
|
description: 'SmartHome led spot',
|