zigbee-herdsman-converters 14.0.619 → 14.0.622

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.
@@ -46,6 +46,19 @@ module.exports = [
46
46
  await reporting.onOff(endpoint);
47
47
  },
48
48
  },
49
+ {
50
+ zigbeeModel: ['43113'],
51
+ model: '43113',
52
+ vendor: 'Enbrighten',
53
+ description: 'Zigbee in-wall smart dimmer',
54
+ extend: extend.light_onoff_brightness({noConfigure: true}),
55
+ configure: async (device, coordinatorEndpoint, logger) => {
56
+ await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
57
+ const endpoint = device.getEndpoint(1);
58
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
59
+ await reporting.onOff(endpoint);
60
+ },
61
+ },
49
62
  {
50
63
  zigbeeModel: ['43102'],
51
64
  model: '43102',
package/devices/gewiss.js CHANGED
@@ -37,6 +37,7 @@ module.exports = [
37
37
  vendor: 'Gewiss',
38
38
  fromZigbee: [fz.cover_position_tilt, fz.ignore_basic_report],
39
39
  toZigbee: [tz.cover_state, tz.cover_position_tilt],
40
+ meta: {coverInverted: true},
40
41
  configure: async (device, coordinatorEndpoint, logger) => {
41
42
  const endpoint = device.getEndpoint(1);
42
43
  await reporting.bind(endpoint, coordinatorEndpoint, ['closuresWindowCovering']);
package/devices/ikea.js CHANGED
@@ -871,6 +871,13 @@ module.exports = [
871
871
  description: 'TRADFRI LED bulb E12/E14 WW clear 250 lumen, dimmable',
872
872
  extend: tradfriExtend.light_onoff_brightness(),
873
873
  },
874
+ {
875
+ zigbeeModel: ['TRADFRIbulbE12WWcandleclear250lm'],
876
+ model: 'LED2009C3',
877
+ vendor: 'IKEA',
878
+ description: 'TRADFRI LED bulb E12 WW candle clear 250 lumen, dimmable',
879
+ extend: tradfriExtend.light_onoff_brightness(),
880
+ },
874
881
  {
875
882
  zigbeeModel: ['TRADFRIbulbGU10WS345lm', 'TRADFRI bulb GU10 WW 345lm', 'TRADFRIbulbGU10WS380lm'],
876
883
  model: 'LED2005R5',
package/devices/owon.js CHANGED
@@ -233,19 +233,22 @@ module.exports = [
233
233
  vendor: 'OWON',
234
234
  description: 'HVAC fan coil',
235
235
  fromZigbee: [fz.fan, fz.thermostat, fz.humidity, fz.occupancy, fz.legacy.hvac_user_interface],
236
- toZigbee: [tz.fan_mode, tz.thermostat_system_mode,
236
+ toZigbee: [tz.fan_mode,
237
237
  tz.thermostat_occupied_heating_setpoint, tz.thermostat_unoccupied_heating_setpoint,
238
238
  tz.thermostat_occupied_cooling_setpoint, tz.thermostat_unoccupied_cooling_setpoint,
239
239
  tz.thermostat_min_heat_setpoint_limit, tz.thermostat_max_heat_setpoint_limit,
240
240
  tz.thermostat_min_cool_setpoint_limit, tz.thermostat_max_cool_setpoint_limit,
241
- tz.thermostat_local_temperature, tz.thermostat_running_state,
242
- tz.thermostat_keypad_lockout],
241
+ tz.thermostat_local_temperature,
242
+ tz.thermostat_keypad_lockout,
243
+ tz.thermostat_system_mode, tz.thermostat_running_mode, tz.thermostat_running_state, tz.thermostat_programming_operation_mode],
243
244
  exposes: [e.humidity(), e.occupancy(),
244
- exposes.climate().withSystemMode(['off', 'heat', 'cool', 'fan_only']).withRunningState(['idle', 'heat', 'cool', 'fan_only'])
245
+ exposes.climate().withSystemMode(['off', 'heat', 'cool', 'fan_only', 'sleep']).withLocalTemperature()
246
+ .withRunningMode(['off', 'heat', 'cool'])
247
+ .withRunningState(['idle', 'heat', 'cool', 'fan_only'])
245
248
  .withSetpoint('occupied_heating_setpoint', 5, 30, 0.5).withSetpoint('unoccupied_heating_setpoint', 5, 30, 0.5)
246
- .withSetpoint('occupied_cooling_setpoint', 7, 35, 0.5).withSetpoint('unoccupied_cooling_setpoint', 7, 35, 0.5)
247
- .withLocalTemperature(),
248
- e.fan().withModes(['low', 'medium', 'high', 'on', 'auto']), e.keypad_lockout(),
249
+ .withSetpoint('occupied_cooling_setpoint', 7, 35, 0.5).withSetpoint('unoccupied_cooling_setpoint', 7, 35, 0.5),
250
+ e.fan().withModes(['low', 'medium', 'high', 'on', 'auto']),
251
+ e.programming_operation_mode(['setpoint', 'eco']), e.keypad_lockout(),
249
252
  e.max_heat_setpoint_limit(5, 30, 0.5), e.min_heat_setpoint_limit(5, 30, 0.5),
250
253
  e.max_cool_setpoint_limit(7, 35, 0.5), e.min_cool_setpoint_limit(7, 35, 0.5)],
251
254
  configure: async (device, coordinatorEndpoint, logger) => {
@@ -261,12 +264,14 @@ module.exports = [
261
264
  await reporting.thermostatUnoccupiedCoolingSetpoint(endpoint);
262
265
  await reporting.thermostatTemperature(endpoint, {min: 60, max: 600, change: 0.1});
263
266
  await reporting.thermostatSystemMode(endpoint);
267
+ await reporting.thermostatRunningMode(endpoint);
268
+ await reporting.thermostatRunningState(endpoint);
264
269
  await reporting.humidity(endpoint, {min: 60, max: 600, change: 1});
265
270
  await reporting.thermostatKeypadLockMode(endpoint);
266
271
 
267
- await endpoint.read('hvacThermostat', ['systemMode', 'runningState', 'occupiedHeatingSetpoint', 'unoccupiedHeatingSetpoint',
268
- 'occupiedCoolingSetpoint', 'unoccupiedCoolingSetpoint', 'localTemp'],
269
- 'minHeatSetpointLimit', 'maxHeatSetpointLimit', 'minCoolSetpointLimit', 'maxCoolSetpointLimit');
272
+ await endpoint.read('hvacThermostat', ['systemMode', 'runningMode', 'runningState',
273
+ 'occupiedHeatingSetpoint', 'unoccupiedHeatingSetpoint',
274
+ 'occupiedCoolingSetpoint', 'unoccupiedCoolingSetpoint', 'localTemp']);
270
275
  await endpoint.read('msRelativeHumidity', ['measuredValue']);
271
276
 
272
277
  const endpoint2 = device.getEndpoint(2);
package/devices/siglis.js CHANGED
@@ -146,9 +146,9 @@ module.exports = [
146
146
  e.light_brightness().withEndpoint('l3'),
147
147
  e.light_brightness().withEndpoint('l4'),
148
148
  e.light_brightness().withEndpoint('l5'),
149
- exposes.cover().withState('state', exposes.access.STATE_SET | exposes.access.STATE_GET)
149
+ exposes.cover().setAccess('state', exposes.access.STATE_SET | exposes.access.STATE_GET)
150
150
  .withPosition().withTilt().withEndpoint('l6'),
151
- exposes.cover().withState('state', exposes.access.STATE_SET | exposes.access.STATE_GET)
151
+ exposes.cover().setAccess('state', exposes.access.STATE_SET | exposes.access.STATE_GET)
152
152
  .withPosition().withTilt().withEndpoint('l7'),
153
153
  e.action([
154
154
  'button_1_single', 'button_1_double', 'button_1_hold', 'button_1_release',
package/devices/tuya.js CHANGED
@@ -1296,6 +1296,7 @@ module.exports = [
1296
1296
  {
1297
1297
  fingerprint: [{modelID: 'TS0215A', manufacturerName: '_TZ3000_4fsgukof'},
1298
1298
  {modelID: 'TS0215A', manufacturerName: '_TZ3000_wr2ucaj9'},
1299
+ {modelID: 'TS0215A', manufacturerName: '_TZ3000_zsh6uat3'},
1299
1300
  {modelID: 'TS0215A', manufacturerName: '_TZ3000_tj4pwzzm'}],
1300
1301
  model: 'TS0215A_sos',
1301
1302
  vendor: 'TuYa',
@@ -1371,11 +1372,15 @@ module.exports = [
1371
1372
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_qamcypen'},
1372
1373
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_zdrhqmo0'},
1373
1374
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_2cjfbpy0'},
1375
+ {modelID: 'TS0502B', manufacturerName: '_TZ3000_bujv0r9b'},
1374
1376
  ],
1375
1377
  model: 'TS0502B',
1376
1378
  vendor: 'TuYa',
1377
1379
  description: 'Light controller',
1378
- whiteLabel: [{vendor: 'Mercator Ikuü', model: 'SMI7040', description: 'Ford Batten Light'}],
1380
+ whiteLabel: [
1381
+ {vendor: 'Mercator Ikuü', model: 'SMI7040', description: 'Ford Batten Light'},
1382
+ {vendor: 'Mercator Ikuü', model: 'SMD9300', description: 'Donovan Panel Light'},
1383
+ ],
1379
1384
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 500]}),
1380
1385
  },
1381
1386
  {
@@ -3,7 +3,7 @@ const reporting = require('../lib/reporting');
3
3
 
4
4
  module.exports = [
5
5
  {
6
- zigbeeModel: ['Z111PL0H-1JX'],
6
+ zigbeeModel: ['Z111PL0H-1JX', 'SA-029-1'],
7
7
  model: 'SA-029',
8
8
  vendor: 'Woolley',
9
9
  description: 'Smart Plug',
package/devices/ynoa.js CHANGED
@@ -1,5 +1,6 @@
1
1
  const exposes = require('../lib/exposes');
2
- const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/legacy').fromZigbee};
2
+ const fz = require('../converters/fromZigbee');
3
+ const tz = require('../converters/toZigbee');
3
4
  const reporting = require('../lib/reporting');
4
5
  const e = exposes.presets;
5
6
  const extend = require('..//lib/extend');
@@ -42,4 +43,19 @@ module.exports = [
42
43
  await reporting.batteryPercentageRemaining(endpoint);
43
44
  },
44
45
  },
46
+ {
47
+ zigbeeModel: ['ZBT-ONOFFPlug-D0009'],
48
+ model: 'LA-PLUG-10Amp',
49
+ vendor: 'Ynoa',
50
+ description: 'Smart plug Zigbee 3.0',
51
+ fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering],
52
+ toZigbee: [tz.on_off],
53
+ exposes: [e.switch(), e.power()],
54
+ configure: async (device, coordinatorEndpoint, logger) => {
55
+ const endpoint = device.getEndpoint(1);
56
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering']);
57
+ await reporting.onOff(endpoint);
58
+ await reporting.activePower(endpoint);
59
+ },
60
+ },
45
61
  ];
package/lib/exposes.js CHANGED
@@ -327,6 +327,7 @@ class Cover extends Base {
327
327
  super();
328
328
  this.type = 'cover';
329
329
  this.features = [];
330
+ this.features.push(new Enum('state', a.STATE_SET, ['OPEN', 'CLOSE', 'STOP']));
330
331
  }
331
332
 
332
333
  withPosition() {
@@ -340,12 +341,6 @@ class Cover extends Base {
340
341
  this.features.push(new Numeric('tilt', access.ALL).withValueMin(0).withValueMax(100).withDescription('Tilt of this cover'));
341
342
  return this;
342
343
  }
343
-
344
- withState(property='state', access=a.STATE_SET, values=['OPEN', 'CLOSE', 'STOP']) {
345
- assert(!this.endpoint, 'Cannot add feature after adding endpoint');
346
- this.features.push(new Enum(property, access, values));
347
- return this;
348
- }
349
344
  }
350
345
 
351
346
  class Fan extends Base {
@@ -545,9 +540,9 @@ module.exports = {
545
540
  comfort_temperature: () => new Numeric('comfort_temperature', access.STATE_SET).withUnit('°C').withDescription('Comfort temperature').withValueMin(0).withValueMax(30),
546
541
  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)'),
547
542
  contact: () => new Binary('contact', access.STATE, false, true).withDescription('Indicates if the contact is closed (= true) or open (= false)'),
548
- cover_position: () => new Cover().withState().withPosition(),
549
- cover_position_tilt: () => new Cover().withState().withPosition().withTilt(),
550
- cover_tilt: () => new Cover().withState().withTilt(),
543
+ cover_position: () => new Cover().withPosition(),
544
+ cover_position_tilt: () => new Cover().withPosition().withTilt(),
545
+ cover_tilt: () => new Cover().withTilt(),
551
546
  cpu_temperature: () => new Numeric('cpu_temperature', access.STATE).withUnit('°C').withDescription('Temperature of the CPU'),
552
547
  cube_side: (name) => new Numeric(name, access.STATE).withDescription('Side of the cube').withValueMin(0).withValueMax(6).withValueStep(1),
553
548
  current: () => new Numeric('current', access.STATE).withUnit('A').withDescription('Instantaneous measured electrical current'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.619",
3
+ "version": "14.0.622",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [