zigbee-herdsman-converters 14.0.645 → 14.0.646

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.
@@ -5047,11 +5047,8 @@ const converters = {
5047
5047
  0x63: 'release_2_and_4', 0x22: 'press_energy_bar',
5048
5048
  };
5049
5049
 
5050
- if (!lookup.hasOwnProperty(commandID)) {
5051
- meta.logger.error(`PTM 215Z: missing command '${commandID}'`);
5052
- } else {
5053
- return {action: lookup[commandID]};
5054
- }
5050
+ const action = lookup.hasOwnProperty(commandID) ? lookup[commandID] : `unknown_${commandID}`;
5051
+ return {action};
5055
5052
  },
5056
5053
  },
5057
5054
  enocean_ptm215ze: {
@@ -7491,23 +7488,6 @@ const converters = {
7491
7488
  return result;
7492
7489
  },
7493
7490
  },
7494
- tuya_gas: {
7495
- cluster: 'manuSpecificTuya',
7496
- type: ['commandDataResponse'],
7497
- convert: (model, msg, publish, options, meta) => {
7498
- const dpValue = tuya.firstDpValue(msg, meta, 'tuya_gas');
7499
- const dp = dpValue.dp;
7500
- const value = tuya.getDataValue(dpValue);
7501
-
7502
- switch (dp) {
7503
- case tuya.dataPoints.state:
7504
- return {gas: value === 0 ? true : false};
7505
- default:
7506
- meta.logger.warn(`zigbee-herdsman-converters:tuya_gas: Unrecognized DP #${
7507
- dp} with data ${JSON.stringify(dpValue)}`);
7508
- }
7509
- },
7510
- },
7511
7491
  idlock: {
7512
7492
  cluster: 'closuresDoorLock',
7513
7493
  type: ['attributeReport', 'readResponse'],
package/devices/adeo.js CHANGED
@@ -87,6 +87,13 @@ module.exports = [
87
87
  description: 'ENKI LEXMAN E14 LED white',
88
88
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
89
89
  },
90
+ {
91
+ zigbeeModel: ['ZBEK-11'],
92
+ model: 'IM-CDZDGAAG005KA-MZN',
93
+ vendor: 'ADEO',
94
+ description: 'ENKI LEXMAN GU-10 LED white',
95
+ extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
96
+ },
90
97
  {
91
98
  zigbeeModel: ['ZBEK-12'],
92
99
  model: 'IA-CDZFB2AA007NA-MZN-01',
@@ -534,24 +534,25 @@ module.exports = [
534
534
  return {default: 35};
535
535
  },
536
536
  configure: async (device, coordinatorEndpoint, logger) => {
537
+ const endpoint39 = device.getEndpoint(39);
538
+ await reporting.bind(endpoint39, coordinatorEndpoint, ['msIlluminanceMeasurement']);
539
+ await reporting.illuminance(endpoint39,
540
+ {min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 500});
541
+
542
+ const endpoint38 = device.getEndpoint(38);
543
+ await reporting.bind(endpoint38, coordinatorEndpoint, ['msTemperatureMeasurement']);
544
+ await reporting.temperature(endpoint38,
545
+ {min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 100});
546
+
537
547
  const endpoint35 = device.getEndpoint(35);
538
548
  await reporting.bind(endpoint35, coordinatorEndpoint, ['genPowerCfg']);
539
549
  await reporting.batteryVoltage(endpoint35, {min: constants.repInterval.HOUR, max: 43200, change: 100});
550
+ await endpoint35.read('genBasic', ['develcoPrimarySwVersion', 'develcoPrimaryHwVersion'], manufacturerOptions);
551
+
540
552
  try {
541
- await endpoint35.read('genBasic', ['develcoPrimarySwVersion', 'develcoPrimaryHwVersion'], manufacturerOptions);
542
553
  await endpoint35.read('ssIasZone', ['develcoAlarmOffDelay'], manufacturerOptions);
543
554
  await endpoint35.read('genBasic', ['develcoLedControl'], manufacturerOptions);
544
555
  } catch (error) {/* some reports of timeouts on reading these */}
545
-
546
- const endpoint38 = device.getEndpoint(38);
547
- await reporting.bind(endpoint38, coordinatorEndpoint, ['msTemperatureMeasurement']);
548
- await reporting.temperature(endpoint38,
549
- {min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 100});
550
-
551
- const endpoint39 = device.getEndpoint(39);
552
- await reporting.bind(endpoint39, coordinatorEndpoint, ['msIlluminanceMeasurement']);
553
- await reporting.illuminance(endpoint39,
554
- {min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 500});
555
556
  },
556
557
  },
557
558
  {
package/devices/innr.js CHANGED
@@ -7,6 +7,21 @@ const e = exposes.presets;
7
7
  const ea = exposes.access;
8
8
 
9
9
  module.exports = [
10
+ {
11
+ zigbeeModel: ['RC 250'],
12
+ model: 'RC 250',
13
+ vendor: 'Innr',
14
+ description: 'Remote control',
15
+ fromZigbee: [fz.command_step, fz.command_on, fz.command_off, fz.command_move_to_level, fz.command_move_to_color_temp],
16
+ toZigbee: [],
17
+ exposes: [e.action(['on', 'off', 'brightness_step_up', 'brightness_step_down',
18
+ 'brightness_move_to_level', 'color_temperature_move'])],
19
+ configure: async (device, coordinatorEndpoint, logger) => {
20
+ const ep = device.getEndpoint(1);
21
+ await reporting.bind(ep, coordinatorEndpoint, ['genBasic', 'genGroups', 'genScenes',
22
+ 'genOnOff', 'genLevelCtrl', 'lightingColorCtrl']);
23
+ },
24
+ },
10
25
  {
11
26
  zigbeeModel: ['RCL 240 T'],
12
27
  model: 'RCL 240 T',
@@ -144,6 +159,14 @@ module.exports = [
144
159
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 555]}),
145
160
  meta: {applyRedFix: true, turnsOffAtBrightness1: true},
146
161
  },
162
+ {
163
+ zigbeeModel: ['RB 279 T'],
164
+ model: 'RB 279 T',
165
+ vendor: 'Innr',
166
+ description: 'Smart bulb tunable white E27',
167
+ extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 555]}),
168
+ meta: {applyRedFix: true, turnsOffAtBrightness1: true},
169
+ },
147
170
  {
148
171
  zigbeeModel: ['RB 285 C'],
149
172
  model: 'RB 285 C',
package/devices/osram.js CHANGED
@@ -227,7 +227,7 @@ module.exports = [
227
227
  model: '4052899926110',
228
228
  vendor: 'OSRAM',
229
229
  description: 'Flex RGBW',
230
- extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [125, 666], supportsHS: true, preferHS: true}),
230
+ extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [125, 666], supportsHS: true}),
231
231
  ota: ota.ledvance,
232
232
  },
233
233
  {
@@ -458,4 +458,12 @@ module.exports = [
458
458
  }
459
459
  },
460
460
  },
461
+ {
462
+ zigbeeModel: ['LIGHTIFY Under Cabinet TW'],
463
+ model: '71150',
464
+ vendor: 'OSRAM',
465
+ description: 'Lightify under cabinet tunable white',
466
+ extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
467
+ ota: ota.ledvance,
468
+ },
461
469
  ];
@@ -813,7 +813,7 @@ module.exports = [
813
813
  extend: hueExtend.light_onoff_brightness(),
814
814
  },
815
815
  {
816
- zigbeeModel: ['LTA001', '4080130P6'],
816
+ zigbeeModel: ['LTA001', '4080130P6', '4300631P6'],
817
817
  model: '9290022169',
818
818
  vendor: 'Philips',
819
819
  description: 'Hue white ambiance E27 with Bluetooth',
package/devices/tuya.js CHANGED
@@ -22,7 +22,7 @@ const TS011Fplugs = ['_TZ3000_5f43h46b', '_TZ3000_cphmq0q7', '_TZ3000_dpo1ysak',
22
22
  '_TZ3000_zloso4jk', '_TZ3000_r6buo8ba', '_TZ3000_iksasdbv', '_TZ3000_idrffznf', '_TZ3000_okaz9tjs', '_TZ3210_q7oryllx',
23
23
  '_TZ3000_ss98ec5d', '_TZ3000_gznh2xla', '_TZ3000_hdopuwv6', '_TZ3000_gvn91tmx', '_TZ3000_dksbtrzs', '_TZ3000_b28wrpvx',
24
24
  '_TZ3000_aim0ztek', '_TZ3000_mlswgkc3', '_TZ3000_7dndcnnb', '_TZ3000_waho4jtj', '_TZ3000_nmsciidq', '_TZ3000_jtgxgmks',
25
- '_TZ3000_rdfh8cfs'];
25
+ '_TZ3000_rdfh8cfs', '_TZ3000_yujkchbz'];
26
26
 
27
27
  const tzLocal = {
28
28
  SA12IZL_silence_siren: {
@@ -781,13 +781,23 @@ module.exports = [
781
781
  exposes: [e.carbon_monoxide(), e.co()],
782
782
  },
783
783
  {
784
- fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_ggev5fsl'}],
784
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ggev5fsl', '_TZE200_u319yc66']),
785
785
  model: 'TS0601_gas_sensor',
786
786
  vendor: 'TuYa',
787
787
  description: 'gas sensor',
788
- fromZigbee: [fz.tuya_gas],
789
- toZigbee: [],
790
- exposes: [e.gas()],
788
+ fromZigbee: [tuya.fzDataPoints],
789
+ toZigbee: [tuya.tzDataPoints],
790
+ configure: tuya.configureMagicPacket,
791
+ exposes: [e.gas(), tuya.exposes.selfTest(), tuya.exposes.selfTestResult(), tuya.exposes.faultAlarm(), tuya.exposes.silence()],
792
+ meta: {
793
+ tuyaDatapoints: [
794
+ [1, 'gas', tuya.valueConverter.true0ElseFalse],
795
+ [8, 'self_test', tuya.valueConverter.raw],
796
+ [9, 'self_test_result', tuya.valueConverter.selfTestResult],
797
+ [11, 'fault_alarm', tuya.valueConverter.trueFalse],
798
+ [16, 'silence', tuya.valueConverter.raw],
799
+ ],
800
+ },
791
801
  },
792
802
  {
793
803
  fingerprint: [{modelID: 'TS0001', manufacturerName: '_TZ3000_hktqahrq'}, {manufacturerName: '_TZ3000_hktqahrq'},
@@ -2004,6 +2014,7 @@ module.exports = [
2004
2014
  {modelID: 'TS0601', manufacturerName: '_TZE200_cpmgn2cf'},
2005
2015
  {modelID: 'TS0601', manufacturerName: '_TZE200_4eeyebrt'}, // Immax 07732B
2006
2016
  {modelID: 'TS0601', manufacturerName: '_TZE200_8whxpsiw'}, // EVOLVEO
2017
+ {modelID: 'TS0601', manufacturerName: '_TZE200_bvu2wnxz'}, /* model: 'TRV06', vendor: 'AVATTO' */
2007
2018
  ],
2008
2019
  model: 'TS0601_thermostat',
2009
2020
  vendor: 'TuYa',
@@ -2056,7 +2067,6 @@ module.exports = [
2056
2067
  {modelID: 'TS0601', manufacturerName: '_TZE200_mudxchsu'}, /* model: 'TV05-ZG curve', vendor: 'TuYa' */
2057
2068
  {modelID: 'TS0601', manufacturerName: '_TZE200_7yoranx2'}, /* model: 'TV01-ZB', vendor: 'Moes' */
2058
2069
  {modelID: 'TS0601', manufacturerName: '_TZE200_kds0pmmv'}, /* model: 'TV01-ZB', vendor: 'Moes' */
2059
- {modelID: 'TS0601', manufacturerName: '_TZE200_bvu2wnxz'}, /* model: 'TRV06', vendor: 'AVATTO' */
2060
2070
  ],
2061
2071
  model: 'TV02-Zigbee',
2062
2072
  vendor: 'TuYa',
package/devices/vimar.js CHANGED
@@ -48,4 +48,29 @@ module.exports = [
48
48
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
49
49
  },
50
50
  },
51
+ {
52
+ zigbeeModel: ['Thermostat_v0.1'],
53
+ model: '02973.B',
54
+ vendor: 'Vimar',
55
+ description: 'Vimar IoT thermostat',
56
+ fromZigbee: [fz.thermostat],
57
+ toZigbee: [
58
+ tz.thermostat_local_temperature,
59
+ tz.thermostat_occupied_heating_setpoint,
60
+ tz.thermostat_occupied_cooling_setpoint,
61
+ tz.thermostat_system_mode,
62
+ ],
63
+ exposes: [
64
+ exposes.climate().withSetpoint('occupied_heating_setpoint', 4, 40, 0.1)
65
+ .withSetpoint('occupied_cooling_setpoint', 4, 40, 0.1)
66
+ .withLocalTemperature()
67
+ .withSystemMode(['heat', 'cool']),
68
+ ],
69
+ configure: async (device, coordinatorEndpoint, logger) => {
70
+ const endpoint = device.getEndpoint(10);
71
+ const binds = ['genBasic', 'genIdentify', 'hvacThermostat'];
72
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
73
+ await reporting.thermostatTemperature(endpoint);
74
+ },
75
+ },
51
76
  ];
package/lib/tuya.js CHANGED
@@ -1152,6 +1152,12 @@ const tuyaExposes = {
1152
1152
  countdown: () => exposes.numeric('countdown', ea.STATE_SET).withValueMin(0).withValueMax(43200).withValueStep(1).withUnit('s')
1153
1153
  .withDescription('Countdown to turn device off after a certain time'),
1154
1154
  switch: () => e.switch().setAccess('state', ea.STATE_SET),
1155
+ selfTest: () => exposes.binary('self_test', ea.STATE_SET, true, false)
1156
+ .withDescription('Indicates whether the device is being self-tested'),
1157
+ selfTestResult: () => exposes.enum('self_test_result', ea.STATE, ['checking', 'success', 'failure', 'others'])
1158
+ .withDescription('Result of the self-test'),
1159
+ faultAlarm: () => exposes.binary('fault_alarm', ea.STATE, true, false).withDescription('Indicates whether a fault was detected'),
1160
+ silence: () => exposes.binary('silence', ea.STATE_SET, true, false).withDescription('Silence the alarm'),
1155
1161
  };
1156
1162
 
1157
1163
  const skip = {
@@ -1215,10 +1221,12 @@ const valueConverter = {
1215
1221
  },
1216
1222
  },
1217
1223
  true0ElseFalse: {from: (v) => v === 0},
1224
+ selfTestResult: valueConverterBasic.lookup({'checking': 0, 'success': 1, 'failure': 2, 'others': 3}),
1218
1225
  };
1219
1226
 
1220
1227
  const tzDataPoints = {
1221
- key: ['state', 'brightness', 'min_brightness', 'max_brightness', 'power_on_behavior', 'countdown', 'light_type'],
1228
+ key: ['state', 'brightness', 'min_brightness', 'max_brightness', 'power_on_behavior',
1229
+ 'countdown', 'light_type', 'silence', 'self_test'],
1222
1230
  convertSet: async (entity, key, value, meta) => {
1223
1231
  // A set converter is only called once; therefore we need to loop
1224
1232
  const state = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.645",
3
+ "version": "14.0.646",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [