zigbee-herdsman-converters 14.0.252 → 14.0.256

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.
@@ -6521,6 +6521,23 @@ const converters = {
6521
6521
  };
6522
6522
  },
6523
6523
  },
6524
+ aqara_knob_rotation: {
6525
+ cluster: 'aqaraOpple',
6526
+ type: ['attributeReport', 'readResponse'],
6527
+ convert: (model, msg, publish, options, meta) => {
6528
+ if (msg.data.hasOwnProperty(570)) {
6529
+ const act = {1: 'start_rotating', 2: 'rotation', 3: 'stop_rotating'};
6530
+ return {
6531
+ action: act[msg.data[570]],
6532
+ action_rotation_angle: msg.data[558],
6533
+ action_rotation_angle_speed: msg.data[560],
6534
+ action_rotation_percent: msg.data[563],
6535
+ action_rotation_percent_speed: msg.data[562],
6536
+ action_rotation_time: msg.data[561],
6537
+ };
6538
+ }
6539
+ },
6540
+ },
6524
6541
  // #endregion
6525
6542
 
6526
6543
  // #region Ignore converters (these message dont need parsing).
@@ -2013,7 +2013,7 @@ const converters = {
2013
2013
  xiaomi_led_disabled_night: {
2014
2014
  key: ['led_disabled_night'],
2015
2015
  convertSet: async (entity, key, value, meta) => {
2016
- if (['ZNCZ04LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM'].includes(meta.mapped.model)) {
2016
+ if (['ZNCZ04LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM', 'QBKG25LM'].includes(meta.mapped.model)) {
2017
2017
  await entity.write('aqaraOpple', {0x0203: {value: value ? 1 : 0, type: 0x10}}, manufacturerOptions.xiaomi);
2018
2018
  } else if (['ZNCZ11LM'].includes(meta.mapped.model)) {
2019
2019
  const payload = value ?
@@ -2027,7 +2027,7 @@ const converters = {
2027
2027
  return {state: {led_disabled_night: value}};
2028
2028
  },
2029
2029
  convertGet: async (entity, key, meta) => {
2030
- if (['ZNCZ04LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM'].includes(meta.mapped.model)) {
2030
+ if (['ZNCZ04LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM', 'QBKG25LM'].includes(meta.mapped.model)) {
2031
2031
  await entity.read('aqaraOpple', [0x0203], manufacturerOptions.xiaomi);
2032
2032
  } else {
2033
2033
  throw new Error('Not supported');
@@ -0,0 +1,11 @@
1
+ const extend = require('../lib/extend');
2
+
3
+ module.exports = [
4
+ {
5
+ zigbeeModel: ['A10'],
6
+ model: 'GD-ZCRGB012',
7
+ vendor: 'GIDERWEL',
8
+ description: 'Smart Zigbee RGB LED strip controller',
9
+ extend: extend.light_onoff_brightness_color({supportsHS: false}),
10
+ },
11
+ ];
package/devices/ikea.js CHANGED
@@ -97,6 +97,13 @@ module.exports = [
97
97
  description: 'TRADFRI LED globe-bulb E27 470 lumen, dimmable, white spectrum, opal white',
98
98
  extend: tradfriExtend.light_onoff_brightness_colortemp(),
99
99
  },
100
+ {
101
+ zigbeeModel: ['TRADFRIbulbE27WSglobeopal1055lm'],
102
+ model: 'LED2003G10',
103
+ vendor: 'IKEA',
104
+ description: 'TRADFRI LED bulb E27 1055 lumen, dimmable, white spectrum, opal white',
105
+ extend: tradfriExtend.light_onoff_brightness_colortemp(),
106
+ },
100
107
  {
101
108
  zigbeeModel: ['TRADFRI bulb E27 opal 470lm', 'TRADFRI bulb E27 W opal 470lm', 'TRADFRIbulbT120E27WSopal470lm'],
102
109
  model: 'LED1937T5_E27',
@@ -227,6 +234,13 @@ module.exports = [
227
234
  description: 'TRADFRI LED bulb E26/E27 806 lumen, dimmable, white spectrum, clear',
228
235
  extend: tradfriExtend.light_onoff_brightness_colortemp(),
229
236
  },
237
+ {
238
+ zigbeeModel: ['TRADFRIbulbE14WSglobeopal470lm'],
239
+ model: 'LED2002G5',
240
+ vendor: 'IKEA',
241
+ description: 'TRADFRI LED bulb E14 470 lumen, dimmable, white spectrum, clear',
242
+ extend: tradfriExtend.light_onoff_brightness_colortemp(),
243
+ },
230
244
  {
231
245
  zigbeeModel: ['LEPTITER Recessed spot light'],
232
246
  model: 'T1820',
@@ -82,8 +82,7 @@ module.exports = [
82
82
  extend: extend.light_onoff_brightness(),
83
83
  },
84
84
  {
85
- fingerprint: [{modelID: 'TS110F', manufacturerName: '_TYZB01_qezuin6k'},
86
- {modelID: 'TS110E', manufacturerName: '_TZ3210_ngqk6jia'}],
85
+ fingerprint: [{modelID: 'TS110F', manufacturerName: '_TYZB01_qezuin6k'}],
87
86
  model: 'QS-Zigbee-D02-TRIAC-LN',
88
87
  vendor: 'Lonsonho',
89
88
  description: '1 gang smart dimmer switch module with neutral',
@@ -2002,4 +2002,13 @@ module.exports = [
2002
2002
  extend: hueExtend.light_onoff_brightness(),
2003
2003
  ota: ota.zigbeeOTA,
2004
2004
  },
2005
+ {
2006
+ zigbeeModel: ['1746630P7'],
2007
+ model: '1746630P7',
2008
+ vendor: 'Philips',
2009
+ description: 'Hue White and Colour Ambiance Amarant linear outdoor light',
2010
+ meta: {turnsOffAtBrightness1: true},
2011
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
2012
+ ota: ota.zigbeeOTA,
2013
+ },
2005
2014
  ];
package/devices/tuya.js CHANGED
@@ -398,6 +398,7 @@ module.exports = [
398
398
  vendor: 'TuYa',
399
399
  description: 'Led strip controller',
400
400
  extend: extend.light_onoff_brightness_color(),
401
+ meta: {applyRedFix: true},
401
402
  },
402
403
  {
403
404
  zigbeeModel: ['TS0503A'],
@@ -764,7 +765,8 @@ module.exports = [
764
765
  {modelID: 'TS011F', manufacturerName: '_TZ3000_ew3ldmgx'},
765
766
  {modelID: 'TS011F', manufacturerName: '_TZ3000_ps3dmato'},
766
767
  {modelID: 'TS011F', manufacturerName: '_TZ3000_mraovvmm'},
767
- {modelID: 'TS011F', manufacturerName: '_TZ3000_jvzvulen'}],
768
+ {modelID: 'TS011F', manufacturerName: '_TZ3000_jvzvulen'},
769
+ {modelID: 'TS011F', manufacturerName: '_TZ3000_dpo1ysak'}],
768
770
  model: 'TS011F_plug',
769
771
  description: 'Smart plug (with power monitoring)',
770
772
  vendor: 'TuYa',
package/devices/xiaomi.js CHANGED
@@ -544,14 +544,14 @@ module.exports = [
544
544
  model: 'QBKG25LM',
545
545
  vendor: 'Xiaomi',
546
546
  description: 'Aqara D1 3 gang smart wall switch (no neutral wire)',
547
- fromZigbee: [fz.on_off, fz.legacy.QBKG25LM_click, fz.xiaomi_operation_mode_opple],
548
- toZigbee: [tz.on_off, tz.xiaomi_switch_operation_mode_opple, tz.xiaomi_switch_power_outage_memory, tz.xiaomi_switch_do_not_disturb],
547
+ fromZigbee: [fz.on_off, fz.legacy.QBKG25LM_click, fz.xiaomi_operation_mode_opple, fz.xiaomi_switch_opple_basic],
548
+ toZigbee: [tz.on_off, tz.xiaomi_switch_operation_mode_opple, tz.xiaomi_switch_power_outage_memory, tz.xiaomi_led_disabled_night],
549
549
  meta: {multiEndpoint: true},
550
550
  endpoint: (device) => {
551
551
  return {'left': 1, 'center': 2, 'right': 3};
552
552
  },
553
553
  exposes: [
554
- e.switch().withEndpoint('left'), e.power_outage_memory(), e.switch().withEndpoint('center'),
554
+ e.switch().withEndpoint('left'), e.switch().withEndpoint('center'), e.switch().withEndpoint('right'),
555
555
  exposes.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
556
556
  .withDescription('Decoupled mode for left button')
557
557
  .withEndpoint('left'),
@@ -561,7 +561,8 @@ module.exports = [
561
561
  exposes.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
562
562
  .withDescription('Decoupled mode for right button')
563
563
  .withEndpoint('right'),
564
- e.switch().withEndpoint('right'), e.action([
564
+ e.power_outage_memory(), e.led_disabled_night(), e.temperature().withAccess(ea.STATE),
565
+ e.action([
565
566
  'left_single', 'left_double', 'left_triple', 'left_hold', 'left_release',
566
567
  'center_single', 'center_double', 'center_triple', 'center_hold', 'center_release',
567
568
  'right_single', 'right_double', 'right_triple', 'right_hold', 'right_release']),
@@ -1592,4 +1593,28 @@ module.exports = [
1592
1593
  await device.getEndpoint(1).write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f, disableResponse: true});
1593
1594
  },
1594
1595
  },
1596
+ {
1597
+ zigbeeModel: ['lumi.remote.rkba01'],
1598
+ model: 'ZNXNKG02LM',
1599
+ vendor: 'Xiaomi',
1600
+ description: 'Aqara knob H1 (wireless)',
1601
+ meta: {battery: {voltageToPercentage: '3V_2100'}},
1602
+ exposes: [e.battery(), e.battery_voltage(),
1603
+ e.action(['single', 'double', 'hold', 'release', 'start_rotating', 'rotation', 'stop_rotating']),
1604
+ exposes.enum('operation_mode', ea.ALL, ['event', 'command']).withDescription('Button mode'),
1605
+ exposes.numeric('action_rotation_angle', ea.STATE).withUnit('*').withDescription('Rotation angle'),
1606
+ exposes.numeric('action_rotation_angle_speed', ea.STATE).withUnit('*').withDescription('Rotation angle speed'),
1607
+ exposes.numeric('action_rotation_percent', ea.STATE).withUnit('%').withDescription('Rotation percent'),
1608
+ exposes.numeric('action_rotation_percent_speed', ea.STATE).withUnit('%').withDescription('Rotation percent speed'),
1609
+ exposes.numeric('action_rotation_time', ea.STATE).withUnit('ms').withDescription('Rotation time'),
1610
+ ],
1611
+ fromZigbee: [fz.xiaomi_on_off_action, fz.xiaomi_multistate_action, fz.xiaomi_battery, fz.aqara_opple_report,
1612
+ fz.aqara_knob_rotation],
1613
+ toZigbee: [tz.aqara_opple_operation_mode],
1614
+ onEvent: preventReset,
1615
+ configure: async (device, coordinatorEndpoint, logger) => {
1616
+ const endpoint1 = device.getEndpoint(1);
1617
+ await endpoint1.write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f, disableResponse: true});
1618
+ },
1619
+ },
1595
1620
  ];