zigbee-herdsman-converters 14.0.461 → 14.0.462

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.
@@ -5691,6 +5691,24 @@ const converters = {
5691
5691
  return {position};
5692
5692
  },
5693
5693
  },
5694
+ xiaomi_curtain_position_tilt: {
5695
+ cluster: 'closuresWindowCovering',
5696
+ type: ['attributeReport', 'readResponse'],
5697
+ options: [exposes.options.invert_cover()],
5698
+ convert: (model, msg, publish, options, meta) => {
5699
+ const result = {};
5700
+ const invert = model.meta && model.meta.coverInverted ? !options.invert_cover : options.invert_cover;
5701
+ if (msg.data.hasOwnProperty('currentPositionLiftPercentage') && msg.data['currentPositionLiftPercentage'] <= 100) {
5702
+ const value = msg.data['currentPositionLiftPercentage'];
5703
+ result[postfixWithEndpointName('position', msg, model)] = invert ? 100 - value : value;
5704
+ }
5705
+ if (msg.data.hasOwnProperty('currentPositionTiltPercentage') && msg.data['currentPositionTiltPercentage'] <= 100) {
5706
+ const value = msg.data['currentPositionTiltPercentage'];
5707
+ result[postfixWithEndpointName('tilt', msg, model)] = invert ? 100 - value : value;
5708
+ }
5709
+ return result;
5710
+ },
5711
+ },
5694
5712
  xiaomi_curtain_acn002_position: {
5695
5713
  cluster: 'genAnalogOutput',
5696
5714
  type: ['attributeReport', 'readResponse'],
@@ -2438,9 +2438,6 @@ const converters = {
2438
2438
  } else {
2439
2439
  await entity.command('closuresWindowCovering', 'stop', {}, utils.getOptions(meta.mapped, entity));
2440
2440
  }
2441
-
2442
- // Xiaomi curtain does not send position update on stop, request this.
2443
- await entity.read('genAnalogOutput', [0x0055]);
2444
2441
  } else {
2445
2442
  const lookup = {'open': 100, 'close': 0, 'on': 100, 'off': 0};
2446
2443
 
package/devices/awox.js CHANGED
@@ -183,7 +183,7 @@ module.exports = [
183
183
  model: '33943/33944/33946',
184
184
  vendor: 'AwoX',
185
185
  description: 'LED RGB & brightness',
186
- extend: extend.light_onoff_brightness_colortemp_color(),
186
+ extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370], supportsHS: true}),
187
187
  },
188
188
  {
189
189
  fingerprint: [
@@ -2,8 +2,20 @@ const reporting = require('../lib/reporting');
2
2
  const extend = require('../lib/extend');
3
3
  const exposes = require('../lib/exposes');
4
4
  const e = exposes.presets;
5
+ const fz = require('../converters/fromZigbee');
5
6
 
6
7
  module.exports = [
8
+ {
9
+ zigbeeModel: ['ZGR904-S'],
10
+ model: 'ZGR904-S',
11
+ vendor: 'Envilar',
12
+ description: 'Envilar touchlink remote',
13
+ meta: {battery: {dontDividePercentage: true}},
14
+ fromZigbee: [fz.command_recall, fz.command_on, fz.command_off, fz.command_move, fz.command_stop, fz.battery],
15
+ toZigbee: [],
16
+ exposes: [e.battery(),
17
+ e.action(['recall_1', 'recall_2', 'on', 'off', 'brightness_stop', 'brightness_move_up', 'brightness_move_down'])],
18
+ },
7
19
  {
8
20
  zigbeeModel: ['ZG102-BOX-UNIDIM'],
9
21
  model: 'ZG102-BOX-UNIDIM',
package/devices/evn.js CHANGED
@@ -1,26 +1,31 @@
1
1
  const exposes = require('../lib/exposes');
2
+ const extend = require('../lib/extend');
2
3
  const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/legacy').fromZigbee};
3
- const reporting = require('../lib/reporting');
4
4
  const e = exposes.presets;
5
5
 
6
6
  module.exports = [
7
7
  {
8
- zigbeeModel: ['EVN ZBHS4RGBW'],
8
+ zigbeeModel: ['ZBHS4RGBW'],
9
9
  model: 'ZBHS4RGBW',
10
10
  vendor: 'EVN',
11
11
  description: 'Zigbee 4 channel RGBW remote control',
12
- fromZigbee: [fz.battery, fz.command_on, fz.command_off, fz.command_step, fz.command_move, fz.command_stop, fz.command_recall,
13
- fz.command_move_hue, fz.command_move_to_color, fz.command_move_to_color_temp],
14
- exposes: [e.battery(), e.action(['on', 'off', 'brightness_step_up', 'brightness_step_down', 'brightness_move_up',
15
- 'brightness_move_down', 'brightness_stop', 'recall_1', 'recall_2', 'recall_3', 'hue_move', 'color_temperature_move',
16
- 'color_move', 'hue_stop'])],
12
+ fromZigbee: [fz.battery, fz.command_move_to_color, fz.command_move_to_color_temp, fz.command_move_hue,
13
+ fz.command_step, fz.command_stop, fz.command_move, fz.command_recall, fz.command_on, fz.command_off],
14
+ exposes: [e.battery(), e.action([
15
+ 'color_move', 'color_temperature_move', 'brightness_step_up', 'brightness_step_down',
16
+ 'brightness_move_up', 'brightness_move_down', 'brightness_stop',
17
+ 'hue_move', 'hue_stop', 'recall_*', 'on', 'off'])],
17
18
  toZigbee: [],
18
19
  meta: {multiEndpoint: true, battery: {dontDividePercentage: true}},
19
- configure: async (device, coordinatorEndpoint) => {
20
- const endpoint = device.getEndpoint(1);
21
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genPowerCfg']);
22
- await reporting.batteryVoltage(endpoint);
23
- await reporting.batteryPercentageRemaining(endpoint);
20
+ endpoint: (device) => {
21
+ return {ep1: 1, ep2: 2, ep3: 3, ep4: 4};
24
22
  },
25
23
  },
24
+ {
25
+ zigbeeModel: ['ZB24100VS'],
26
+ model: 'ZB24100VS',
27
+ vendor: 'EVN',
28
+ description: 'Zigbee multicolor controller with power supply',
29
+ extend: extend.light_onoff_brightness_colortemp_color({supportsHS: true, colorTempRange: [160, 450]}),
30
+ },
26
31
  ];
package/devices/lidl.js CHANGED
@@ -378,6 +378,15 @@ module.exports = [
378
378
  await reporting.onOff(endpoint);
379
379
  },
380
380
  },
381
+ {
382
+ fingerprint: [{modelID: 'TS004F', manufacturerName: '_TZ3000_rco1yzb1'}],
383
+ model: 'HG08164',
384
+ vendor: 'Lidl',
385
+ description: 'Silvercrest smart button',
386
+ fromZigbee: [fz.command_on, fz.command_off, fz.command_step, fz.command_stop, fz.battery],
387
+ toZigbee: [],
388
+ exposes: [e.action(['on', 'off', 'brightness_stop', 'brightness_step_up', 'brightness_step_down']), e.battery()],
389
+ },
381
390
  {
382
391
  fingerprint: [{modelID: 'TS0211', manufacturerName: '_TZ1800_ladpngdx'}],
383
392
  model: 'HG06668',
package/devices/xiaomi.js CHANGED
@@ -1236,7 +1236,7 @@ module.exports = [
1236
1236
  model: 'ZNCLDJ11LM',
1237
1237
  description: 'Aqara curtain motor',
1238
1238
  vendor: 'Xiaomi',
1239
- fromZigbee: [fz.xiaomi_basic, fz.xiaomi_curtain_position, fz.cover_position_tilt],
1239
+ fromZigbee: [fz.xiaomi_basic, fz.xiaomi_curtain_position, fz.xiaomi_curtain_position_tilt],
1240
1240
  toZigbee: [tz.xiaomi_curtain_position_state, tz.xiaomi_curtain_options],
1241
1241
  exposes: [e.cover_position().setAccess('state', ea.ALL),
1242
1242
  exposes.binary('running', ea.STATE, true, false)
@@ -1250,7 +1250,7 @@ module.exports = [
1250
1250
  model: 'SRSC-M01',
1251
1251
  description: 'Aqara roller shade motor',
1252
1252
  vendor: 'Xiaomi',
1253
- fromZigbee: [fz.xiaomi_basic, fz.xiaomi_curtain_position, fz.cover_position_tilt],
1253
+ fromZigbee: [fz.xiaomi_basic, fz.xiaomi_curtain_position, fz.xiaomi_curtain_position_tilt],
1254
1254
  toZigbee: [tz.xiaomi_curtain_position_state, tz.xiaomi_curtain_options],
1255
1255
  exposes: [e.cover_position().setAccess('state', ea.ALL),
1256
1256
  exposes.binary('running', ea.STATE, true, false)
@@ -1262,7 +1262,7 @@ module.exports = [
1262
1262
  model: 'ZNCLDJ12LM',
1263
1263
  vendor: 'Xiaomi',
1264
1264
  description: 'Aqara B1 curtain motor',
1265
- fromZigbee: [fz.xiaomi_basic, fz.xiaomi_curtain_position, fz.battery, fz.cover_position_tilt],
1265
+ fromZigbee: [fz.xiaomi_basic, fz.xiaomi_curtain_position, fz.battery, fz.xiaomi_curtain_position_tilt],
1266
1266
  toZigbee: [tz.xiaomi_curtain_position_state, tz.xiaomi_curtain_options],
1267
1267
  onEvent: async (type, data, device) => {
1268
1268
  // The position (genAnalogOutput.presentValue) reported via an attribute contains an invaid value
@@ -1286,8 +1286,8 @@ module.exports = [
1286
1286
  model: 'ZNJLBL01LM',
1287
1287
  description: 'Aqara roller shade companion E1',
1288
1288
  vendor: 'Xiaomi',
1289
- fromZigbee: [fz.xiaomi_curtain_acn002_position, fz.xiaomi_curtain_acn002_status, fz.cover_position_tilt, fz.ignore_basic_report,
1290
- fz.aqara_opple],
1289
+ fromZigbee: [fz.xiaomi_curtain_acn002_position, fz.xiaomi_curtain_acn002_status, fz.xiaomi_curtain_position_tilt,
1290
+ fz.ignore_basic_report, fz.aqara_opple],
1291
1291
  toZigbee: [tz.xiaomi_curtain_position_state, tz.xiaomi_curtain_acn002_battery, tz.xiaomi_curtain_acn002_charging_status],
1292
1292
  exposes: [e.cover_position().setAccess('state', ea.ALL), e.battery().withAccess(ea.STATE_GET),
1293
1293
  exposes.binary('charging_status', ea.STATE_GET, true, false)
package/lib/tuya.js CHANGED
@@ -164,7 +164,7 @@ function convertStringToHexArray(value) {
164
164
  // Default is 100 = open, 0 = closed; Devices listed here will use 0 = open, 100 = closed instead
165
165
  // Use manufacturerName to identify device!
166
166
  // Dont' invert _TZE200_cowvfni3: https://github.com/Koenkk/zigbee2mqtt/issues/6043
167
- const coverPositionInvert = ['_TZE200_wmcdj3aq', '_TZE200_nogaemzt', '_TZE200_xuzcvlku', '_TZE200_xaabybja'];
167
+ const coverPositionInvert = ['_TZE200_wmcdj3aq', '_TZE200_nogaemzt', '_TZE200_xuzcvlku', '_TZE200_xaabybja', '_TZE200_rmymn92d'];
168
168
 
169
169
  // Gets a boolean indicating whether the cover by this manufacturerName needs reversed positions
170
170
  function isCoverInverted(manufacturerName) {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.461",
3
+ "version": "14.0.462",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "zigbee-herdsman-converters",
9
- "version": "14.0.461",
9
+ "version": "14.0.462",
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.461",
3
+ "version": "14.0.462",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [