zigbee-herdsman-converters 15.0.85 → 15.0.87

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/moes.js CHANGED
@@ -314,24 +314,6 @@ module.exports = [
314
314
  .withDescription('Boost Time Setting 100 sec - 900 sec, (default = 300 sec)').withValueMin(100)
315
315
  .withValueMax(900).withValueStep(100)],
316
316
  },
317
- {
318
- fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_e3oitdyu'}],
319
- model: 'MS-105B',
320
- vendor: 'Moes',
321
- description: 'Smart dimmer module (2 gang)',
322
- fromZigbee: [fz.moes_105_dimmer, fz.ignore_basic_report],
323
- toZigbee: [tz.moes_105_dimmer],
324
- meta: {turnsOffAtBrightness1: true, multiEndpoint: true},
325
- configure: async (device, coordinatorEndpoint, logger) => {
326
- await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
327
- if (device.getEndpoint(2)) await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
328
- },
329
- exposes: [e.light_brightness().withEndpoint('l1').setAccess('state', ea.STATE_SET).setAccess('brightness', ea.STATE_SET),
330
- e.light_brightness().withEndpoint('l2').setAccess('state', ea.STATE_SET).setAccess('brightness', ea.STATE_SET)],
331
- endpoint: (device) => {
332
- return {'l1': 1, 'l2': 1};
333
- },
334
- },
335
317
  {
336
318
  fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_7hcgjxpc'},
337
319
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_rcggc0ys'}],
@@ -24,6 +24,13 @@ module.exports = [
24
24
  description: 'Hue white ambiance bathroom ceiling light Adore with Bluetooth',
25
25
  extend: philips.extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
26
26
  },
27
+ {
28
+ zigbeeModel: ['929003056701'],
29
+ model: '929003056701',
30
+ vendor: 'Philips',
31
+ description: 'Hue white ambiance Adore ceiling light',
32
+ extend: philips.extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
33
+ },
27
34
  {
28
35
  zigbeeModel: ['929003045301_01', '929003045301_02', '929003045301_03'],
29
36
  model: '929003045301',
@@ -9,6 +9,11 @@ const ota = require('../lib/ota');
9
9
  const e = exposes.presets;
10
10
  const ea = exposes.access;
11
11
 
12
+ const exposesLocal = {
13
+ indicator_mode: exposes.enum('indicator_mode', ea.ALL, ['consistent_with_load', 'reverse_with_load', 'always_off', 'always_on'])
14
+ .withDescription('Led Indicator Mode'),
15
+ };
16
+
12
17
  const tzLocal = {
13
18
  lift_duration: {
14
19
  key: ['lift_duration'],
@@ -17,6 +22,20 @@ const tzLocal = {
17
22
  return {state: {lift_duration: value}};
18
23
  },
19
24
  },
25
+ indicator_mode: {
26
+ key: ['indicator_mode'],
27
+ convertSet: async (entity, key, value, meta) => {
28
+ const endpoint = entity.getDevice().getEndpoint(21);
29
+ const lookup = {'reverse_with_load': 2, 'consistent_with_load': 0, 'always_off': 3, 'always_on': 1};
30
+ utils.validateValue(value, Object.keys(lookup));
31
+ await endpoint.write(0xFF17, {0x0000: {value: lookup[value], type: 0x30}}, {manufacturerCode: 0x105e});
32
+ return {state: {indicator_mode: value}};
33
+ },
34
+ convertGet: async (entity, key, meta) => {
35
+ const endpoint = entity.getDevice().getEndpoint(21);
36
+ await endpoint.read(0xFF17, [0x0000], {manufacturerCode: 0x105e});
37
+ },
38
+ },
20
39
  };
21
40
 
22
41
  const fzLocal = {
@@ -170,6 +189,18 @@ const fzLocal = {
170
189
  return ret;
171
190
  },
172
191
  },
192
+ indicator_mode: {
193
+ cluster: 'clipsalWiserSwitchConfigurationClusterServer',
194
+ type: ['attributeReport', 'readResponse'],
195
+ convert: (model, msg, publish, options, meta) => {
196
+ const result = {};
197
+ const lookup = {0: 'consistent_with_load', 1: 'always_on', 2: 'reverse_with_load', 3: 'always_off'};
198
+ if ('indicator_mode' in msg.data) {
199
+ result.indicator_mode = lookup[msg.data['indicator_mode']];
200
+ }
201
+ return result;
202
+ },
203
+ },
173
204
  };
174
205
 
175
206
  module.exports = [
@@ -353,13 +384,14 @@ module.exports = [
353
384
  model: '41EPBDWCLMZ/354PBDMBTZ',
354
385
  vendor: 'Schneider Electric',
355
386
  description: 'Wiser 40/300-Series Module Dimmer',
356
- fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.lighting_ballast_configuration],
357
- toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config],
387
+ fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.lighting_ballast_configuration, fzLocal.indicator_mode],
388
+ toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tzLocal.indicator_mode],
358
389
  exposes: [e.light_brightness(),
359
390
  exposes.numeric('ballast_minimum_level', ea.ALL).withValueMin(1).withValueMax(254)
360
391
  .withDescription('Specifies the minimum light output of the ballast'),
361
392
  exposes.numeric('ballast_maximum_level', ea.ALL).withValueMin(1).withValueMax(254)
362
- .withDescription('Specifies the maximum light output of the ballast')],
393
+ .withDescription('Specifies the maximum light output of the ballast'),
394
+ exposesLocal.indicator_mode],
363
395
  configure: async (device, coordinatorEndpoint, logger) => {
364
396
  const endpoint = device.getEndpoint(3);
365
397
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl', 'lightingBallastCfg']);
@@ -372,7 +404,12 @@ module.exports = [
372
404
  model: '41E2PBSWMZ/356PB2MBTZ',
373
405
  vendor: 'Schneider Electric',
374
406
  description: 'Wiser 40/300-Series module switch 2A',
375
- extend: extend.switch(),
407
+ ota: ota.zigbeeOTA,
408
+ extend: extend.switch( {
409
+ exposes: [exposesLocal.indicator_mode],
410
+ fromZigbee: [fzLocal.indicator_mode],
411
+ toZigbee: [tzLocal.indicator_mode],
412
+ }),
376
413
  configure: async (device, coordinatorEndpoint, logger) => {
377
414
  const endpoint = device.getEndpoint(1);
378
415
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
@@ -384,7 +421,11 @@ module.exports = [
384
421
  model: '41E10PBSWMZ-VW',
385
422
  vendor: 'Schneider Electric',
386
423
  description: 'Wiser 40/300-Series module switch 10A with ControlLink',
387
- extend: extend.switch(),
424
+ extend: extend.switch({
425
+ exposes: [exposesLocal.indicator_mode],
426
+ fromZigbee: [fzLocal.indicator_mode],
427
+ toZigbee: [tzLocal.indicator_mode],
428
+ }),
388
429
  configure: async (device, coordinatorEndpoint, logger) => {
389
430
  const endpoint = device.getEndpoint(1);
390
431
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
@@ -18,7 +18,7 @@ module.exports = [
18
18
  extend: extend.light_onoff_brightness_colortemp(),
19
19
  },
20
20
  {
21
- zigbeeModel: ['HOMA1002', 'HOMA0019', 'HOMA0006', 'HOMA000F', '019'],
21
+ zigbeeModel: ['HOMA1002', 'HOMA0019', 'HOMA0006', 'HOMA000F', '019', 'HOMA1004'],
22
22
  model: 'HLC610-Z',
23
23
  vendor: 'Shenzhen Homa',
24
24
  description: 'Wireless dimmable controller',
package/devices/tuya.js CHANGED
@@ -854,7 +854,7 @@ module.exports = [
854
854
  exposes: [e.carbon_monoxide(), e.co()],
855
855
  },
856
856
  {
857
- fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ggev5fsl', '_TZE200_u319yc66']),
857
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ggev5fsl', '_TZE200_u319yc66', '_TZE204_yojqa8xn']),
858
858
  model: 'TS0601_gas_sensor_1',
859
859
  vendor: 'TuYa',
860
860
  description: 'Gas sensor',
@@ -1310,7 +1310,7 @@ module.exports = [
1310
1310
  ],
1311
1311
  },
1312
1312
  {
1313
- fingerprint: tuya.fingerprint('TS0601', ['_TZE200_fjjbhx9d']),
1313
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_fjjbhx9d', '_TZE200_e3oitdyu']),
1314
1314
  model: 'TS0601_dimmer_2',
1315
1315
  vendor: 'TuYa',
1316
1316
  description: '2 gang smart dimmer',
@@ -1343,6 +1343,7 @@ module.exports = [
1343
1343
  },
1344
1344
  whiteLabel: [
1345
1345
  {vendor: 'Moes', model: 'ZS-EUD_2gang'},
1346
+ {vendor: 'Moes', model: 'MS-105B'}, // _TZE200_e3oitdyu
1346
1347
  ],
1347
1348
  },
1348
1349
  {
@@ -1999,11 +2000,12 @@ module.exports = [
1999
2000
  },
2000
2001
  },
2001
2002
  {
2002
- fingerprint: tuya.fingerprint('TS0002', ['_TZ3000_01gpyda5', '_TZ3000_bvrlqyj7', '_TZ3000_7ed9cqgi', '_TZ3000_zmy4lslw']),
2003
+ fingerprint: tuya.fingerprint('TS0002', ['_TZ3000_01gpyda5', '_TZ3000_bvrlqyj7', '_TZ3000_7ed9cqgi',
2004
+ '_TZ3000_zmy4lslw', '_TZ3000_ruxexjfz']),
2003
2005
  model: 'TS0002_switch_module',
2004
2006
  vendor: 'TuYa',
2005
2007
  description: '2 gang switch module',
2006
- whiteLabel: [{vendor: 'OXT', model: 'SWTZ22'}],
2008
+ whiteLabel: [{vendor: 'OXT', model: 'SWTZ22'}, {vendor: 'Nous', model: 'L13Z'}],
2007
2009
  extend: tuya.extend.switch({switchType: true, endpoints: ['l1', 'l2']}),
2008
2010
  endpoint: (device) => {
2009
2011
  return {'l1': 1, 'l2': 2};
@@ -2126,7 +2128,6 @@ module.exports = [
2126
2128
  {modelID: 'TS0601', manufacturerName: '_TZE200_udank5zs'},
2127
2129
  {modelID: 'TS0601', manufacturerName: '_TZE200_zuz7f94z'},
2128
2130
  {modelID: 'TS0601', manufacturerName: '_TZE200_nv6nxo0c'},
2129
- {modelID: 'TS0601', manufacturerName: '_TZE200_68nvbio9'},
2130
2131
  {modelID: 'TS0601', manufacturerName: '_TZE200_3ylew7b4'},
2131
2132
  {modelID: 'TS0601', manufacturerName: '_TZE200_llm0epxg'},
2132
2133
  {modelID: 'TS0601', manufacturerName: '_TZE200_n1aauwb4'},
@@ -2237,6 +2238,42 @@ module.exports = [
2237
2238
  .withFeature(exposes.text('workdays_schedule', ea.STATE_SET))
2238
2239
  .withFeature(exposes.text('holidays_schedule', ea.STATE_SET))],
2239
2240
  },
2241
+ {
2242
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_68nvbio9']),
2243
+ model: 'TS0601_cover_3',
2244
+ vendor: 'TuYa',
2245
+ description: 'Cover motor',
2246
+ fromZigbee: [tuya.fz.datapoints],
2247
+ toZigbee: [tuya.tz.datapoints],
2248
+ onEvent: tuya.onEventSetTime,
2249
+ options: [exposes.options.invert_cover()],
2250
+ configure: tuya.configureMagicPacket,
2251
+ exposes: [
2252
+ e.battery(), e.cover_position(),
2253
+ exposes.enum('reverse_direction', ea.STATE_SET, ['forward', 'back']).withDescription('Reverse the motor direction'),
2254
+ exposes.enum('border', ea.STATE_SET, ['up', 'down', 'up_delete', 'down_delete', 'remove_top_bottom']),
2255
+ exposes.enum('click_control', ea.STATE_SET, ['up', 'down']).withDescription('Single motor steps'),
2256
+ exposes.binary('motor_fault', ea.STATE, true, false),
2257
+ ],
2258
+ whiteLabel: [
2259
+ {vendor: 'Zemismart', model: 'ZM16EL-03/33'}, // _TZE200_68nvbio
2260
+ ],
2261
+ meta: {
2262
+ // All datapoints go in here
2263
+ tuyaDatapoints: [
2264
+ [1, 'state', tuya.valueConverterBasic.lookup({'OPEN': tuya.enum(0), 'STOP': tuya.enum(1), 'CLOSE': tuya.enum(2)})],
2265
+ [2, 'position', tuya.valueConverter.coverPosition],
2266
+ [3, 'position', tuya.valueConverter.raw],
2267
+ [5, 'reverse_direction', tuya.valueConverterBasic.lookup({'forward': tuya.enum(0), 'back': tuya.enum(1)})],
2268
+ [12, 'motor_fault', tuya.valueConverter.trueFalse1],
2269
+ [13, 'battery', tuya.valueConverter.raw],
2270
+ [16, 'border', tuya.valueConverterBasic.lookup({
2271
+ 'up': tuya.enum(0), 'down': tuya.enum(1), 'up_delete': tuya.enum(2), 'down_delete': tuya.enum(3),
2272
+ 'remove_top_bottom': tuya.enum(4)})],
2273
+ [20, 'click_control', tuya.valueConverterBasic.lookup({'up': tuya.enum(0), 'down': tuya.enum(1)})],
2274
+ ],
2275
+ },
2276
+ },
2240
2277
  {
2241
2278
  fingerprint: tuya.fingerprint('TS0601', [
2242
2279
  '_TZE200_sur6q7ko', /* model: '3012732', vendor: 'LSC Smart Connect' */
@@ -3775,7 +3812,7 @@ module.exports = [
3775
3812
  model: 'TS0052',
3776
3813
  vendor: 'TuYa',
3777
3814
  description: 'Zigbee dimmer module 1 channel',
3778
- extend: tuya.extend.light_onoff_brightness({minBrightness: true}),
3815
+ extend: tuya.extend.light_onoff_brightness(),
3779
3816
  },
3780
3817
  {
3781
3818
  fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_ikvncluo'},
package/lib/tuya.js CHANGED
@@ -1637,6 +1637,7 @@ const tuyaTz = {
1637
1637
  'schedule_wednesday', 'schedule_thursday', 'schedule_friday', 'schedule_saturday', 'schedule_sunday', 'clear_fault',
1638
1638
  'scale_protection', 'error', 'radar_scene', 'radar_sensitivity', 'tumble_alarm_time', 'tumble_switch', 'fall_sensitivity',
1639
1639
  'min_temperature', 'max_temperature', 'window_detection', 'boost_heating', 'alarm_ringtone', 'alarm_time', 'fan_speed',
1640
+ 'reverse_direction', 'border', 'click_control',
1640
1641
  ],
1641
1642
  convertSet: async (entity, key, value, meta) => {
1642
1643
  // A set converter is only called once; therefore we need to loop
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "15.0.85",
3
+ "version": "15.0.87",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -34,11 +34,11 @@
34
34
  },
35
35
  "homepage": "https://github.com/Koenkk/zigbee-herdsman-converters",
36
36
  "dependencies": {
37
- "axios": "^1.3.4",
37
+ "axios": "^1.3.5",
38
38
  "buffer-crc32": "^0.2.13",
39
39
  "https-proxy-agent": "^5.0.1",
40
40
  "tar-stream": "^3.0.0",
41
- "zigbee-herdsman": "^0.14.103"
41
+ "zigbee-herdsman": "^0.14.105"
42
42
  },
43
43
  "devDependencies": {
44
44
  "eslint": "*",