zigbee-herdsman-converters 14.0.555 → 14.0.558

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.
@@ -7273,7 +7273,7 @@ const converters = {
7273
7273
  cluster: 'genOnOff',
7274
7274
  type: ['attributeReport', 'readResponse'],
7275
7275
  convert: (model, msg, publish, options, meta) => {
7276
- const property = 0x8002;
7276
+ const property = 'moesStartUpOnOff';
7277
7277
 
7278
7278
  if (msg.data.hasOwnProperty(property)) {
7279
7279
  const dict = {0x00: 'off', 0x01: 'on', 0x02: 'restore'};
@@ -73,7 +73,7 @@ const converters = {
73
73
  }
74
74
 
75
75
  if (isNotification) {
76
- entity.commandResponse('ssIasAce', 'armRsp', {armnotification: mode}, {}, value.transaction);
76
+ await entity.commandResponse('ssIasAce', 'armRsp', {armnotification: mode}, {}, value.transaction);
77
77
 
78
78
  // Do not update PanelStatus after confirming transaction.
79
79
  // Instead the server should send an arm_mode command with the necessary state.
@@ -88,7 +88,7 @@ const converters = {
88
88
 
89
89
  globalStore.putValue(entity, 'panelStatus', panelStatus);
90
90
  const payload = {panelstatus: panelStatus, secondsremain: 0, audiblenotif: 0, alarmstatus: 0};
91
- entity.commandResponse('ssIasAce', 'panelStatusChanged', payload);
91
+ await entity.commandResponse('ssIasAce', 'panelStatusChanged', payload);
92
92
  },
93
93
  },
94
94
  battery_percentage_remaining: {
@@ -2577,17 +2577,7 @@ const converters = {
2577
2577
  return {state: {power_outage_memory: value}};
2578
2578
  },
2579
2579
  },
2580
- tuya_switch_power_outage_memory: {
2581
- key: ['power_outage_memory'],
2582
- convertSet: async (entity, key, value, meta) => {
2583
- value = value.toLowerCase();
2584
- const lookup = {'off': 0x00, 'on': 0x01, 'restore': 0x02};
2585
- utils.validateValue(value, Object.keys(lookup));
2586
- const payload = lookup[value];
2587
- await entity.write('genOnOff', {0x8002: {value: payload, type: 0x30}});
2588
- return {state: {power_outage_memory: value}};
2589
- },
2590
- },
2580
+
2591
2581
  tuya_relay_din_led_indicator: {
2592
2582
  key: ['indicator_mode'],
2593
2583
  convertSet: async (entity, key, value, meta) => {
@@ -3580,6 +3570,17 @@ const converters = {
3580
3570
  await tuya.sendDataPointBool(entity, tuya.dataPoints.state, value === 'cool');
3581
3571
  },
3582
3572
  },
3573
+ tuya_switch_power_outage_memory: {
3574
+ key: ['power_outage_memory'],
3575
+ convertSet: async (entity, key, value, meta) => {
3576
+ value = value.toLowerCase();
3577
+ const lookup = {'off': 0x00, 'on': 0x01, 'restore': 0x02};
3578
+ utils.validateValue(value, Object.keys(lookup));
3579
+ const payload = lookup[value];
3580
+ await entity.write('genOnOff', {moesStartUpOnOff: payload});
3581
+ return {state: {power_outage_memory: value}};
3582
+ },
3583
+ },
3583
3584
  moes_power_on_behavior: {
3584
3585
  key: ['power_on_behavior'],
3585
3586
  convertSet: async (entity, key, value, meta) => {
@@ -0,0 +1,17 @@
1
+ const reporting = require('../lib/reporting');
2
+ const extend = require('../lib/extend');
3
+
4
+ module.exports = [
5
+ {
6
+ zigbeeModel: ['SRB01', 'SRB01A'],
7
+ model: 'SRB01',
8
+ vendor: 'Evvr',
9
+ description: 'In-wall relay switch',
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/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);
package/devices/jasco.js CHANGED
@@ -25,6 +25,7 @@ module.exports = [
25
25
  vendor: 'Jasco',
26
26
  description: 'Zigbee smart outlet',
27
27
  extend: extend.switch(),
28
+ fromZigbee: [...extend.switch().fromZigbee, fz.metering],
28
29
  exposes: [e.switch(), e.power(), e.energy()],
29
30
  configure: async (device, coordinatorEndpoint, logger) => {
30
31
  const endpoint = device.getEndpoint(1);
@@ -32,6 +33,7 @@ module.exports = [
32
33
  await reporting.onOff(endpoint);
33
34
  await reporting.readMeteringMultiplierDivisor(endpoint);
34
35
  await reporting.instantaneousDemand(endpoint);
36
+ await reporting.currentSummDelivered(endpoint);
35
37
  },
36
38
  },
37
39
  {
package/devices/lidl.js CHANGED
@@ -795,7 +795,7 @@ module.exports = [
795
795
  meta: {enhancedHue: false},
796
796
  },
797
797
  {
798
- fingerprint: [{modelID: 'TS0505B', manufactureName: '_TZ3000_bwlvyjwk'}],
798
+ fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_bwlvyjwk'}],
799
799
  model: 'HG08383B',
800
800
  vendor: 'Lidl',
801
801
  description: 'Livarno outdoor LED light chain',
@@ -33,7 +33,7 @@ module.exports = [
33
33
  exposes.numeric('calibration_time', ea.STATE).withUnit('S').withDescription('Calibration time')],
34
34
  },
35
35
  {
36
- fingerprint: [{modelID: 'TS130F', manufacturerName: '_TZ3000_j1xl73iw'}],
36
+ fingerprint: [{modelID: 'TS130F', manufacturerName: '_TZ3000_j1xl73iw'}, {modelID: 'TS130F', manufacturerName: '_TZ3000_kmsbwdol'}],
37
37
  model: 'TS130F_dual',
38
38
  vendor: 'Lonsonho',
39
39
  description: 'Dual curtain/blind module',
package/devices/lupus.js CHANGED
@@ -18,7 +18,7 @@ module.exports = [
18
18
  exposes: [e.cover_position().setAccess('state', ea.ALL)],
19
19
  },
20
20
  {
21
- zigbeeModel: ['SCM-3-OTA_00.00.03.16TC', 'SCM-6-OTA_00.00.03.17TC'],
21
+ zigbeeModel: ['SCM-3-OTA_00.00.03.16TC', 'SCM-6-OTA_00.00.03.17TC', 'SCM-6-OTA_00.00.03.18TC'],
22
22
  model: 'LS12128',
23
23
  vendor: 'Lupus',
24
24
  description: 'Roller shutter',
package/devices/moes.js CHANGED
@@ -7,6 +7,10 @@ const reporting = require('../lib/reporting');
7
7
  const extend = require('../lib/extend');
8
8
  const e = exposes.presets;
9
9
  const ea = exposes.access;
10
+ const zosung = require('../lib/zosung');
11
+ const fzZosung = zosung.fzZosung;
12
+ const tzZosung = zosung.tzZosung;
13
+ const ez = zosung.presetsZosung;
10
14
 
11
15
  module.exports = [
12
16
  {
@@ -299,7 +303,8 @@ module.exports = [
299
303
  },
300
304
  },
301
305
  {
302
- fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_7hcgjxpc'}],
306
+ fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_7hcgjxpc'},
307
+ {modelID: 'TS0505B', manufacturerName: '_TZ3210_rcggc0ys'}],
303
308
  model: 'ZLD-RCW',
304
309
  vendor: 'Moes',
305
310
  description: 'RGB+CCT Zigbee LED Controller',
@@ -308,7 +313,7 @@ module.exports = [
308
313
  ]),
309
314
  meta: {applyRedFix: true, enhancedHue: false},
310
315
  fromZigbee: extend.light_onoff_brightness_colortemp_color().fromZigbee,
311
- exposes: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}).exposes.concat([
316
+ exposes: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500], disableColorTempStartup: true}).exposes.concat([
312
317
  exposes.binary('do_not_disturb', ea.STATE_SET, true, false)
313
318
  .withDescription('Do not disturb mode'),
314
319
  exposes.enum('color_power_on_behavior', ea.STATE_SET, ['initial', 'previous', 'cutomized'])
@@ -336,4 +341,24 @@ module.exports = [
336
341
  exposes: [e.cover_position().setAccess('position', ea.STATE_SET), exposes.enum('backlight', ea.STATE_SET, ['OFF', 'ON']),
337
342
  exposes.enum('calibration', ea.STATE_SET, ['OFF', 'ON']), exposes.enum('motor_reversal', ea.STATE_SET, ['OFF', 'ON'])],
338
343
  },
344
+ {
345
+ fingerprint: [{modelID: 'TS1201', manufacturerName: '_TZ3290_j37rooaxrcdcqo5n'}],
346
+ model: 'UFO-R11',
347
+ vendor: 'Moes',
348
+ description: 'Universal smart IR remote control',
349
+ fromZigbee: [
350
+ fzZosung.zosung_send_ir_code_00, fzZosung.zosung_send_ir_code_01, fzZosung.zosung_send_ir_code_02,
351
+ fzZosung.zosung_send_ir_code_03, fzZosung.zosung_send_ir_code_04, fzZosung.zosung_send_ir_code_05,
352
+ fz.battery,
353
+ ],
354
+ toZigbee: [tzZosung.zosung_ir_code_to_send, tzZosung.zosung_learn_ir_code],
355
+ exposes: [ez.learn_ir_code(), ez.learned_ir_code(), ez.ir_code_to_send(), e.battery(), e.battery_voltage()],
356
+ configure: async (device, coordinatorEndpoint, logger) => {
357
+ const endpoint = device.getEndpoint(1);
358
+ await endpoint.read('genPowerCfg', ['batteryVoltage', 'batteryPercentageRemaining']);
359
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
360
+ await reporting.batteryPercentageRemaining(endpoint);
361
+ await reporting.batteryVoltage(endpoint);
362
+ },
363
+ },
339
364
  ];
@@ -71,6 +71,7 @@ module.exports = [
71
71
  extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
72
72
  },
73
73
  {
74
+ fingerprint: [{modelID: 'CCT Light', manufacturerName: 'Paulmann lamp'}],
74
75
  zigbeeModel: ['CCT light', 'CCT_light', 'CCT light '],
75
76
  model: '50064',
76
77
  vendor: 'Paulmann',
@@ -917,7 +917,7 @@ module.exports = [
917
917
  extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
918
918
  },
919
919
  {
920
- zigbeeModel: ['3418131P6'],
920
+ zigbeeModel: ['3418131P6', '929003056401'],
921
921
  model: '3418131P6',
922
922
  vendor: 'Philips',
923
923
  description: 'Hue white ambiance Adore GU10 with Bluetooth (3 spots)',
@@ -3,6 +3,30 @@ const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/lega
3
3
  const reporting = require('../lib/reporting');
4
4
  const extend = require('../lib/extend');
5
5
  const e = exposes.presets;
6
+ const utils = require('../lib/utils');
7
+
8
+ const fzLocal = {
9
+ // ZB-1026 requires separate on/off converters since it re-uses the transaction number
10
+ // https://github.com/Koenkk/zigbee2mqtt/issues/12957
11
+ ZB1026_command_on: {
12
+ cluster: 'genOnOff',
13
+ type: 'commandOn',
14
+ convert: (model, msg, publish, options, meta) => {
15
+ const payload = {action: utils.postfixWithEndpointName('on', msg, model)};
16
+ utils.addActionGroup(payload, msg, model);
17
+ return payload;
18
+ },
19
+ },
20
+ ZB1026_command_off: {
21
+ cluster: 'genOnOff',
22
+ type: 'commandOff',
23
+ convert: (model, msg, publish, options, meta) => {
24
+ const payload = {action: utils.postfixWithEndpointName('off', msg, model)};
25
+ utils.addActionGroup(payload, msg, model);
26
+ return payload;
27
+ },
28
+ },
29
+ };
6
30
 
7
31
  module.exports = [
8
32
  {
@@ -17,7 +41,8 @@ module.exports = [
17
41
  model: 'ZB-5001',
18
42
  vendor: 'RGB Genie',
19
43
  description: 'Zigbee 3.0 remote control',
20
- fromZigbee: [fz.command_recall, fz.command_on, fz.command_off, fz.command_move, fz.command_stop, fz.battery],
44
+ fromZigbee: [fz.command_recall, fzLocal.ZB1026_command_on, fzLocal.ZB1026_command_off,
45
+ fz.command_move, fz.command_stop, fz.battery],
21
46
  exposes: [e.battery(), e.action(['recall_*', 'on', 'off', 'brightness_stop', 'brightness_move_up', 'brightness_move_down'])],
22
47
  toZigbee: [],
23
48
  },
package/devices/tuya.js CHANGED
@@ -470,9 +470,9 @@ module.exports = [
470
470
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_qxenlrin'},
471
471
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_iwbaamgh'},
472
472
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_klv2wul0'},
473
- {modelID: 'TS0505B', manufacturerName: '_TZ3210_rcggc0ys'},
474
473
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_s6zec0of'},
475
474
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_y5fjkn7x'},
475
+ {modelID: 'TS0505B', manufacturerName: '_TZ3210_cuqkfz2q'},
476
476
  {modelID: 'TS0505B', manufacturerName: '_TZ3210_6amjviba'}],
477
477
  model: 'TS0505B',
478
478
  vendor: 'TuYa',
@@ -502,6 +502,7 @@ module.exports = [
502
502
  fingerprint: [{modelID: 'TS0504B', manufacturerName: '_TZ3000_ukuvyhaa'},
503
503
  {modelID: 'TS0504B', manufacturerName: '_TZ3210_bfvybixd'},
504
504
  {modelID: 'TS0504B', manufacturerName: '_TZ3210_i2i0bsnv'},
505
+ {modelID: 'TS0504B', manufacturerName: '_TZ3210_elzv6aia'},
505
506
  {modelID: 'TS0504B', manufacturerName: '_TZ3210_1elppmba'}],
506
507
  model: 'TS0504B',
507
508
  vendor: 'TuYa',
@@ -906,6 +907,7 @@ module.exports = [
906
907
  {modelID: 'TS0502B', manufacturerName: '_TZ3000_armwcncd'},
907
908
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_2p6wbry3'},
908
909
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_qamcypen'},
910
+ {modelID: 'TS0502B', manufacturerName: '_TZ3210_zdrhqmo0'},
909
911
  ],
910
912
  model: 'TS0502B',
911
913
  vendor: 'TuYa',
@@ -961,9 +963,13 @@ module.exports = [
961
963
  model: 'WSD500A',
962
964
  vendor: 'TuYa',
963
965
  description: 'Temperature & humidity sensor',
964
- fromZigbee: [fz.battery, fz.temperature, fz.humidity],
966
+ fromZigbee: [fzLocal.TS0201_battery, fz.temperature, fz.humidity],
965
967
  toZigbee: [],
966
968
  exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
969
+ configure: async (device, coordinatorEndpoint, logger) => {
970
+ const endpoint = device.getEndpoint(1);
971
+ await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
972
+ },
967
973
  },
968
974
  {
969
975
  fingerprint: [{modelID: 'SM0201', manufacturerName: '_TYZB01_cbiezpds'}],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.555",
3
+ "version": "14.0.558",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [