zigbee-herdsman-converters 15.0.87 → 15.0.89

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.
package/devices/awox.js CHANGED
@@ -70,6 +70,7 @@ module.exports = [
70
70
  whiteLabel: [{vendor: 'EGLO', model: '12229'}],
71
71
  },
72
72
  {
73
+ zigbeeModel: ['ERCU_Zm'],
73
74
  fingerprint: [
74
75
  {
75
76
  type: 'EndDevice', manufacturerName: 'AwoX', modelID: 'TLSR82xx', powerSource: 'Battery', endpoints: [
@@ -342,6 +342,7 @@ module.exports = [
342
342
  ota: ota.zigbeeOTA,
343
343
  description: 'Zigbee GU10 LED lamp',
344
344
  extend: gledoptoExtend.light_onoff_brightness_colortemp_color({colorTempRange: [158, 495]}),
345
+ meta: {turnsOffAtBrightness1: true},
345
346
  },
346
347
  {
347
348
  zigbeeModel: ['GL-MC-001P'],
@@ -392,6 +393,7 @@ module.exports = [
392
393
  ota: ota.zigbeeOTA,
393
394
  description: 'Zigbee 4W MR16 Bulb RGB+CCT (pro)',
394
395
  extend: gledoptoExtend.light_onoff_brightness_colortemp_color(),
396
+ meta: {turnsOffAtBrightness1: true},
395
397
  },
396
398
  {
397
399
  zigbeeModel: ['GL-S-007Z', 'GL-S-007Z(lk)'],
@@ -604,6 +606,7 @@ module.exports = [
604
606
  vendor: 'Gledopto',
605
607
  description: 'Zigbee 7W E26/E27 Bulb RGB+CCT (pro)',
606
608
  extend: gledoptoExtend.light_onoff_brightness_colortemp({colorTempRange: [155, 495]}),
609
+ meta: {turnsOffAtBrightness1: true},
607
610
  },
608
611
  {
609
612
  zigbeeModel: ['GL-FL-004TZS'],
package/devices/ikea.js CHANGED
@@ -1115,6 +1115,7 @@ module.exports = [
1115
1115
  description: 'Vindstyrka air quality and humidity sensor',
1116
1116
  fromZigbee: [fz.temperature, fz.humidity, fz.pm25, ikea.fz.ikea_voc_index],
1117
1117
  toZigbee: [],
1118
+ ota: ota.zigbeeOTA,
1118
1119
  exposes: [e.temperature(), e.humidity(), e.pm25(), e.voc_index().withDescription('Sensirion VOC index')],
1119
1120
  configure: async (device, coordinatorEndpoint, logger) => {
1120
1121
  const ep = device.getEndpoint(1);
@@ -277,11 +277,20 @@ const ATTRIBUTES = {
277
277
  ID: 22,
278
278
  dataType: UINT8,
279
279
  displayType: 'enum',
280
- values: {'Single Pole': 0, '3-Way Dumb Switch': 1, '3-Way Aux Switch': 2},
280
+ values: {'Single Pole': 0, '3-Way Dumb Switch': 1, '3-Way Aux Switch': 2, 'Single-Pole Full Sine Wave': 3},
281
281
  min: 0,
282
- max: 2,
282
+ max: 3,
283
283
  description: 'Set the switch configuration.',
284
284
  },
285
+ higherOutputInNonNeutral: {
286
+ ID: 25,
287
+ dataType: BOOLEAN,
288
+ displayType: 'enum',
289
+ values: {'Disabled (default)': 0, 'Enabled': 1},
290
+ min: 0,
291
+ max: 1,
292
+ description: 'Increase level in non-neutral mode',
293
+ },
285
294
  buttonDelay: {
286
295
  ID: 50,
287
296
  dataType: UINT8,
@@ -312,6 +321,34 @@ const ATTRIBUTES = {
312
321
  description:
313
322
  'For use with Smart Bulbs that need constant power and are controlled via commands rather than power.',
314
323
  },
324
+ doubleTapUpToParam55: {
325
+ ID: 53,
326
+ dataType: BOOLEAN,
327
+ displayType: 'enum',
328
+ values: {'Disabled': 0, 'Enabled': 1},
329
+ description: 'Enable or Disable setting brightness to parameter 55 on double-tap UP.',
330
+ },
331
+ doubleTapDownToParam56: {
332
+ ID: 54,
333
+ dataType: BOOLEAN,
334
+ displayType: 'enum',
335
+ values: {'Disabled': 0, 'Enabled': 1},
336
+ description: 'Enable or Disable setting brightness to parameter 56 on double-tap DOWN.',
337
+ },
338
+ brightnessLevelForDoubleTapUp: {
339
+ ID: 55,
340
+ dataType: UINT8,
341
+ min: 2,
342
+ max: 254,
343
+ description: 'Set this level on double-tap UP (if enabled by P53).',
344
+ },
345
+ brightnessLevelForDoubleTapDown: {
346
+ ID: 56,
347
+ dataType: UINT8,
348
+ min: 0,
349
+ max: 254,
350
+ description: 'Set this level on double-tap DOWN (if enabled by P54).',
351
+ },
315
352
  ledColorWhenOn: {
316
353
  ID: 95,
317
354
  dataType: UINT8,
@@ -362,6 +399,27 @@ const ATTRIBUTES = {
362
399
  max: 100,
363
400
  description: 'Set the intensity of the LED Indicator when the load is off.',
364
401
  },
402
+ ledBarScaling: {
403
+ ID: 100,
404
+ dataType: BOOLEAN,
405
+ displayType: 'enum',
406
+ values: {'Gen3 method (VZM-style)': 0, 'Gen2 method (LZW-style)': 1},
407
+ description: 'Method used for scaling.',
408
+ },
409
+ auxSwitchUniqueScenes: {
410
+ ID: 123,
411
+ dataType: BOOLEAN,
412
+ displayType: 'enum',
413
+ values: {'Disabled': 0, 'Enabled': 1},
414
+ description: 'Have unique scene numbers for scenes activated with the aux switch.',
415
+ },
416
+ bindingOffToOnSyncLevel: {
417
+ ID: 125,
418
+ dataType: BOOLEAN,
419
+ displayType: 'enum',
420
+ values: {'Disabled': 0, 'Enabled': 1},
421
+ description: 'Send Move_To_Level using Default Level with Off/On to bound devices.',
422
+ },
365
423
  localProtection: {
366
424
  ID: 256,
367
425
  dataType: BOOLEAN,
@@ -627,18 +685,6 @@ const ATTRIBUTES = {
627
685
  description:
628
686
  'Intesity of LED strip when off. 101 = Syncronized with default all LED strip intensity parameter.',
629
687
  },
630
- doubleTapUpForFullBrightness: {
631
- ID: 53,
632
- dataType: BOOLEAN,
633
- min: 0,
634
- max: 1,
635
- description: 'Result of a double tap on the up button.',
636
- values: {
637
- 'Button Press Event Only': 0,
638
- 'Button Press Event + Set Load to 100%': 1,
639
- },
640
- displayType: 'enum',
641
- },
642
688
  relayClick: {
643
689
  ID: 261,
644
690
  dataType: BOOLEAN,
@@ -173,7 +173,7 @@ module.exports = [
173
173
  vendor: 'Lonsonho',
174
174
  description: 'Zigbee 3.0 LED-bulb, RGBW LED',
175
175
  extend: extend.light_onoff_brightness_colortemp_color(
176
- {disableColorTempStartup: true, colorTempRange: [153, 500], disableEffect: true}),
176
+ {disableColorTempStartup: true, colorTempRange: [153, 500], disableEffect: true, disablePowerOnBehavior: true}),
177
177
  },
178
178
  {
179
179
  fingerprint: [{modelID: 'TS0003', manufacturerName: '_TYZB01_zsl6z0pw'}, {modelID: 'TS0003', manufacturerName: '_TYZB01_uqkphoed'}],
package/devices/niko.js CHANGED
@@ -311,4 +311,35 @@ module.exports = [
311
311
  },
312
312
  exposes: [e.cover_position()],
313
313
  },
314
+ {
315
+ zigbeeModel: ['Battery switch, 4 button'],
316
+ model: '552-720X4',
317
+ vendor: 'Niko',
318
+ description: 'Battery switch with 4 buttons',
319
+ meta: {multiEndpoint: true},
320
+ fromZigbee: [fz.command_on, fz.command_off, fz.identify, fz.battery, fz.command_move, fz.command_stop],
321
+ toZigbee: [],
322
+ endpoint: (device) => {
323
+ return {top_left: 1, bottom_left: 2, top_right: 3, bottom_right: 4};
324
+ },
325
+ configure: async (device, coordinatorEndpoint, logger) => {
326
+ const ep1 = device.getEndpoint(1);
327
+ await reporting.bind(ep1, coordinatorEndpoint, ['genGroups', 'genOnOff', 'genLevelCtrl']);
328
+ await reporting.batteryPercentageRemaining(ep1);
329
+ const ep2 = device.getEndpoint(2);
330
+ await reporting.bind(ep2, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
331
+ const ep3 = device.getEndpoint(3);
332
+ await reporting.bind(ep3, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
333
+ const ep4 = device.getEndpoint(4);
334
+ await reporting.bind(ep4, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
335
+ },
336
+ exposes: [
337
+ e.action(['on_top_left', 'off_top_left', 'on_bottom_left', 'off_bottom_left', 'on_top_right', 'off_top_right',
338
+ 'on_bottom_right', 'off_bottom_right', 'brightness_move_up_top_left', 'brightness_move_up_bottom_left',
339
+ 'brightness_move_up_top_right', 'brightness_move_up_bottom_right', 'brightness_move_down_top_left',
340
+ 'brightness_move_down_bottom_left', 'brightness_move_down_top_right', 'brightness_move_down_bottom_right',
341
+ 'brightness_stop_top_left', 'brightness_stop_bottom_left', 'brightness_stop_top_right', 'brightness_stop_bottom_right']),
342
+ e.battery(),
343
+ ],
344
+ },
314
345
  ];
@@ -2087,6 +2087,13 @@ module.exports = [
2087
2087
  },
2088
2088
  ota: ota.zigbeeOTA,
2089
2089
  },
2090
+ {
2091
+ zigbeeModel: ['915005987401'],
2092
+ model: '915005987401',
2093
+ vendor: 'Philips',
2094
+ description: 'Hue White and color ambiance Gradient Signe table lamp (black)',
2095
+ extend: philips.extend.light_onoff_brightness_colortemp_color_gradient({colorTempRange: [153, 500]}),
2096
+ },
2090
2097
  {
2091
2098
  zigbeeModel: ['LOM005'],
2092
2099
  model: '9290022408',
@@ -360,6 +360,27 @@ module.exports = [
360
360
  await reporting.brightness(endpoint);
361
361
  },
362
362
  },
363
+ {
364
+ zigbeeModel: ['NHPB/UNIDIM/1'],
365
+ model: 'WDE002960',
366
+ vendor: 'Schneider Electric',
367
+ description: 'Push button dimmer',
368
+ fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.wiser_lighting_ballast_configuration],
369
+ toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tz.wiser_dimmer_mode],
370
+ exposes: [e.light_brightness().withLevelConfig(),
371
+ exposes.numeric('ballast_minimum_level', ea.ALL).withValueMin(1).withValueMax(254)
372
+ .withDescription('Specifies the minimum light output of the ballast'),
373
+ exposes.numeric('ballast_maximum_level', ea.ALL).withValueMin(1).withValueMax(254)
374
+ .withDescription('Specifies the maximum light output of the ballast'),
375
+ exposes.enum('dimmer_mode', ea.ALL, ['auto', 'rc', 'rl', 'rl_led'])
376
+ .withDescription('Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)')],
377
+ configure: async (device, coordinatorEndpoint, logger) => {
378
+ const endpoint = device.getEndpoint(3);
379
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl', 'lightingBallastCfg']);
380
+ await reporting.onOff(endpoint);
381
+ await reporting.brightness(endpoint);
382
+ },
383
+ },
363
384
  {
364
385
  zigbeeModel: ['NHPB/DIMMER/1'],
365
386
  model: 'WDE002386',
@@ -1077,4 +1098,30 @@ module.exports = [
1077
1098
  toZigbee: [],
1078
1099
  exposes: [e.battery_low(), e.contact(), e.tamper()],
1079
1100
  },
1101
+ {
1102
+ zigbeeModel: ['EKO07259'],
1103
+ model: 'EKO07259',
1104
+ vendor: 'Schneider Electric',
1105
+ description: 'Smart thermostat',
1106
+ fromZigbee: [fz.stelpro_thermostat, fz.metering, fz.schneider_pilot_mode, fz.wiser_device_info, fz.hvac_user_interface],
1107
+ toZigbee: [tz.thermostat_occupied_heating_setpoint, tz.thermostat_system_mode, tz.thermostat_running_state,
1108
+ tz.thermostat_local_temperature, tz.thermostat_control_sequence_of_operation, tz.schneider_pilot_mode,
1109
+ tz.schneider_thermostat_keypad_lockout, tz.thermostat_temperature_display_mode],
1110
+ exposes: [exposes.binary('keypad_lockout', ea.STATE_SET, 'lock1', 'unlock')
1111
+ .withDescription('Enables/disables physical input on the device'),
1112
+ exposes.enum('schneider_pilot_mode', ea.ALL, ['contactor', 'pilot']).withDescription('Controls piloting mode'),
1113
+ exposes.enum('temperature_display_mode', ea.ALL, ['celsius', 'fahrenheit'])
1114
+ .withDescription('The temperature format displayed on the thermostat screen'),
1115
+ exposes.climate().withSetpoint('occupied_heating_setpoint', 4, 30, 0.5).withLocalTemperature()
1116
+ .withSystemMode(['off', 'heat']).withRunningState(['idle', 'heat']).withPiHeatingDemand()],
1117
+ configure: async (device, coordinatorEndpoint, logger) => {
1118
+ const endpoint1 = device.getEndpoint(1);
1119
+ const endpoint2 = device.getEndpoint(2);
1120
+ await reporting.bind(endpoint1, coordinatorEndpoint, ['hvacThermostat']);
1121
+ await reporting.thermostatPIHeatingDemand(endpoint1);
1122
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint1);
1123
+ await reporting.bind(endpoint2, coordinatorEndpoint, ['seMetering']);
1124
+ await endpoint1.read('hvacUserInterfaceCfg', ['keypadLockout', 'tempDisplayMode']);
1125
+ },
1126
+ },
1080
1127
  ];
@@ -197,4 +197,12 @@ module.exports = [
197
197
  extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [142, 555]}),
198
198
  ota: ota.ledvance,
199
199
  },
200
+ {
201
+ zigbeeModel: ['BR30 W 10 year'],
202
+ model: '74453',
203
+ vendor: 'Sylvania',
204
+ description: 'LIGHTIFY LED soft white BR30',
205
+ extend: extend.ledvance.light_onoff_brightness(),
206
+ ota: ota.ledvance,
207
+ },
200
208
  ];
package/devices/tuya.js CHANGED
@@ -1310,7 +1310,7 @@ module.exports = [
1310
1310
  ],
1311
1311
  },
1312
1312
  {
1313
- fingerprint: tuya.fingerprint('TS0601', ['_TZE200_fjjbhx9d', '_TZE200_e3oitdyu']),
1313
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_fjjbhx9d', '_TZE200_e3oitdyu', '_TZE200_gwkapsoq']),
1314
1314
  model: 'TS0601_dimmer_2',
1315
1315
  vendor: 'TuYa',
1316
1316
  description: '2 gang smart dimmer',
@@ -3287,6 +3287,28 @@ module.exports = [
3287
3287
  await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']);
3288
3288
  },
3289
3289
  },
3290
+ {
3291
+ zigbeeModel: ['TS0726'],
3292
+ model: 'TS0726',
3293
+ vendor: 'TuYa',
3294
+ description: '4 gang switch with neutral wire',
3295
+ fromZigbee: [fz.on_off, tuya.fz.power_on_behavior_2, fz.ignore_basic_report],
3296
+ toZigbee: [tz.on_off, tuya.tz.power_on_behavior_2],
3297
+ exposes: [e.switch().withEndpoint('l1'), e.power_on_behavior().withEndpoint('l1'), e.switch().withEndpoint('l2'),
3298
+ e.power_on_behavior().withEndpoint('l2'), e.switch().withEndpoint('l3'), e.power_on_behavior().withEndpoint('l3'),
3299
+ e.switch().withEndpoint('l4'), e.power_on_behavior().withEndpoint('l4')],
3300
+ endpoint: (device) => {
3301
+ return {'l1': 1, 'l2': 2, 'l3': 3, 'l4': 4};
3302
+ },
3303
+ meta: {multiEndpoint: true},
3304
+ configure: async (device, coordinatorEndpoint, logger) => {
3305
+ await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
3306
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
3307
+ await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
3308
+ await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
3309
+ await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']);
3310
+ },
3311
+ },
3290
3312
  {
3291
3313
  fingerprint: [{modelID: 'TS0006', manufacturerName: '_TYZB01_ltundz9m'},
3292
3314
  {modelID: 'TS0006', manufacturerName: '_TZ3000_jyupj3fw'}],
package/devices/xiaomi.js CHANGED
@@ -776,12 +776,12 @@ module.exports = [
776
776
  model: 'ZNLDP12LM',
777
777
  vendor: 'Xiaomi',
778
778
  description: 'Aqara smart LED bulb',
779
- toZigbee: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}).toZigbee.concat([
780
- tz.xiaomi_light_power_outage_memory]),
781
- fromZigbee: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}).fromZigbee,
779
+ toZigbee: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370], disablePowerOnBehavior: true})
780
+ .toZigbee.concat([tz.xiaomi_light_power_outage_memory]),
781
+ fromZigbee: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370], disablePowerOnBehavior: true}).fromZigbee,
782
782
  // power_on_behavior 'toggle' does not seem to be supported
783
- exposes: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}).exposes.concat([
784
- e.power_outage_memory().withAccess(ea.STATE_SET)]),
783
+ exposes: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370], disablePowerOnBehavior: true})
784
+ .exposes.concat([e.power_outage_memory().withAccess(ea.STATE_SET)]),
785
785
  ota: ota.zigbeeOTA,
786
786
  },
787
787
  {
@@ -142,7 +142,7 @@ module.exports = [
142
142
  },
143
143
  },
144
144
  {
145
- fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_iossyxra'}],
145
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_iossyxra', '_TZE200_cxu0jkjk']),
146
146
  model: 'ZM-AM02_cover',
147
147
  vendor: 'Zemismart',
148
148
  description: 'Zigbee/RF curtain converter',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "15.0.87",
3
+ "version": "15.0.89",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [