zigbee-herdsman-converters 14.0.450 → 14.0.451

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.
@@ -4446,8 +4446,9 @@ const converters = {
4446
4446
  const dpValue = tuya.firstDpValue(msg, meta, 'tuya_thermostat');
4447
4447
  const dp = dpValue.dp;
4448
4448
  const value = tuya.getDataValue(dpValue);
4449
-
4450
4449
  switch (dp) {
4450
+ case tuya.dataPoints.windowOpen:
4451
+ return {window_open: value};
4451
4452
  case tuya.dataPoints.windowDetection:
4452
4453
  return {
4453
4454
  window_detection: value[0] ? 'ON' : 'OFF',
@@ -2116,7 +2116,7 @@ const converters = {
2116
2116
  'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'QBKG19LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM',
2117
2117
  'QBKG31LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM'].includes(meta.mapped.model)) {
2118
2118
  await entity.write('aqaraOpple', {0x0201: {value: value ? 1 : 0, type: 0x10}}, manufacturerOptions.xiaomi);
2119
- } else if (['ZNCZ02LM', 'QBCZ11LM'].includes(meta.mapped.model)) {
2119
+ } else if (['ZNCZ02LM', 'QBCZ11LM', 'LLKZMK11LM'].includes(meta.mapped.model)) {
2120
2120
  const payload = value ?
2121
2121
  [[0xaa, 0x80, 0x05, 0xd1, 0x47, 0x07, 0x01, 0x10, 0x01], [0xaa, 0x80, 0x03, 0xd3, 0x07, 0x08, 0x01]] :
2122
2122
  [[0xaa, 0x80, 0x05, 0xd1, 0x47, 0x09, 0x01, 0x10, 0x00], [0xaa, 0x80, 0x03, 0xd3, 0x07, 0x0a, 0x01]];
@@ -55,6 +55,22 @@ module.exports = [
55
55
  extend: extend.ledvance.light_onoff_brightness_colortemp_color(),
56
56
  ota: ota.ledvance,
57
57
  },
58
+ {
59
+ zigbeeModel: ['PAR16S RGBW'],
60
+ model: 'AC33906',
61
+ vendor: 'LEDVANCE',
62
+ description: 'SMART+ spot GU10 multicolor RGBW',
63
+ extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
64
+ ota: ota.ledvance,
65
+ },
66
+ {
67
+ zigbeeModel: ['PAR16S TW'],
68
+ model: 'AC33905',
69
+ vendor: 'LEDVANCE',
70
+ description: 'SMART+ spot GU10 tunable white',
71
+ extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
72
+ ota: ota.ledvance,
73
+ },
58
74
  {
59
75
  zigbeeModel: ['B40 TW Z3'],
60
76
  model: '4058075208414',
@@ -63,6 +79,14 @@ module.exports = [
63
79
  extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
64
80
  ota: ota.ledvance,
65
81
  },
82
+ {
83
+ zigbeeModel: ['P40S TW'],
84
+ model: 'AC33903',
85
+ vendor: 'LEDVANCE',
86
+ description: 'SMART+ classic P 40 E14 tunable white',
87
+ extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
88
+ ota: ota.ledvance,
89
+ },
66
90
  {
67
91
  zigbeeModel: ['FLEX RGBW Z3'],
68
92
  model: '4058075208339',
package/devices/lixee.js CHANGED
@@ -509,6 +509,14 @@ function getCurrentConfig(device, options, logger=console) {
509
509
  break;
510
510
  }
511
511
 
512
+ // Filter exposed attributes with user whitelist
513
+ if (options && options.hasOwnProperty('tic_command_whitelist')) {
514
+ const tic_commands_str = options['tic_command_whitelist'].toUpperCase();
515
+ if (tic_commands_str !== 'ALL') {
516
+ const tic_commands = tic_commands_str.split(',').map((a) => a.trim());
517
+ myExpose = myExpose.filter((a) => tic_commands.includes(a.exposes.name));
518
+ }
519
+ }
512
520
 
513
521
  return myExpose;
514
522
  }
@@ -547,6 +555,7 @@ const definition = {
547
555
  .withDescription(`Overrides the automatic current tarif. This option will exclude unnecesary attributes. Open a issue to support more of them. Default: auto`),
548
556
  exposes.options.precision(`kWh`),
549
557
  exposes.numeric(`measurement_poll_chunk`, ea.SET).withValueMin(1).withDescription(`During the poll, request multiple exposes to the Zlinky at once for reducing Zigbee network overload. Too much request at once could exceed device limit. Requieres Z2M restart. Default: 1`),
558
+ exposes.text(`tic_command_whitelist`, ea.SET).withDescription(`List of TIC commands to be exposed (separated by comma). Reconfigure device after change. Default: all`),
550
559
  ],
551
560
  configure: async (device, coordinatorEndpoint, logger, options) => {
552
561
  const endpoint = device.getEndpoint(1);
@@ -621,7 +630,11 @@ const definition = {
621
630
  // Split array by chunks
622
631
  for (i = 0, j = targ.length; i < j; i += measurement_poll_chunk) {
623
632
  await endpoint
624
- .read(cluster, targ.slice(i, i + measurement_poll_chunk), {manufacturerCode: null});
633
+ .read(cluster, targ.slice(i, i + measurement_poll_chunk), {manufacturerCode: null})
634
+ .catch((e) => {
635
+ // https://github.com/Koenkk/zigbee2mqtt/issues/11674
636
+ console.warn(`Failed to read zigbee attributes: ${e}`);
637
+ });
625
638
  }
626
639
  }
627
640
  }
package/devices/tuya.js CHANGED
@@ -143,7 +143,8 @@ module.exports = [
143
143
  description: 'Smart air house keeper',
144
144
  fromZigbee: [fz.tuya_air_quality],
145
145
  toZigbee: [],
146
- exposes: [e.temperature(), e.humidity(), e.co2(), e.voc(), e.formaldehyd().withUnit('ppm'), e.pm25()],
146
+ exposes: [e.temperature(), e.humidity(), e.co2(), e.voc(), e.formaldehyd().withUnit('ppm'),
147
+ e.pm25().withValueMin(0).withValueMax(999).withValueStep(1)],
147
148
  },
148
149
  {
149
150
  fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_7bztmfm1'}],
@@ -1039,7 +1040,9 @@ module.exports = [
1039
1040
  tz.tuya_thermostat_window_detect, tz.tuya_thermostat_schedule, tz.tuya_thermostat_week, tz.tuya_thermostat_away_preset,
1040
1041
  tz.tuya_thermostat_schedule_programming_mode],
1041
1042
  exposes: [
1042
- e.child_lock(), e.window_detection(), e.battery_low(), e.valve_detection(), e.position(),
1043
+ e.child_lock(), e.window_detection(),
1044
+ exposes.binary('window_open', ea.STATE).withDescription('Window open?'),
1045
+ e.battery_low(), e.valve_detection(), e.position(),
1043
1046
  exposes.climate().withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
1044
1047
  .withLocalTemperature(ea.STATE).withSystemMode(['heat', 'auto', 'off'], ea.STATE_SET,
1045
1048
  'Mode of this device, in the `heat` mode the TS0601 will remain continuously heating, i.e. it does not regulate ' +
package/devices/xiaomi.js CHANGED
@@ -1305,12 +1305,13 @@ module.exports = [
1305
1305
  description: 'Aqara wireless relay controller',
1306
1306
  fromZigbee: [fz.xiaomi_switch_basic, fz.xiaomi_power, fz.ignore_multistate_report, fz.on_off, fz.xiaomi_basic_raw],
1307
1307
  meta: {multiEndpoint: true},
1308
- toZigbee: [tz.on_off, tz.LLKZMK11LM_interlock, tz.xiaomi_power],
1308
+ toZigbee: [tz.on_off, tz.LLKZMK11LM_interlock, tz.xiaomi_power, tz.xiaomi_switch_power_outage_memory],
1309
1309
  endpoint: (device) => {
1310
1310
  return {'l1': 1, 'l2': 2};
1311
1311
  },
1312
1312
  exposes: [e.power().withAccess(ea.STATE_GET), e.energy(), e.temperature(), e.voltage(), e.current(),
1313
1313
  e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2'), e.power_outage_count(false),
1314
+ e.power_outage_memory(),
1314
1315
  exposes.binary('interlock', ea.STATE_SET, true, false)
1315
1316
  .withDescription('Enabling prevents both relais being on at the same time'),
1316
1317
  ],
package/lib/tuya.js CHANGED
@@ -258,6 +258,7 @@ const dataPoints = {
258
258
  scheduleWorkday: 112,
259
259
  scheduleHoliday: 113,
260
260
  awayTemp: 114,
261
+ windowOpen: 115,
261
262
  autoLock: 116,
262
263
  awayDays: 117,
263
264
  // Manufacturer specific
package/lib/xiaomi.js CHANGED
@@ -129,7 +129,11 @@ const buffer2DataObject = (meta, model, buffer) => {
129
129
  }
130
130
  }
131
131
 
132
- if (meta.logger) meta.logger.debug(`${model.zigbeeModel}: Processed buffer into data ${JSON.stringify(dataObject)}`);
132
+ if (meta.logger) {
133
+ meta.logger.debug(`${model.zigbeeModel}: Processed buffer into data ${JSON.stringify(dataObject,
134
+ (key, value) => typeof value === 'bigint' ? value.toString() : value)}`);
135
+ }
136
+
133
137
 
134
138
  return dataObject;
135
139
  };
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.450",
3
+ "version": "14.0.451",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "zigbee-herdsman-converters",
9
- "version": "14.0.450",
9
+ "version": "14.0.451",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "axios": "^0.26.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.450",
3
+ "version": "14.0.451",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [