zigbee-herdsman-converters 14.0.650 → 14.0.652

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.
@@ -4405,6 +4405,30 @@ const converters = {
4405
4405
  }
4406
4406
  },
4407
4407
  },
4408
+ sinope_led_color_on: {
4409
+ // DM2500ZB and SW2500ZB
4410
+ key: ['led_color_on'],
4411
+ convertSet: async (entity, key, value, meta) => {
4412
+ const r = (value.r >= 0 && value.r <= 255) ? value.r : 0;
4413
+ const g = (value.g >= 0 && value.g <= 255) ? value.g : 0;
4414
+ const b = (value.b >= 0 && value.b <= 255) ? value.b : 0;
4415
+
4416
+ const valueHex = r + g * 256 + (b * 256 ** 2);
4417
+ await entity.write('manuSpecificSinope', {ledColorOn: valueHex});
4418
+ },
4419
+ },
4420
+ sinope_led_color_off: {
4421
+ // DM2500ZB and SW2500ZB
4422
+ key: ['led_color_off'],
4423
+ convertSet: async (entity, key, value, meta) => {
4424
+ const r = (value.r >= 0 && value.r <= 255) ? value.r : 0;
4425
+ const g = (value.g >= 0 && value.g <= 255) ? value.g : 0;
4426
+ const b = (value.b >= 0 && value.b <= 255) ? value.b : 0;
4427
+
4428
+ const valueHex = r + g * 256 + b * 256 ** 2;
4429
+ await entity.write('manuSpecificSinope', {ledColorOff: valueHex});
4430
+ },
4431
+ },
4408
4432
  sinope_minimum_brightness: {
4409
4433
  // DM2500ZB
4410
4434
  key: ['minimum_brightness'],
@@ -816,4 +816,13 @@ module.exports = [
816
816
  exposes.numeric('low_humidity', ea.STATE_SET).withUnit('C').withDescription('Setting Low Humidity Border')
817
817
  .withValueMin(0).withValueMax(99)],
818
818
  },
819
+ {
820
+ zigbeeModel: ['UT-02'],
821
+ model: 'EFR32MG21.Router',
822
+ vendor: 'Custom devices (DiY)',
823
+ description: 'EFR32MG21 router',
824
+ fromZigbee: [],
825
+ toZigbee: [],
826
+ exposes: [],
827
+ },
819
828
  ];
package/devices/ikea.js CHANGED
@@ -367,10 +367,10 @@ module.exports = [
367
367
  extend: tradfriExtend.light_onoff_brightness_colortemp(),
368
368
  },
369
369
  {
370
- zigbeeModel: ['TRADFRIbulbE27WSglobeclear806lm'],
370
+ zigbeeModel: ['TRADFRIbulbE26WSglobeclear800lm', 'TRADFRIbulbE27WSglobeclear806lm'],
371
371
  model: 'LED2004G8',
372
372
  vendor: 'IKEA',
373
- description: 'TRADFRI LED bulb E27 806 lumen, dimmable, white spectrum, clear',
373
+ description: 'TRADFRI LED bulb E26/E27 800/806 lumen, dimmable, white spectrum, clear',
374
374
  extend: tradfriExtend.light_onoff_brightness_colortemp(),
375
375
  },
376
376
  {
@@ -1196,6 +1196,33 @@ Object.keys(ATTRIBUTES).forEach((key) => {
1196
1196
  }
1197
1197
  });
1198
1198
 
1199
+ // Put actions at the bottom of ui
1200
+ exposesList.push(
1201
+ e.action([
1202
+ 'down_single',
1203
+ 'up_single',
1204
+ 'config_single',
1205
+ 'down_release',
1206
+ 'up_release',
1207
+ 'config_release',
1208
+ 'down_held',
1209
+ 'up_held',
1210
+ 'config_held',
1211
+ 'down_double',
1212
+ 'up_double',
1213
+ 'config_double',
1214
+ 'down_triple',
1215
+ 'up_triple',
1216
+ 'config_triple',
1217
+ 'down_quadruple',
1218
+ 'up_quadruple',
1219
+ 'config_quadruple',
1220
+ 'down_quintuple',
1221
+ 'up_quintuple',
1222
+ 'config_quintuple',
1223
+ ]),
1224
+ );
1225
+
1199
1226
  module.exports = [
1200
1227
  {
1201
1228
  zigbeeModel: ['VZM31-SN'],
@@ -26,6 +26,17 @@ const fzLocal = {
26
26
  return payload;
27
27
  },
28
28
  },
29
+ command_toggle: {
30
+ cluster: 'genOnOff',
31
+ type: 'commandToggle',
32
+ convert: (model, msg, publish, options, meta) => {
33
+ // Re-uses transactions sequence number so hasAlreadyProcessedMessage(msg) suppresess actions
34
+ // https://github.com/Koenkk/zigbee2mqtt/issues/14256
35
+ const payload = {action: utils.postfixWithEndpointName('toggle', msg, model, meta)};
36
+ utils.addActionGroup(payload, msg, model);
37
+ return payload;
38
+ },
39
+ },
29
40
  };
30
41
 
31
42
  module.exports = [
@@ -122,7 +133,7 @@ module.exports = [
122
133
  vendor: 'Legrand',
123
134
  // led blink RED when battery is low
124
135
  description: 'Wireless remote switch',
125
- fromZigbee: [fz.identify, fz.command_on, fzLocal.command_off, fz.command_toggle, fz.legacy.cmd_move, fz.legacy.cmd_stop,
136
+ fromZigbee: [fz.identify, fz.command_on, fzLocal.command_off, fzLocal.command_toggle, fz.legacy.cmd_move, fz.legacy.cmd_stop,
126
137
  fz.battery],
127
138
  exposes: [e.battery(), e.action(['identify', 'on', 'off', 'toggle', 'brightness_move_up',
128
139
  'brightness_move_down', 'brightness_stop'])],
@@ -132,14 +143,13 @@ module.exports = [
132
143
  const endpoint = device.getEndpoint(1);
133
144
  await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'genOnOff', 'genLevelCtrl']);
134
145
  },
135
- onEvent: readInitialBatteryState,
136
146
  },
137
147
  {
138
148
  zigbeeModel: [' Double gangs remote switch\u0000\u0000\u0000\u0000'],
139
149
  model: '067774',
140
150
  vendor: 'Legrand',
141
151
  description: 'Wireless double remote switch',
142
- fromZigbee: [fz.identify, fz.command_on, fzLocal.command_off, fz.command_toggle, fz.command_move, fz.command_stop, fz.battery],
152
+ fromZigbee: [fz.identify, fz.command_on, fzLocal.command_off, fzLocal.command_toggle, fz.command_move, fz.command_stop, fz.battery],
143
153
  exposes: [e.battery(),
144
154
  e.action(['identify', 'on', 'off', 'toggle', 'brightness_move_up', 'brightness_move_down', 'brightness_stop'])],
145
155
  toZigbee: [],
@@ -153,7 +163,6 @@ module.exports = [
153
163
  endpoint: (device) => {
154
164
  return {left: 1, right: 2};
155
165
  },
156
- onEvent: readInitialBatteryState,
157
166
  },
158
167
  {
159
168
  zigbeeModel: [' Remote toggle switch\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'],
@@ -2869,4 +2869,11 @@ module.exports = [
2869
2869
  description: ' Hue Sana wall lamp with Bluetooth white',
2870
2870
  extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
2871
2871
  },
2872
+ {
2873
+ zigbeeModel: ['LTD007'],
2874
+ model: '5110731H5',
2875
+ vendor: 'Philips',
2876
+ description: 'Hue white ambiance Garnea downlight',
2877
+ extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
2878
+ },
2872
2879
  ];
package/devices/sinope.js CHANGED
@@ -240,13 +240,64 @@ module.exports = [
240
240
  model: 'SW2500ZB',
241
241
  vendor: 'Sinopé',
242
242
  description: 'Zigbee smart light switch',
243
- extend: extend.switch(),
243
+ exposes: [e.switch(),
244
+ exposes.numeric('led_intensity_on', ea.SET).withValueMin(0).withValueMax(100)
245
+ .withDescription('Control status LED intensity when load ON'),
246
+ exposes.numeric('led_intensity_off', ea.SET).withValueMin(0).withValueMax(100)
247
+ .withDescription('Control status LED intensity when load OFF'),
248
+ exposes.composite('led_color_on', 'led_color_on')
249
+ .withFeature(exposes.numeric('r', ea.ALL))
250
+ .withFeature(exposes.numeric('g', ea.ALL))
251
+ .withFeature(exposes.numeric('b', ea.ALL))
252
+ .withDescription('Control status LED intensity when load ON'),
253
+ exposes.composite('led_color_off', 'led_color_off')
254
+ .withFeature(exposes.numeric('r', ea.ALL))
255
+ .withFeature(exposes.numeric('g', ea.ALL))
256
+ .withFeature(exposes.numeric('b', ea.ALL))
257
+ .withDescription('Control status LED color when load OFF'),
258
+ ],
259
+ fromZigbee: [fz.on_off, fz.electrical_measurement],
260
+ toZigbee: [tz.on_off, tz.sinope_led_intensity_on, tz.sinope_led_intensity_off, tz.sinope_led_color_on, tz.sinope_led_color_off],
244
261
  configure: async (device, coordinatorEndpoint, logger) => {
245
262
  const endpoint = device.getEndpoint(1);
246
263
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
247
264
  await reporting.onOff(endpoint);
248
265
  },
249
266
  },
267
+ {
268
+ zigbeeModel: ['DM2500ZB'],
269
+ model: 'DM2500ZB',
270
+ vendor: 'Sinopé',
271
+ description: 'Zigbee smart dimmer',
272
+ exposes: [e.light_brightness(),
273
+ exposes.numeric('led_intensity_on', ea.SET).withValueMin(0).withValueMax(100)
274
+ .withDescription('Control status LED when load ON'),
275
+ exposes.numeric('led_intensity_off', ea.SET).withValueMin(0).withValueMax(100)
276
+ .withDescription('Control status LED when load OFF'),
277
+ exposes.numeric('minimum_brightness', ea.SET).withValueMin(0).withValueMax(3000)
278
+ .withDescription('Control minimum dimmer brightness'),
279
+ exposes.composite('led_color_on', 'led_color_on')
280
+ .withFeature(exposes.numeric('r', ea.ALL))
281
+ .withFeature(exposes.numeric('g', ea.ALL))
282
+ .withFeature(exposes.numeric('b', ea.ALL))
283
+ .withDescription('Control status LED intensity when load ON'),
284
+ exposes.composite('led_color_off', 'led_color_off')
285
+ .withFeature(exposes.numeric('r', ea.ALL))
286
+ .withFeature(exposes.numeric('g', ea.ALL))
287
+ .withFeature(exposes.numeric('b', ea.ALL))
288
+ .withDescription('Control status LED color when load OFF'),
289
+ ],
290
+ fromZigbee: [fz.on_off, fz.brightness, fz.electrical_measurement],
291
+ toZigbee: [tz.light_onoff_brightness, tz.sinope_led_intensity_on, tz.sinope_led_intensity_off,
292
+ tz.sinope_minimum_brightness, tz.sinope_led_color_on, tz.sinope_led_color_off],
293
+ configure: async (device, coordinatorEndpoint, logger) => {
294
+ await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
295
+ const endpoint = device.getEndpoint(1);
296
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
297
+ await reporting.onOff(endpoint);
298
+ await reporting.brightness(endpoint);
299
+ },
300
+ },
250
301
  {
251
302
  zigbeeModel: ['SP2600ZB'],
252
303
  model: 'SP2600ZB',
@@ -279,26 +330,6 @@ module.exports = [
279
330
  await reporting.activePower(endpoint, {min: 10, change: 1});
280
331
  },
281
332
  },
282
- {
283
- zigbeeModel: ['DM2500ZB'],
284
- model: 'DM2500ZB',
285
- vendor: 'Sinopé',
286
- description: 'Zigbee smart dimmer',
287
- extend: extend.light_onoff_brightness({noConfigure: true}),
288
- exposes: [e.light_brightness(), e.effect(), exposes.numeric('led_intensity_on', ea.SET).withValueMin(0).withValueMax(100)
289
- .withDescription('Control status LED when load ON'), exposes.numeric('led_intensity_off', ea.SET).withValueMin(0)
290
- .withValueMax(100).withDescription('Control status LED when load OFF'), exposes.numeric('minimum_brightness', ea.SET)
291
- .withValueMin(0).withValueMax(3000).withDescription('Control minimum dimmer brightness')],
292
- toZigbee: [tz.light_onoff_brightness, tz.effect, tz.sinope_led_intensity_on, tz.sinope_led_intensity_off,
293
- tz.sinope_minimum_brightness],
294
- configure: async (device, coordinatorEndpoint, logger) => {
295
- await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
296
- const endpoint = device.getEndpoint(1);
297
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
298
- await reporting.onOff(endpoint);
299
- await reporting.brightness(endpoint);
300
- },
301
- },
302
333
  {
303
334
  zigbeeModel: ['RM3250ZB'],
304
335
  model: 'RM3250ZB',
@@ -14,7 +14,8 @@ module.exports = [
14
14
  {modelId: 'TS0601', manufacturerName: '_TZE200_hhrtiq0x'},
15
15
  {modelId: 'TS0601', manufacturerName: '_TZE200_ps5v5jor'},
16
16
  {modelId: 'TS0601', manufacturerName: '_TZE200_jeaxp72v'},
17
- {modelId: 'TS0601', manufacturerName: '_TZE200_owwdxjbx'}],
17
+ {modelId: 'TS0601', manufacturerName: '_TZE200_owwdxjbx'},
18
+ {modelId: 'TS0601', manufacturerName: '_TZE200_2cs6g9i7'}],
18
19
  model: 'GS361A-H04',
19
20
  vendor: 'Siterwell',
20
21
  description: 'Radiator valve with thermostat',
@@ -31,7 +32,8 @@ module.exports = [
31
32
  {vendor: 'Unitec', description: 'Thermostatic Radiator Valve Controller', model: '30946'},
32
33
  {vendor: 'Tesla', description: 'Thermostatic Radiator Valve Controller', model: 'TSL-TRV-GS361A'},
33
34
  {vendor: 'Nedis', description: 'Thermostatic Radiator Valve Controller', model: 'ZBHTR10WT'},
34
- {vendor: 'TCP Smart', description: 'Smart Thermostatic Radiator Valve', model: 'TBUWTRV'}],
35
+ {vendor: 'TCP Smart', description: 'Smart Thermostatic Radiator Valve', model: 'TBUWTRV'},
36
+ {vendor: 'Brennenstuhl', description: 'Radiator Thermostat', model: 'HT CZ 01'}],
35
37
  exposes: [e.child_lock(), e.window_detection(), e.battery(), e.valve_detection(), e.position(), exposes.climate()
36
38
  .withSetpoint('current_heating_setpoint', 5, 30, 0.5, ea.STATE_SET).withLocalTemperature(ea.STATE)
37
39
  .withSystemMode(['off', 'auto', 'heat'], ea.STATE_SET)
package/devices/tuya.js CHANGED
@@ -913,6 +913,7 @@ module.exports = [
913
913
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_awrucboq'},
914
914
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_ijczzg9h'},
915
915
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_qxenlrin'},
916
+ {modelID: 'TS0505B', manufacturerName: '_TZ3210_vaiyrvd1'},
916
917
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_iwbaamgh'},
917
918
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_klv2wul0'},
918
919
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_s6zec0of'},
@@ -1047,7 +1048,7 @@ module.exports = [
1047
1048
  },
1048
1049
  },
1049
1050
  {
1050
- fingerprint: [{modelID: 'TS0202', manufacturerName: '_TZ3000_msl6wxk9'}],
1051
+ fingerprint: [{modelID: 'TS0202', manufacturerName: '_TZ3000_msl6wxk9'}, {modelID: 'TS0202', manufacturerName: '_TZ3040_fwxuzcf4'}],
1051
1052
  model: 'ZM-35H-Q',
1052
1053
  vendor: 'TuYa',
1053
1054
  description: 'Motion sensor',
@@ -1757,7 +1758,7 @@ module.exports = [
1757
1758
  exposes: [e.battery(), e.water_leak()],
1758
1759
  },
1759
1760
  {
1760
- fingerprint: [{modelID: 'TS0001', manufacturerName: '_TZ3000_xkap8wtb'}, {modelID: 'TS0001', manufacturerName: '_TZ3000_qnejhcsu'}],
1761
+ fingerprint: tuya.fingerprint('TS0001', ['_TZ3000_xkap8wtb', '_TZ3000_qnejhcsu', '_TZ3000_x3ewpzyr']),
1761
1762
  model: 'TS0001_power',
1762
1763
  description: 'Switch with power monitoring',
1763
1764
  vendor: 'TuYa',
@@ -2217,7 +2218,10 @@ module.exports = [
2217
2218
  ],
2218
2219
  },
2219
2220
  {
2220
- fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_a4bpgplm'}],
2221
+ fingerprint: [
2222
+ {modelID: 'TS0601', manufacturerName: '_TZE200_a4bpgplm'},
2223
+ {modelID: 'TS0601', manufacturerName: '_TZE200_dv8abrrz'},
2224
+ ],
2221
2225
  model: 'TS0601_thermostat_1',
2222
2226
  vendor: 'TuYa',
2223
2227
  description: 'Thermostatic radiator valve',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.650",
3
+ "version": "14.0.652",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [