zigbee-herdsman-converters 14.0.337 → 14.0.338

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.
@@ -2318,20 +2318,20 @@ const converters = {
2318
2318
  exposes.options.precision('humidity'), exposes.options.calibration('humidity')],
2319
2319
  convert: (model, msg, publish, options, meta) => {
2320
2320
  const dp = msg.data.dp;
2321
- if (dp === 101) return {occupancy: msg.data.data[0] > 0};
2321
+ const value = tuya.getDataValue(msg.data.datatype, msg.data.data);
2322
+
2323
+ if (dp === 101) return {occupancy: value > 0 ? true : false};
2322
2324
  else if (dp === 102) {
2323
- const value = msg.data.data[0];
2324
2325
  return {
2325
2326
  power_type: {0: 'battery_full', 1: 'battery_high', 2: 'battery_medium', 3: 'battery_low', 4: 'usb'}[value],
2326
2327
  battery_low: value === 3,
2327
2328
  };
2328
2329
  } else if (dp === 103) {
2329
- return {tamper: msg.data.data[0] > 0 ? true : false};
2330
+ return {tamper: value > 0 ? true : false};
2330
2331
  } else if (dp === 104) {
2331
- const temperature = parseFloat(msg.data.data[3]) / 10.0;
2332
- return {temperature: calibrateAndPrecisionRoundOptions(temperature, options, 'temperature')};
2332
+ return {temperature: calibrateAndPrecisionRoundOptions(value / 10, options, 'temperature')};
2333
2333
  } else if (dp === 105) {
2334
- return {humidity: calibrateAndPrecisionRoundOptions(msg.data.data[3], options, 'humidity')};
2334
+ return {humidity: calibrateAndPrecisionRoundOptions(value, options, 'humidity')};
2335
2335
  } else {
2336
2336
  meta.logger.warn(`zigbee-herdsman-converters:NEO-PD07: NOT RECOGNIZED DP #${dp} with data ${JSON.stringify(msg.data)}`);
2337
2337
  }
@@ -252,4 +252,21 @@ module.exports = [
252
252
  },
253
253
  exposes: [e.battery(), e.temperature(), e.humidity()],
254
254
  },
255
+ {
256
+ zigbeeModel: ['EFEKTA_miniPWS'],
257
+ model: 'EFEKTA_miniPWS',
258
+ vendor: 'Custom devices (DiY)',
259
+ description: '[Mini plant wattering sensor](http://efektalab.com/miniPWS)',
260
+ fromZigbee: [fz.soil_moisture, fz.battery],
261
+ toZigbee: [tz.factory_reset],
262
+ configure: async (device, coordinatorEndpoint, logger) => {
263
+ const firstEndpoint = device.getEndpoint(1);
264
+ await reporting.bind(firstEndpoint, coordinatorEndpoint, ['genPowerCfg', 'msSoilMoisture']);
265
+ const overides = {min: 0, max: 21600, change: 0};
266
+ await reporting.batteryVoltage(firstEndpoint, overides);
267
+ await reporting.batteryPercentageRemaining(firstEndpoint, overides);
268
+ await reporting.soil_moisture(firstEndpoint, overides);
269
+ },
270
+ exposes: [e.soil_moisture(), e.battery()],
271
+ },
255
272
  ];
@@ -45,7 +45,8 @@ module.exports = [
45
45
  .withSystemMode(['heat']).withRunningState(['idle', 'heat'], ea.STATE),
46
46
  exposes.numeric('external_measured_room_sensor', ea.ALL)
47
47
  .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 ' +
48
- 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
48
+ 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).')
49
+ .withValueMin(-8000).withValueMax(3500),
49
50
  exposes.numeric('window_open_internal', ea.STATE_GET).withValueMin(0).withValueMax(4)
50
51
  .withDescription('0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, ' +
51
52
  '3=Open window detected, 4=In window open state from external but detected closed locally'),
@@ -64,7 +65,8 @@ module.exports = [
64
65
  .withDescription('Whether or not the thermostat acts as standalone thermostat or shares load with other ' +
65
66
  'thermostats in the room. The gateway must update load_room_mean if enabled.'),
66
67
  exposes.numeric('load_room_mean', ea.ALL)
67
- .withDescription('Mean radiator load for room calculated by gateway for load balancing purposes'),
68
+ .withDescription('Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)')
69
+ .withValueMin(-8000).withValueMax(100),
68
70
  exposes.numeric('load_estimate', ea.STATE_GET)
69
71
  .withDescription('Load estimate on this radiator')],
70
72
  ota: ota.zigbeeOTA,
@@ -318,7 +318,7 @@ module.exports = [
318
318
  ['electricity', 'gas', 'water', 'kamstrup-kmp', 'linky', 'IEC62056-21', 'DSMR-2.3', 'DSMR-4.0'])
319
319
  .withDescription('Operating mode/probe'),
320
320
  exposes.numeric('current_summation', ea.SET)
321
- .withDescription('Current summation value sent to the display. e.g. 570 = 0,570 kWh'),
321
+ .withDescription('Current summation value sent to the display. e.g. 570 = 0,570 kWh').withValueMin(0).withValueMax(10000),
322
322
  exposes.binary('check_meter', ea.STATE, true, false)
323
323
  .withDescription('Is true if communication problem with meter is experienced'),
324
324
  ],
package/devices/diyruz.js CHANGED
@@ -150,11 +150,13 @@ module.exports = [
150
150
  exposes.numeric('radiation_dose_per_hour', ea.STATE).withUnit('μR/h').withDescription('Current radiation level'),
151
151
  exposes.binary('led_feedback', ea.ALL, 'ON', 'OFF').withDescription('Enable LED feedback'),
152
152
  exposes.binary('buzzer_feedback', ea.ALL, 'ON', 'OFF').withDescription('Enable buzzer feedback'),
153
- exposes.numeric('alert_threshold', ea.ALL).withUnit('μR/h').withDescription('Critical radiation level'),
153
+ exposes.numeric('alert_threshold', ea.ALL).withUnit('μR/h').withDescription('Critical radiation level')
154
+ .withValueMin(0).withValueMax(10000),
154
155
  exposes.enum('sensors_type', ea.ALL, ['СБМ-20/СТС-5/BOI-33', 'СБМ-19/СТС-6', 'Others'])
155
156
  .withDescription('Type of installed tubes'),
156
- exposes.numeric('sensors_count', ea.ALL).withDescription('Count of installed tubes'),
157
- exposes.numeric('sensitivity', ea.ALL).withDescription('This is applicable if tubes type is set to other')],
157
+ exposes.numeric('sensors_count', ea.ALL).withDescription('Count of installed tubes').withValueMin(0).withValueMax(50),
158
+ exposes.numeric('sensitivity', ea.ALL).withDescription('This is applicable if tubes type is set to other')
159
+ .withValueMin(0).withValueMax(100)],
158
160
  toZigbee: [tz.diyruz_geiger_config, tz.factory_reset],
159
161
  configure: async (device, coordinatorEndpoint, logger) => {
160
162
  const endpoint = device.getEndpoint(1);
@@ -250,11 +252,16 @@ module.exports = [
250
252
  exposes: [e.co2(), e.temperature(), e.humidity(), e.pressure(),
251
253
  exposes.binary('led_feedback', ea.ALL, 'ON', 'OFF').withDescription('Enable LEDs feedback'),
252
254
  exposes.binary('enable_abc', ea.ALL, 'ON', 'OFF').withDescription('Enable ABC (Automatic Baseline Correction)'),
253
- exposes.numeric('threshold1', ea.ALL).withUnit('ppm').withDescription('Warning (LED2) CO2 level'),
254
- exposes.numeric('threshold2', ea.ALL).withUnit('ppm').withDescription('Critical (LED3) CO2 level'),
255
- exposes.numeric('temperature_offset', ea.ALL).withUnit('°C').withDescription('Adjust temperature'),
256
- exposes.numeric('humidity_offset', ea.ALL).withUnit('%').withDescription('Adjust humidity'),
257
- exposes.numeric('pressure_offset', ea.ALL).withUnit('hPa').withDescription('Adjust pressure')],
255
+ exposes.numeric('threshold1', ea.ALL).withUnit('ppm').withDescription('Warning (LED2) CO2 level')
256
+ .withValueMin(0).withValueMax(50000),
257
+ exposes.numeric('threshold2', ea.ALL).withUnit('ppm').withDescription('Critical (LED3) CO2 level')
258
+ .withValueMin(0).withValueMax(50000),
259
+ exposes.numeric('temperature_offset', ea.ALL).withUnit('°C').withDescription('Adjust temperature')
260
+ .withValueMin(-20).withValueMax(20),
261
+ exposes.numeric('humidity_offset', ea.ALL).withUnit('%').withDescription('Adjust humidity')
262
+ .withValueMin(-50).withValueMax(50),
263
+ exposes.numeric('pressure_offset', ea.ALL).withUnit('hPa').withDescription('Adjust pressure')
264
+ .withValueMin(-1000).withValueMax(1000)],
258
265
  },
259
266
  {
260
267
  zigbeeModel: ['DIY_Zintercom'],
@@ -282,15 +289,15 @@ module.exports = [
282
289
  exposes.binary('sound', ea.ALL, 'ON', 'OFF').withProperty('sound')
283
290
  .withDescription('Enable or disable sound'),
284
291
  exposes.numeric('time_ring', ea.ALL).withUnit('sec')
285
- .withDescription('Time to ring before answer'),
292
+ .withDescription('Time to ring before answer').withValueMin(0).withValueMax(600),
286
293
  exposes.numeric('time_talk', ea.ALL).withUnit('sec')
287
- .withDescription('Time to hold before open'),
294
+ .withDescription('Time to hold before open').withValueMin(0).withValueMax(600),
288
295
  exposes.numeric('time_open', ea.ALL).withUnit('sec')
289
- .withDescription('Time to open before end'),
296
+ .withDescription('Time to open before end').withValueMin(0).withValueMax(600),
290
297
  exposes.numeric('time_bell', ea.ALL).withUnit('sec')
291
- .withDescription('Time after last bell to finish ring'),
298
+ .withDescription('Time after last bell to finish ring').withValueMin(0).withValueMax(600),
292
299
  exposes.numeric('time_report', ea.ALL).withUnit('min')
293
- .withDescription('Reporting interval'),
300
+ .withDescription('Reporting interval').withValueMin(0).withValueMax(1440),
294
301
  e.battery(),
295
302
  ],
296
303
  },
package/devices/fantem.js CHANGED
@@ -29,10 +29,14 @@ module.exports = [
29
29
  fromZigbee: [fz.battery, fz.ignore_basic_report, fz.illuminance, fz.ZB003X, fz.ZB003X_attr, fz.ZB003X_occupancy],
30
30
  toZigbee: [tz.ZB003X],
31
31
  exposes: [e.occupancy(), e.tamper(), e.battery(), e.illuminance(), e.illuminance_lux().withUnit('lx'), e.temperature(),
32
- e.humidity(), exposes.numeric('reporting_time', ea.STATE_SET).withDescription('Reporting interval in minutes'),
33
- exposes.numeric('temperature_calibration', ea.STATE_SET).withDescription('Temperature calibration'),
34
- exposes.numeric('humidity_calibration', ea.STATE_SET).withDescription('Humidity calibration'),
35
- exposes.numeric('illuminance_calibration', ea.STATE_SET).withDescription('Illuminance calibration'),
32
+ e.humidity(), exposes.numeric('reporting_time', ea.STATE_SET).withDescription('Reporting interval in minutes')
33
+ .withValueMin(0).withValueMax(1440),
34
+ exposes.numeric('temperature_calibration', ea.STATE_SET).withDescription('Temperature calibration')
35
+ .withValueMin(-20).withValueMax(20),
36
+ exposes.numeric('humidity_calibration', ea.STATE_SET).withDescription('Humidity calibration')
37
+ .withValueMin(-50).withValueMax(50),
38
+ exposes.numeric('illuminance_calibration', ea.STATE_SET).withDescription('Illuminance calibration')
39
+ .withValueMin(-10000).withValueMax(10000),
36
40
  exposes.binary('pir_enable', ea.STATE_SET, true, false).withDescription('Enable PIR sensor'),
37
41
  exposes.binary('led_enable', ea.STATE_SET, true, false).withDescription('Enabled LED'),
38
42
  exposes.binary('reporting_enable', ea.STATE_SET, true, false).withDescription('Enabled reporting'),
package/devices/hive.js CHANGED
@@ -184,7 +184,8 @@ module.exports = [
184
184
  .withSystemMode(['heat']).withRunningState(['idle', 'heat'], ea.STATE),
185
185
  exposes.numeric('external_measured_room_sensor', ea.ALL)
186
186
  .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 ' +
187
- 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
187
+ 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).')
188
+ .withValueMin(-8000).withValueMax(3500),
188
189
  exposes.numeric('window_open_internal', ea.STATE_GET).withValueMin(0).withValueMax(4)
189
190
  .withDescription('0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, ' +
190
191
  '3=Open window detected, 4=In window open state from external but detected closed locally'),
@@ -203,7 +204,8 @@ module.exports = [
203
204
  .withDescription('Whether or not the thermostat acts as standalone thermostat or shares load with other ' +
204
205
  'thermostats in the room. The gateway must update load_room_mean if enabled.'),
205
206
  exposes.numeric('load_room_mean', ea.ALL)
206
- .withDescription('Mean radiator load for room calculated by gateway for load balancing purposes'),
207
+ .withDescription('Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)')
208
+ .withValueMin(-8000).withValueMax(100),
207
209
  exposes.numeric('load_estimate', ea.STATE_GET)
208
210
  .withDescription('Load estimate on this radiator')],
209
211
  configure: async (device, coordinatorEndpoint, logger) => {
package/devices/immax.js CHANGED
@@ -148,10 +148,14 @@ module.exports = [
148
148
  fromZigbee: [fz.battery, fz.ignore_basic_report, fz.illuminance, fz.ZB003X, fz.ZB003X_attr, fz.ZB003X_occupancy],
149
149
  toZigbee: [tz.ZB003X],
150
150
  exposes: [e.occupancy(), e.tamper(), e.battery(), e.illuminance(), e.illuminance_lux().withUnit('lx'), e.temperature(),
151
- e.humidity(), exposes.numeric('reporting_time', ea.STATE_SET).withDescription('Reporting interval in minutes'),
152
- exposes.numeric('temperature_calibration', ea.STATE_SET).withDescription('Temperature calibration'),
153
- exposes.numeric('humidity_calibration', ea.STATE_SET).withDescription('Humidity calibration'),
154
- exposes.numeric('illuminance_calibration', ea.STATE_SET).withDescription('Illuminance calibration'),
151
+ e.humidity(), exposes.numeric('reporting_time', ea.STATE_SET).withDescription('Reporting interval in minutes')
152
+ .withValueMin(0).withValueMax(1440),
153
+ exposes.numeric('temperature_calibration', ea.STATE_SET).withDescription('Temperature calibration')
154
+ .withValueMin(-20).withValueMax(20),
155
+ exposes.numeric('humidity_calibration', ea.STATE_SET).withDescription('Humidity calibration')
156
+ .withValueMin(-50).withValueMax(50),
157
+ exposes.numeric('illuminance_calibration', ea.STATE_SET).withDescription('Illuminance calibration')
158
+ .withValueMin(-10000).withValueMax(10000),
155
159
  exposes.binary('pir_enable', ea.STATE_SET, true, false).withDescription('Enable PIR sensor'),
156
160
  exposes.binary('led_enable', ea.STATE_SET, true, false).withDescription('Enabled LED'),
157
161
  exposes.binary('reporting_enable', ea.STATE_SET, true, false).withDescription('Enabled reporting'),
package/devices/javis.js CHANGED
@@ -31,6 +31,7 @@ module.exports = [
31
31
  exposes.enum('keep_time', ea.STATE_SET, ['0', '1', '2', '3', '4', '5', '6', '7'])
32
32
  .withDescription('PIR keep time 0:5s|1:30s|2:60s|3:180s|4:300s|5:600s|6:1200s|7:1800s'),
33
33
  exposes.enum('sensitivity', ea.STATE_SET, ['25', '50', '75', '100']),
34
- exposes.numeric('illuminance_calibration', ea.STATE_SET).withDescription('Illuminance calibration')],
34
+ exposes.numeric('illuminance_calibration', ea.STATE_SET).withDescription('Illuminance calibration')
35
+ .withValueMin(-10000).withValueMax(10000)],
35
36
  },
36
37
  ];
package/devices/lidl.js CHANGED
@@ -610,7 +610,7 @@ module.exports = [
610
610
  toZigbee: [tz.on_off, tz.lidl_watering_timer],
611
611
  onEvent: tuya.onEventSetTime,
612
612
  configure: async (device, coordinatorEndpoint, logger) => {},
613
- exposes: [e.switch(), exposes.numeric('timer', ea.SET).withValueMin(1)
613
+ exposes: [e.switch(), exposes.numeric('timer', ea.SET).withValueMin(1).withValueMax(10000)
614
614
  .withUnit('min').withDescription('Auto off after specific time.')],
615
615
  },
616
616
  {
@@ -677,8 +677,10 @@ module.exports = [
677
677
  .withLocalTemperature(ea.STATE).withLocalTemperatureCalibration(-20, 20, 1, ea.STATE_SET)
678
678
  .withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET)
679
679
  .withPreset(['schedule', 'manual', 'holiday', 'boost']),
680
- exposes.numeric('detectwindow_temperature', ea.STATE_SET).withUnit('°C').withDescription('Open window detection temperature'),
681
- exposes.numeric('detectwindow_timeminute', ea.STATE_SET).withUnit('min').withDescription('Open window time in minute'),
680
+ exposes.numeric('detectwindow_temperature', ea.STATE_SET).withUnit('°C').withDescription('Open window detection temperature')
681
+ .withValueMin(-10).withValueMax(35),
682
+ exposes.numeric('detectwindow_timeminute', ea.STATE_SET).withUnit('min').withDescription('Open window time in minute')
683
+ .withValueMin(0).withValueMax(1000),
682
684
  exposes.binary('binary_one', ea.STATE_SET, 'ON', 'OFF').withDescription('Unknown binary one'),
683
685
  exposes.binary('binary_two', ea.STATE_SET, 'ON', 'OFF').withDescription('Unknown binary two'),
684
686
  exposes.binary('away_mode', ea.STATE, 'ON', 'OFF').withDescription('Away mode'),
package/devices/moes.js CHANGED
@@ -225,9 +225,10 @@ module.exports = [
225
225
  'You can set up to 4 stages of temperature every for WEEKDAY ➀➁➂➃➄, SATURDAY ➅ and SUNDAY ➆.'),
226
226
  exposes.binary('boost_heating', ea.STATE_SET, 'ON', 'OFF').withDescription('Boost Heating: press and hold "+" for 3 seconds, ' +
227
227
  'the device will enter the boost heating mode, and the ▷╵◁ will flash. The countdown will be displayed in the APP'),
228
- exposes.numeric('boost_heating_countdown', ea.STATE_SET).withUnit('min').withDescription('Countdown in minutes'),
228
+ exposes.numeric('boost_heating_countdown', ea.STATE_SET).withUnit('min').withDescription('Countdown in minutes')
229
+ .withValueMin(0).withValueMax(15),
229
230
  exposes.numeric('boost_heating_countdown_time_set', ea.STATE_SET).withUnit('second')
230
- .withDescription('Boost Time Setting 100 sec - 900 sec, (default = 300 sec)')],
231
+ .withDescription('Boost Time Setting 100 sec - 900 sec, (default = 300 sec)').withValueMin(100).withValueMax(900)],
231
232
  },
232
233
  {
233
234
  fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_la2c2uo9'}],
@@ -285,34 +286,7 @@ module.exports = [
285
286
  supports: 'open, close, stop, position',
286
287
  fromZigbee: [fz.tuya_cover_options, fz.cover_position_tilt],
287
288
  toZigbee: [tz.cover_state, tz.moes_cover_calibration, tz.cover_position_tilt, tz.tuya_cover_reversal],
288
- exposes: [e.cover_position(), exposes.numeric('calibration_time', ea.ALL), exposes.enum('moving', ea.STATE, ['UP', 'STOP', 'DOWN']),
289
- exposes.binary('motor_reversal', ea.ALL, 'ON', 'OFF')],
290
- },
291
- {
292
- fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_e9ba97vf'},
293
- {modelID: 'TS0601', manufacturerName: '_TZE200_husqqvux'}],
294
- model: 'TV01-ZB',
295
- vendor: 'Moes',
296
- description: 'Thermostat radiator valve',
297
- fromZigbee: [fz.moes_thermostat_tv, fz.ignore_tuya_set_time],
298
- whiteLabel: [{vendor: 'Tesla Smart', model: 'TSL-TRV-TV01ZG'}],
299
- toZigbee: [tz.moes_thermostat_tv],
300
- exposes: [
301
- e.battery(), e.child_lock(), e.window_detection(),
302
- exposes.binary('frost_detection', ea.STATE_SET, true, false).withDescription('Enables/disables frost detection on the device'),
303
- exposes.binary('heating_stop', ea.STATE_SET, true, false).withDescription('Stop heating'),
304
- exposes.numeric('holiday_temperature', ea.STATE_SET).withDescription('Holiday mode temperature'),
305
- exposes.numeric('comfort_temperature', ea.STATE_SET).withDescription('Comfort mode temperature'),
306
- exposes.numeric('eco_temperature', ea.STATE_SET).withDescription('Eco mode temperature'),
307
- exposes.numeric('open_window_temperature', ea.STATE_SET).withDescription('Open window mode temperature'),
308
- exposes.numeric('boost_heating_countdown', ea.STATE).withDescription('Boost heating countdown'),
309
- exposes.numeric('error_status', ea.STATE).withDescription('Error status'),
310
- // exposes.binary('boost_mode', ea.STATE_SET).withDescription('Enables/disables boost mode'),
311
- exposes.climate().withSetpoint('current_heating_setpoint', 5, 29.5, 1, ea.STATE_SET)
312
- .withLocalTemperature(ea.STATE).withLocalTemperatureCalibration(-20, 20, 1, ea.STATE_SET)
313
- .withSystemMode(Object.values(tuya.tvThermostatMode), ea.STATE_SET)
314
- .withPreset(Object.values(tuya.tvThermostatPreset)),
315
- ],
316
- onEvent: tuya.onEventSetLocalTime,
289
+ exposes: [e.cover_position(), exposes.numeric('calibration_time', ea.ALL).withValueMin(0).withValueMax(100),
290
+ exposes.enum('moving', ea.STATE, ['UP', 'STOP', 'DOWN']), exposes.binary('motor_reversal', ea.ALL, 'ON', 'OFF')],
317
291
  },
318
292
  ];
package/devices/neo.js CHANGED
@@ -19,11 +19,11 @@ module.exports = [
19
19
  exposes.binary('temperature_alarm', ea.STATE_SET, true, false),
20
20
  exposes.binary('alarm', ea.STATE_SET, true, false),
21
21
  exposes.enum('melody', ea.STATE_SET, Array.from(Array(18).keys()).map((x)=>(x+1).toString())),
22
- exposes.numeric('duration', ea.STATE_SET).withUnit('second'),
23
- exposes.numeric('temperature_min', ea.STATE_SET).withUnit('°C'),
24
- exposes.numeric('temperature_max', ea.STATE_SET).withUnit('°C'),
25
- exposes.numeric('humidity_min', ea.STATE_SET).withUnit('%'),
26
- exposes.numeric('humidity_max', ea.STATE_SET).withUnit('%'),
22
+ exposes.numeric('duration', ea.STATE_SET).withUnit('second').withValueMin(0).withValueMax(1000),
23
+ exposes.numeric('temperature_min', ea.STATE_SET).withUnit('°C').withValueMin(-10).withValueMax(35),
24
+ exposes.numeric('temperature_max', ea.STATE_SET).withUnit('°C').withValueMin(-10).withValueMax(35),
25
+ exposes.numeric('humidity_min', ea.STATE_SET).withUnit('%').withValueMin(0).withValueMax(100),
26
+ exposes.numeric('humidity_max', ea.STATE_SET).withUnit('%').withValueMin(0).withValueMax(100),
27
27
  exposes.enum('volume', ea.STATE_SET, ['low', 'medium', 'high']),
28
28
  exposes.enum('power_type', ea.STATE, ['battery_full', 'battery_high', 'battery_medium', 'battery_low', 'usb']),
29
29
  ],
@@ -243,12 +243,12 @@ module.exports = [
243
243
  ota: ota.zigbeeOTA,
244
244
  },
245
245
  {
246
- zigbeeModel: ['LCP001', 'LCP002', '4090331P9_01', '4090331P9_02'],
246
+ zigbeeModel: ['LCP001', 'LCP002', '4090331P9_01', '4090331P9_02', '929003053301_01', '929003053301_02'],
247
247
  model: '4090331P9',
248
248
  vendor: 'Philips',
249
- description: 'Hue Ensis',
249
+ description: 'Hue Ensis (white)',
250
250
  meta: {turnsOffAtBrightness1: true},
251
- extend: hueExtend.light_onoff_brightness_colortemp_color(),
251
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
252
252
  ota: ota.zigbeeOTA,
253
253
  },
254
254
  {
package/devices/popp.js CHANGED
@@ -43,7 +43,8 @@ module.exports = [
43
43
  .withSystemMode(['heat']).withRunningState(['idle', 'heat'], ea.STATE),
44
44
  exposes.numeric('external_measured_room_sensor', ea.ALL)
45
45
  .withDescription('Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 ' +
46
- 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).'),
46
+ 'degrees difference. Resets every 3hours to standard. e.g. 21C = 2100 (-8000=undefined).')
47
+ .withValueMin(-8000).withValueMax(3500),
47
48
  exposes.numeric('window_open_internal', ea.STATE_GET).withValueMin(0).withValueMax(4)
48
49
  .withDescription('0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, ' +
49
50
  '3=Open window detected, 4=In window open state from external but detected closed locally'),
@@ -62,7 +63,8 @@ module.exports = [
62
63
  .withDescription('Whether or not the thermostat acts as standalone thermostat or shares load with other ' +
63
64
  'thermostats in the room. The gateway must update load_room_mean if enabled.'),
64
65
  exposes.numeric('load_room_mean', ea.ALL)
65
- .withDescription('Mean radiator load for room calculated by gateway for load balancing purposes'),
66
+ .withDescription('Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)')
67
+ .withValueMin(-8000).withValueMax(100),
66
68
  exposes.numeric('load_estimate', ea.STATE_GET)
67
69
  .withDescription('Load estimate on this radiator')],
68
70
  ota: ota.zigbeeOTA,
package/devices/tuya.js CHANGED
@@ -816,22 +816,32 @@ module.exports = [
816
816
  },
817
817
  {
818
818
  fingerprint: [
819
- {/* model: 'TV02-Zigbee', vendor: 'TuYa', */modelID: 'TS0601', manufacturerName: '_TZE200_hue3yfsn'}],
819
+ {modelID: 'TS0601', manufacturerName: '_TZE200_hue3yfsn'}, /* model: 'TV02-Zigbee', vendor: 'TuYa' */
820
+ {modelID: 'TS0601', manufacturerName: '_TZE200_e9ba97vf'}, /* model: 'TV01-ZB', vendor: 'Moes' */
821
+ {modelID: 'TS0601', manufacturerName: '_TZE200_husqqvux'}, /* model: 'TSL-TRV-TV01ZG', vendor: 'Tesla Smart' */
822
+ ],
820
823
  model: 'TV02-Zigbee',
821
824
  vendor: 'TuYa',
822
825
  description: 'Thermostat radiator valve',
826
+ whiteLabel: [
827
+ {vendor: 'Moes', model: 'TV01-ZB'},
828
+ {vendor: 'Tesla Smart', model: 'TSL-TRV-TV01ZG'},
829
+ ],
823
830
  ota: ota.zigbeeOTA,
824
831
  fromZigbee: [fz.ignore_basic_report, fz.ignore_tuya_set_time, fz.tvtwo_thermostat],
825
832
  toZigbee: [tz.tvtwo_thermostat],
826
833
  onEvent: tuya.onEventSetLocalTime,
827
834
  exposes: [
835
+ e.battery_low(), e.child_lock(), e.open_window(), e.open_window_temperature().withValueMin(0).withValueMax(30),
836
+ e.holiday_temperature().withValueMin(0).withValueMax(30), e.comfort_temperature().withValueMin(0).withValueMax(30),
837
+ e.eco_temperature().withValueMin(0).withValueMax(30),
828
838
  e.battery_low(), e.child_lock(), e.open_window(), e.open_window_temperature(), e.holiday_temperature(),
829
839
  e.comfort_temperature(), e.eco_temperature(),
830
840
  exposes.climate().withPreset(['auto', 'manual', 'holiday']).withLocalTemperatureCalibration(-20, 20, 1, ea.STATE_SET)
831
841
  .withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 0, 30, 0.5, ea.STATE_SET),
832
842
  exposes.numeric('boost_timeset_countdown', ea.STATE_SET).withUnit('second').withDescription('Setting '+
833
843
  'minimum 0 - maximum 465 seconds boost time. The boost (♨) function is activated. The remaining '+
834
- 'time for the function will be counted down in seconds ( 465 to 0 ).'),
844
+ 'time for the function will be counted down in seconds ( 465 to 0 ).').withValueMin(0).withValueMax(465),
835
845
  exposes.binary('frost_protection', ea.STATE_SET, 'ON', 'OFF').withDescription('When Anti-Freezing function'+
836
846
  ' is activated, the temperature in the house is kept at 8 °C ‚the device display "AF".press the '+
837
847
  'pair button to cancel.'),
@@ -839,8 +849,11 @@ module.exports = [
839
849
  ' by switching the heating off. To achieve this, the valve is closed fully. To activate the '+
840
850
  'heating stop, the device display "HS" ‚press the pair button to cancel.'),
841
851
  exposes.binary('online', ea.STATE_SET, 'ON', 'OFF').withDescription('Is the device online'),
842
- exposes.numeric('holiday_mode_date', ea.STATE_SET).withDescription('The holiday mode( ⛱ ) will '+
852
+ exposes.text('holiday_mode_date', ea.STATE_SET).withDescription('The holiday mode( ⛱ ) will '+
843
853
  'automatically start at the set time starting point and run the holiday temperature.'),
854
+ exposes.numeric('holiday_mode_date', ea.STATE_SET).withDescription('The holiday mode( ⛱ ) will '+
855
+ 'automatically start at the set time starting point and run the holiday temperature.')
856
+ .withValueMin(0).withValueMax(1000),
844
857
  exposes.composite('programming').withDescription('Auto Mode ⏱ - In this mode,'+
845
858
  ' the device executes a preset week programming temperature time and temperature. ')
846
859
  .withFeature(exposes.text('schedule_monday', ea.STATE))
@@ -942,7 +955,8 @@ module.exports = [
942
955
  .withFeature(exposes.text('sunday_schedule', ea.STATE)),
943
956
  exposes.binary('boost_heating', ea.STATE_SET, 'ON', 'OFF').withDescription('Boost Heating: press and hold "+" for 3 seconds, ' +
944
957
  'the device will enter the boost heating mode, and the ▷╵◁ will flash. The countdown will be displayed in the APP'),
945
- exposes.numeric('boost_heating_countdown', ea.STATE_SET).withUnit('min').withDescription('Countdown in minutes'),
958
+ exposes.numeric('boost_heating_countdown', ea.STATE_SET).withUnit('min').withDescription('Countdown in minutes')
959
+ .withValueMin(0).withValueMax(1000),
946
960
  ],
947
961
  },
948
962
  {
@@ -1604,9 +1618,12 @@ module.exports = [
1604
1618
  exposes.enum('o_sensitivity', ea.STATE_SET, Object.values(tuya.msLookups.OSensitivity)).withDescription('O-Sensitivity mode'),
1605
1619
  exposes.enum('v_sensitivity', ea.STATE_SET, Object.values(tuya.msLookups.VSensitivity)).withDescription('V-Sensitivity mode'),
1606
1620
  exposes.enum('led_status', ea.STATE_SET, ['ON', 'OFF']).withDescription('Led status switch'),
1607
- exposes.numeric('vacancy_delay', ea.STATE_SET).withUnit('sec').withDescription('Vacancy delay'),
1608
- exposes.numeric('light_on_luminance_prefer', ea.STATE_SET).withDescription('Light-On luminance prefer'),
1609
- exposes.numeric('light_off_luminance_prefer', ea.STATE_SET).withDescription('Light-Off luminance prefer'),
1621
+ exposes.numeric('vacancy_delay', ea.STATE_SET).withUnit('sec').withDescription('Vacancy delay').withValueMin(0)
1622
+ .withValueMax(1000),
1623
+ exposes.numeric('light_on_luminance_prefer', ea.STATE_SET).withDescription('Light-On luminance prefer')
1624
+ .withValueMin(0).withValueMax(10000),
1625
+ exposes.numeric('light_off_luminance_prefer', ea.STATE_SET).withDescription('Light-Off luminance prefer')
1626
+ .withValueMin(0).withValueMax(10000),
1610
1627
  exposes.enum('mode', ea.STATE_SET, Object.values(tuya.msLookups.Mode)).withDescription('Working mode'),
1611
1628
  exposes.numeric('luminance_level', ea.STATE).withDescription('Luminance level'),
1612
1629
  exposes.numeric('reference_luminance', ea.STATE).withDescription('Reference luminance'),
package/lib/exposes.js CHANGED
@@ -506,8 +506,8 @@ module.exports = {
506
506
  auto_lock: () => new Switch().withState('auto_lock', false, 'Enable/disable auto lock', access.STATE_SET, 'AUTO', 'MANUAL'),
507
507
  auto_relock_time: () => new Numeric('auto_relock_time', access.ALL).withValueMin(0).withUnit('s').withDescription('The number of seconds to wait after unlocking a lock before it automatically locks again. 0=disabled'),
508
508
  away_mode: () => new Switch().withState('away_mode', false, 'Enable/disable away mode', access.STATE_SET),
509
- away_preset_days: () => new Numeric('away_preset_days', access.STATE_SET).withDescription('Away preset days'),
510
- away_preset_temperature: () => new Numeric('away_preset_temperature', access.STATE_SET).withUnit('°C').withDescription('Away preset temperature'),
509
+ away_preset_days: () => new Numeric('away_preset_days', access.STATE_SET).withDescription('Away preset days').withValueMin(0).withValueMax(100),
510
+ away_preset_temperature: () => new Numeric('away_preset_temperature', access.STATE_SET).withUnit('°C').withDescription('Away preset temperature').withValueMin(-10).withValueMax(35),
511
511
  battery: () => new Numeric('battery', access.STATE).withUnit('%').withDescription('Remaining battery in %').withValueMin(0).withValueMax(100),
512
512
  battery_low: () => new Binary('battery_low', access.STATE, true, false).withDescription('Indicates if the battery of this device is almost empty'),
513
513
  battery_voltage: () => new Numeric('voltage', access.STATE).withUnit('mV').withDescription('Voltage of the battery in millivolts'),
@@ -516,7 +516,7 @@ module.exports = {
516
516
  carbon_monoxide: () => new Binary('carbon_monoxide', access.STATE, true, false).withDescription('Indicates if CO (carbon monoxide) is detected'),
517
517
  child_lock: () => new Lock().withState('child_lock', 'LOCK', 'UNLOCK', 'Enables/disables physical input on the device', access.STATE_SET),
518
518
  co2: () => new Numeric('co2', access.STATE).withUnit('ppm').withDescription('The measured CO2 (carbon dioxide) value'),
519
- comfort_temperature: () => new Numeric('comfort_temperature', access.STATE_SET).withUnit('°C').withDescription('Comfort temperature'),
519
+ comfort_temperature: () => new Numeric('comfort_temperature', access.STATE_SET).withUnit('°C').withDescription('Comfort temperature').withValueMin(-10).withValueMax(35),
520
520
  consumer_connected: () => new Binary('consumer_connected', access.STATE, true, false).withDescription('Indicates whether a plug is physically attached. Device does not have to pull power or even be connected electrically (state of this binary switch can be ON even if main power switch is OFF)'),
521
521
  contact: () => new Binary('contact', access.STATE, false, true).withDescription('Indicates if the contact is closed (= true) or open (= false)'),
522
522
  cover_position: () => new Cover().withPosition(),
@@ -527,11 +527,11 @@ module.exports = {
527
527
  current: () => new Numeric('current', access.STATE).withUnit('A').withDescription('Instantaneous measured electrical current'),
528
528
  current_phase_b: () => new Numeric('current_phase_b', access.STATE).withUnit('A').withDescription('Instantaneous measured electrical current on phase B'),
529
529
  current_phase_c: () => new Numeric('current_phase_c', access.STATE).withUnit('A').withDescription('Instantaneous measured electrical current on phase C'),
530
- deadzone_temperature: () => new Numeric('deadzone_temperature', access.STATE_SET).withUnit('°C').withDescription('The delta between local_temperature and current_heating_setpoint to trigger Heat. 1-5'),
530
+ deadzone_temperature: () => new Numeric('deadzone_temperature', access.STATE_SET).withUnit('°C').withDescription('The delta between local_temperature and current_heating_setpoint to trigger Heat').withValueMin(1).withValueMax(5),
531
531
  device_temperature: () => new Numeric('device_temperature', access.STATE).withUnit('°C').withDescription('Temperature of the device'),
532
532
  eco2: () => new Numeric('eco2', access.STATE).withUnit('ppm').withDescription('Measured eCO2 value'),
533
533
  eco_mode: () => new Binary('eco_mode', access.STATE_SET, 'ON', 'OFF').withDescription('ECO mode (energy saving mode)'),
534
- eco_temperature: () => new Numeric('eco_temperature', access.STATE_SET).withUnit('°C').withDescription('Eco temperature'),
534
+ eco_temperature: () => new Numeric('eco_temperature', access.STATE_SET).withUnit('°C').withDescription('Eco temperature').withValueMin(-10).withValueMax(35),
535
535
  effect: () => new Enum('effect', access.SET, ['blink', 'breathe', 'okay', 'channel_change', 'finish_effect', 'stop_effect']).withDescription('Triggers an effect on the light (e.g. make light blink for a few seconds)'),
536
536
  energy: () => new Numeric('energy', access.STATE).withUnit('kWh').withDescription('Sum of consumed energy'),
537
537
  fan: () => new Fan(),
@@ -539,7 +539,7 @@ module.exports = {
539
539
  formaldehyd: () => new Numeric('formaldehyd', access.STATE).withDescription('The measured formaldehyd value'),
540
540
  gas: () => new Binary('gas', access.STATE, true, false).withDescription('Indicates whether the device detected gas'),
541
541
  hcho: () => new Numeric('hcho', access.STATE).withUnit('mg/m³').withDescription('Measured Hcho value'),
542
- holiday_temperature: () => new Numeric('holiday_temperature', access.STATE_SET).withUnit('°C').withDescription('Holiday temperature'),
542
+ holiday_temperature: () => new Numeric('holiday_temperature', access.STATE_SET).withUnit('°C').withDescription('Holiday temperature').withValueMin(-10).withValueMax(35),
543
543
  humidity: () => new Numeric('humidity', access.STATE).withUnit('%').withDescription('Measured relative humidity'),
544
544
  illuminance: () => new Numeric('illuminance', access.STATE).withDescription('Raw measured illuminance'),
545
545
  illuminance_lux: () => new Numeric('illuminance_lux', access.STATE).withUnit('lx').withDescription('Measured illuminance in lux'),
@@ -557,12 +557,12 @@ module.exports = {
557
557
  linkquality: () => new Numeric('linkquality', access.STATE).withUnit('lqi').withDescription('Link quality (signal strength)').withValueMin(0).withValueMax(255),
558
558
  local_temperature: () => new Numeric('local_temperature', access.STATE_GET).withUnit('°C').withDescription('Current temperature measured on the device'),
559
559
  lock: () => new Lock().withState('state', 'LOCK', 'UNLOCK', 'State of the lock').withLockState('lock_state', 'Actual state of the lock'),
560
- max_temperature: () => new Numeric('max_temperature', access.STATE_SET).withUnit('°C').withDescription('Maximum temperature'),
561
- max_temperature_limit: () => new Numeric('max_temperature_limit', access.STATE_SET).withUnit('°C').withDescription('Maximum temperature limit'),
562
- min_temperature: () => new Numeric('min_temperature', access.STATE_SET).withUnit('°C').withDescription('Minimum temperature'),
560
+ max_temperature: () => new Numeric('max_temperature', access.STATE_SET).withUnit('°C').withDescription('Maximum temperature').withValueMin(-10).withValueMax(35),
561
+ max_temperature_limit: () => new Numeric('max_temperature_limit', access.STATE_SET).withUnit('°C').withDescription('Maximum temperature limit').withValueMin(-10).withValueMax(35),
562
+ min_temperature: () => new Numeric('min_temperature', access.STATE_SET).withUnit('°C').withDescription('Minimum temperature').withValueMin(-10).withValueMax(35),
563
563
  occupancy: () => new Binary('occupancy', access.STATE, true, false).withDescription('Indicates whether the device detected occupancy'),
564
564
  open_window: () => new Binary('open_window', access.STATE_SET, 'ON', 'OFF').withDescription('Enables/disables the status on the device'),
565
- open_window_temperature: () => new Numeric('open_window_temperature', access.STATE_SET).withUnit('°C').withDescription('Open window temperature'),
565
+ open_window_temperature: () => new Numeric('open_window_temperature', access.STATE_SET).withUnit('°C').withDescription('Open window temperature').withValueMin(-10).withValueMax(35),
566
566
  pm10: () => new Numeric('pm10', access.STATE).withUnit('µg/m³').withDescription('Measured PM10 (particulate matter) concentration'),
567
567
  pm25: () => new Numeric('pm25', access.STATE).withUnit('µg/m³').withDescription('Measured PM2.5 (particulate matter) concentration'),
568
568
  position: () => new Numeric('position', access.STATE).withUnit('%').withDescription('Position'),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.337",
3
+ "version": "14.0.338",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
@@ -471,14 +471,14 @@
471
471
  "dev": true
472
472
  },
473
473
  "@eslint/eslintrc": {
474
- "version": "1.0.4",
475
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz",
476
- "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==",
474
+ "version": "1.0.5",
475
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
476
+ "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
477
477
  "dev": true,
478
478
  "requires": {
479
479
  "ajv": "^6.12.4",
480
480
  "debug": "^4.3.2",
481
- "espree": "^9.0.0",
481
+ "espree": "^9.2.0",
482
482
  "globals": "^13.9.0",
483
483
  "ignore": "^4.0.6",
484
484
  "import-fresh": "^3.2.1",
@@ -488,12 +488,12 @@
488
488
  }
489
489
  },
490
490
  "@humanwhocodes/config-array": {
491
- "version": "0.6.0",
492
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz",
493
- "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==",
491
+ "version": "0.9.2",
492
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
493
+ "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
494
494
  "dev": true,
495
495
  "requires": {
496
- "@humanwhocodes/object-schema": "^1.2.0",
496
+ "@humanwhocodes/object-schema": "^1.2.1",
497
497
  "debug": "^4.1.1",
498
498
  "minimatch": "^3.0.4"
499
499
  }
@@ -1306,9 +1306,9 @@
1306
1306
  "dev": true
1307
1307
  },
1308
1308
  "caniuse-lite": {
1309
- "version": "1.0.30001283",
1310
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz",
1311
- "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==",
1309
+ "version": "1.0.30001284",
1310
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001284.tgz",
1311
+ "integrity": "sha512-t28SKa7g6kiIQi6NHeOcKrOrGMzCRrXvlasPwWC26TH2QNdglgzQIRUuJ0cR3NeQPH+5jpuveeeSFDLm2zbkEw==",
1312
1312
  "dev": true
1313
1313
  },
1314
1314
  "chalk": {
@@ -1540,9 +1540,9 @@
1540
1540
  }
1541
1541
  },
1542
1542
  "electron-to-chromium": {
1543
- "version": "1.4.7",
1544
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.7.tgz",
1545
- "integrity": "sha512-UPy2MsQw1OdcbxR7fvwWZH/rXcv+V26+uvQVHx0fGa1kqRfydtfOw+NMGAvZJ63hyaH4aEBxbhSEtqbpliSNWA==",
1543
+ "version": "1.4.11",
1544
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.11.tgz",
1545
+ "integrity": "sha512-2OhsaYgsWGhWjx2et8kaUcdktPbBGjKM2X0BReUCKcSCPttEY+hz2zie820JLbttU8jwL92+JJysWwkut3wZgA==",
1546
1546
  "dev": true
1547
1547
  },
1548
1548
  "emittery": {
@@ -1641,13 +1641,13 @@
1641
1641
  }
1642
1642
  },
1643
1643
  "eslint": {
1644
- "version": "8.3.0",
1645
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz",
1646
- "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==",
1644
+ "version": "8.4.0",
1645
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.0.tgz",
1646
+ "integrity": "sha512-kv0XQcAQJL/VD9THQKhTQZVqkJKA+tIj/v2ZKNaIHRAADcJWFb+B/BAewUYuF6UVg1s2xC5qXVoDk0G8sKGeTA==",
1647
1647
  "dev": true,
1648
1648
  "requires": {
1649
- "@eslint/eslintrc": "^1.0.4",
1650
- "@humanwhocodes/config-array": "^0.6.0",
1649
+ "@eslint/eslintrc": "^1.0.5",
1650
+ "@humanwhocodes/config-array": "^0.9.2",
1651
1651
  "ajv": "^6.10.0",
1652
1652
  "chalk": "^4.0.0",
1653
1653
  "cross-spawn": "^7.0.2",
@@ -1658,7 +1658,7 @@
1658
1658
  "eslint-scope": "^7.1.0",
1659
1659
  "eslint-utils": "^3.0.0",
1660
1660
  "eslint-visitor-keys": "^3.1.0",
1661
- "espree": "^9.1.0",
1661
+ "espree": "^9.2.0",
1662
1662
  "esquery": "^1.4.0",
1663
1663
  "esutils": "^2.0.2",
1664
1664
  "fast-deep-equal": "^3.1.3",
@@ -1735,9 +1735,9 @@
1735
1735
  "dev": true
1736
1736
  },
1737
1737
  "espree": {
1738
- "version": "9.1.0",
1739
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz",
1740
- "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==",
1738
+ "version": "9.2.0",
1739
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz",
1740
+ "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==",
1741
1741
  "dev": true,
1742
1742
  "requires": {
1743
1743
  "acorn": "^8.6.0",
@@ -2292,9 +2292,9 @@
2292
2292
  }
2293
2293
  },
2294
2294
  "istanbul-reports": {
2295
- "version": "3.1.0",
2296
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.0.tgz",
2297
- "integrity": "sha512-rgeP8yMlXeH4mfd9K/sQXZv1lvcS7xo379zntcotPDdMwkcGYwMxGHGZYo0/+YW5B/nor2YGKz2BH5ume405ow==",
2295
+ "version": "3.1.1",
2296
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz",
2297
+ "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==",
2298
2298
  "dev": true,
2299
2299
  "requires": {
2300
2300
  "html-escaper": "^2.0.0",
@@ -3843,9 +3843,9 @@
3843
3843
  "dev": true
3844
3844
  },
3845
3845
  "zigbee-herdsman": {
3846
- "version": "0.13.176",
3847
- "resolved": "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.13.176.tgz",
3848
- "integrity": "sha512-gDRj4AEMzE6wmyCR38a06F1hjks7wFUVEqRACZ6c5+8nhHLfR+C06c4nUjN61L9mCDx8pVIV1kuac6mlLbhjkQ==",
3846
+ "version": "0.13.177",
3847
+ "resolved": "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.13.177.tgz",
3848
+ "integrity": "sha512-pefcK2eaGL2LoeOkhrb4ZMErCe2ic1cUkCA6cfdxWs1t8XIWpZixWtGmV0dAUck0tjLfiEvs2M/zNEhWTWfrzw==",
3849
3849
  "requires": {
3850
3850
  "debounce": "^1.2.1",
3851
3851
  "debug": "^4.3.3",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.337",
3
+ "version": "14.0.338",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -38,7 +38,7 @@
38
38
  "buffer-crc32": "^0.2.13",
39
39
  "https-proxy-agent": "^5.0.0",
40
40
  "tar-stream": "^2.2.0",
41
- "zigbee-herdsman": "^0.13.176"
41
+ "zigbee-herdsman": "^0.13.177"
42
42
  },
43
43
  "devDependencies": {
44
44
  "eslint": "*",