zigbee-herdsman-converters 14.0.553 → 14.0.556

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.
@@ -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',
@@ -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.light_onoff_brightness(),
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'],
@@ -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
@@ -46,7 +46,7 @@ const bulbOnEvent = async (type, data, device, options, state) => {
46
46
  };
47
47
 
48
48
  const configureRemote = async (device, coordinatorEndpoint, logger) => {
49
- // Firmware 2.3.75 >= only supports binding to endpoint, before only to group
49
+ // Firmware 2.3.075 >= only supports binding to endpoint, before only to group
50
50
  // - https://github.com/Koenkk/zigbee2mqtt/issues/2772#issuecomment-577389281
51
51
  // - https://github.com/Koenkk/zigbee2mqtt/issues/7716
52
52
  const endpoint = device.getEndpoint(1);
@@ -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
@@ -486,14 +486,6 @@ module.exports = [
486
486
  device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 29});
487
487
  },
488
488
  },
489
- {
490
- fingerprint: [{modelID: 'TS0505B', manufactureName: '_TZ3210_umi6vbsz'}],
491
- model: '100341862',
492
- vendor: 'Lidl',
493
- description: 'Livarno Home LED-Flooder',
494
- extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500], disableColorTempStartup: true}),
495
- meta: {applyRedFix: true, enhancedHue: false},
496
- },
497
489
  {
498
490
  fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_s8gkrkxk'}],
499
491
  model: 'HG06467',
@@ -547,6 +539,17 @@ module.exports = [
547
539
  device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 16});
548
540
  },
549
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
+ },
550
553
  {
551
554
  fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3210_p9ao60da'}],
552
555
  model: 'HG08008',
@@ -603,6 +606,17 @@ module.exports = [
603
606
  device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 29});
604
607
  },
605
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
+ },
606
620
  {
607
621
  fingerprint: [{modelID: 'TS0505A', manufacturerName: '_TZ3000_kdpxju99'}],
608
622
  model: 'HG06106A',
@@ -780,6 +794,14 @@ module.exports = [
780
794
  extend: extend.light_onoff_brightness_colortemp_color({supportsHS: true, preferHS: true, colorTempRange: [153, 500]}),
781
795
  meta: {enhancedHue: false},
782
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
+ },
783
805
  {
784
806
  fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_chyvmhay'}],
785
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],
@@ -63,6 +63,13 @@ module.exports = [
63
63
  description: 'Smart Home Zigbee LED bulb 9,3W Matt E27 RGBW',
64
64
  extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
65
65
  },
66
+ {
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
+ },
66
73
  {
67
74
  zigbeeModel: ['CCT light', 'CCT_light', 'CCT light '],
68
75
  model: '50064',