zigbee-herdsman-converters 15.0.19 → 15.0.21

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.
@@ -794,37 +794,58 @@ const converters = {
794
794
  on_off: {
795
795
  cluster: 'genOnOff',
796
796
  type: ['attributeReport', 'readResponse'],
797
+ options: [exposes.options.state_action()],
797
798
  convert: (model, msg, publish, options, meta) => {
798
799
  if (msg.data.hasOwnProperty('onOff')) {
800
+ const payload = {};
799
801
  const property = postfixWithEndpointName('state', msg, model, meta);
800
- return {[property]: msg.data['onOff'] === 1 ? 'ON' : 'OFF'};
802
+ const state = msg.data['onOff'] === 1 ? 'ON' : 'OFF';
803
+ payload[property] = state;
804
+ if (options && options.state_action) {
805
+ payload['action'] = postfixWithEndpointName(state.toLowerCase(), msg, model, meta);
806
+ }
807
+ return payload;
801
808
  }
802
809
  },
803
810
  },
804
811
  on_off_force_multiendpoint: {
805
812
  cluster: 'genOnOff',
806
813
  type: ['attributeReport', 'readResponse'],
814
+ options: [exposes.options.state_action()],
807
815
  convert: (model, msg, publish, options, meta) => {
808
816
  // This converted is need instead of `fz.on_off` when no meta: {multiEndpoint: true} can be defined for this device
809
817
  // but it is needed for the `state`. E.g. when a switch has 3 channels (state_l1, state_l2, state_l3) but
810
818
  // has combined power measurements (power, energy))
811
819
  if (msg.data.hasOwnProperty('onOff')) {
820
+ const payload = {};
812
821
  const endpointName = model.hasOwnProperty('endpoint') ?
813
822
  utils.getKey(model.endpoint(meta.device), msg.endpoint.ID) : msg.endpoint.ID;
814
- return {[`state_${endpointName}`]: msg.data['onOff'] === 1 ? 'ON' : 'OFF'};
823
+ const state = msg.data['onOff'] === 1 ? 'ON' : 'OFF';
824
+ payload[`state_${endpointName}`] = state;
825
+ if (options && options.state_action) {
826
+ payload['action'] = `${state.toLowerCase()}_${endpointName}`;
827
+ }
828
+ return payload;
815
829
  }
816
830
  },
817
831
  },
818
832
  on_off_skip_duplicate_transaction: {
819
833
  cluster: 'genOnOff',
820
834
  type: ['attributeReport', 'readResponse'],
835
+ options: [exposes.options.state_action()],
821
836
  convert: (model, msg, publish, options, meta) => {
822
837
  // Device sends multiple messages with the same transactionSequenceNumber,
823
838
  // prevent that multiple messages get send.
824
839
  // https://github.com/Koenkk/zigbee2mqtt/issues/3687
825
840
  if (msg.data.hasOwnProperty('onOff') && !hasAlreadyProcessedMessage(msg, model)) {
841
+ const payload = {};
826
842
  const property = postfixWithEndpointName('state', msg, model, meta);
827
- return {[property]: msg.data['onOff'] === 1 ? 'ON' : 'OFF'};
843
+ const state = msg.data['onOff'] === 1 ? 'ON' : 'OFF';
844
+ payload[property] = state;
845
+ if (options && options.state_action) {
846
+ payload['action'] = postfixWithEndpointName(state.toLowerCase(), msg, model, meta);
847
+ }
848
+ return payload;
828
849
  }
829
850
  },
830
851
  },
@@ -8291,6 +8312,15 @@ const converters = {
8291
8312
  return result;
8292
8313
  },
8293
8314
  },
8315
+ hw_version: {
8316
+ cluster: 'genBasic',
8317
+ type: ['attributeReport', 'readResponse'],
8318
+ convert: (model, msg, publish, options, meta) => {
8319
+ const result = {};
8320
+ if (msg.data.hasOwnProperty('hwVersion')) result['hw_version'] = msg.data.hwVersion;
8321
+ return result;
8322
+ },
8323
+ },
8294
8324
  // #endregion
8295
8325
 
8296
8326
  // #region Ignore converters (these message dont need parsing).
package/devices/bosch.js CHANGED
@@ -508,6 +508,26 @@ const definition = [
508
508
  exposes.enum('heartbeat', ea.ALL, Object.keys(stateOffOn)).withDescription('Enable/disable heartbeat'),
509
509
  ],
510
510
  },
511
+ {
512
+ zigbeeModel: ['RBSH-SP-ZB-EU'],
513
+ model: 'BSP-FZ2',
514
+ vendor: 'Bosch',
515
+ description: 'Plug compact EU',
516
+ fromZigbee: [fz.on_off, fz.power_on_behavior, fz.electrical_measurement, fz.metering],
517
+ toZigbee: [tz.on_off, tz.power_on_behavior],
518
+ configure: async (device, coordinatorEndpoint, logger) => {
519
+ const endpoint = device.getEndpoint(1);
520
+ await endpoint.read('genOnOff', ['onOff', 'startUpOnOff']);
521
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
522
+ await reporting.bind(endpoint, coordinatorEndpoint, ['seMetering']);
523
+ await reporting.readMeteringMultiplierDivisor(endpoint);
524
+ await reporting.currentSummDelivered(endpoint, {change: [0, 1]});
525
+ await reporting.bind(endpoint, coordinatorEndpoint, ['haElectricalMeasurement']);
526
+ await endpoint.read('haElectricalMeasurement', ['acPowerMultiplier', 'acPowerDivisor']);
527
+ await reporting.activePower(endpoint);
528
+ },
529
+ exposes: [e.switch(), e.power_on_behavior(), e.power(), e.energy()],
530
+ },
511
531
  ];
512
532
 
513
533
  module.exports = definition;
package/devices/datek.js CHANGED
@@ -10,7 +10,7 @@ const ea = exposes.access;
10
10
 
11
11
  module.exports = [
12
12
  {
13
- zigbeeModel: ['PoP'],
13
+ fingerprint: [{modelID: 'PoP', manufacturerName: 'Eva'}],
14
14
  model: 'HLU2909K',
15
15
  vendor: 'Datek',
16
16
  description: 'APEX smart plug 16A',
@@ -31,21 +31,23 @@ module.exports = [
31
31
  exposes: [e.power(), e.current(), e.voltage(), e.switch(), e.temperature()],
32
32
  },
33
33
  {
34
- zigbeeModel: ['Meter Reader'],
34
+ fingerprint: [{modelID: 'Meter Reader', manufacturerName: 'Eva'}],
35
35
  model: 'HSE2905E',
36
36
  vendor: 'Datek',
37
37
  description: 'Datek Eva AMS HAN power-meter sensor',
38
- fromZigbee: [fz.metering_datek, fz.electrical_measurement, fz.temperature],
38
+ fromZigbee: [fz.metering_datek, fz.electrical_measurement, fz.temperature, fz.hw_version],
39
39
  toZigbee: [],
40
40
  ota: ota.zigbeeOTA,
41
41
  configure: async (device, coordinatorEndpoint, logger) => {
42
42
  const endpoint = device.getEndpoint(1);
43
43
  await reporting.bind(endpoint, coordinatorEndpoint, ['haElectricalMeasurement', 'seMetering', 'msTemperatureMeasurement']);
44
+ await reporting.readEletricalMeasurementMultiplierDivisors(endpoint);
44
45
  await reporting.readMeteringMultiplierDivisor(endpoint);
45
46
  try {
46
- await reporting.readEletricalMeasurementMultiplierDivisors(endpoint);
47
- } catch (error) {
48
- /* fails for some: https://github.com/Koenkk/zigbee2mqtt/issues/11867 */
47
+ // hwVersion < 2 do not support hwVersion attribute, so we are testing if this is hwVersion 1 or 2
48
+ await endpoint.read('genBasic', ['hwVersion']);
49
+ } catch (e) {
50
+ e;
49
51
  }
50
52
  const payload = [{
51
53
  attribute: 'rmsVoltagePhB',
@@ -78,8 +80,6 @@ module.exports = [
78
80
  await reporting.currentSummDelivered(endpoint, {min: 60, max: 3600, change: [1, 1]});
79
81
  await reporting.currentSummReceived(endpoint);
80
82
  await reporting.temperature(endpoint, {min: 60, max: 3600, change: 0});
81
- device.powerSource = 'DC source';
82
- device.save();
83
83
  },
84
84
  exposes: [e.power(), e.energy(), e.current(), e.voltage(), e.current_phase_b(), e.voltage_phase_b(), e.current_phase_c(),
85
85
  e.voltage_phase_c(), e.temperature()],
@@ -113,7 +113,7 @@ module.exports = [
113
113
  exposes.numeric('occupancy_timeout', ea.ALL).withUnit('seconds').withValueMin(0).withValueMax(65535)],
114
114
  },
115
115
  {
116
- zigbeeModel: ['ID Lock 150'],
116
+ fingerprint: [{modelID: 'ID Lock 150', manufacturerName: 'Eva'}],
117
117
  model: '0402946',
118
118
  vendor: 'Datek',
119
119
  description: 'Zigbee module for ID lock 150',
@@ -187,7 +187,7 @@ module.exports = [
187
187
  'random_pin_24_hours']).withDescription('Service Mode of the Lock')],
188
188
  },
189
189
  {
190
- zigbeeModel: ['Water Sensor'],
190
+ fingerprint: [{modelID: 'Water Sensor', manufacturerName: 'Eva'}],
191
191
  model: 'HSE2919E',
192
192
  vendor: 'Datek',
193
193
  description: 'Eva water leak sensor',
@@ -228,6 +228,7 @@ module.exports = [
228
228
  'brightness_move_down', 'brightness_move_up', 'brightness_stop'])],
229
229
  },
230
230
  {
231
+ fingerprint: [{modelID: 'Door/Window Sensor', manufacturerName: 'Eva'}],
231
232
  zigbeeModel: ['Door/Window Sensor'],
232
233
  model: 'HSE2920E',
233
234
  vendor: 'Datek',
@@ -0,0 +1,11 @@
1
+ const extend = require('../lib/extend');
2
+
3
+ module.exports = [
4
+ {
5
+ zigbeeModel: ['EB-E14-P45-RGBW'],
6
+ model: 'EB-E14-P45-RGBW',
7
+ vendor: 'EssentielB',
8
+ description: 'Smart LED bulb',
9
+ extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
10
+ },
11
+ ];
package/devices/lidl.js CHANGED
@@ -409,14 +409,15 @@ module.exports = [
409
409
  model: 'HG08164',
410
410
  vendor: 'Lidl',
411
411
  description: 'Silvercrest smart button',
412
- fromZigbee: [fz.command_on, fz.command_off, fz.command_step, fz.command_stop, fz.battery],
412
+ fromZigbee: [fz.command_on, fz.command_off, fz.command_step, fz.command_stop, fz.battery, fz.tuya_on_off_action],
413
413
  toZigbee: [],
414
414
  configure: async (device, coordinatorEndpoint, logger) => {
415
415
  const endpoint = device.getEndpoint(1);
416
416
  await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
417
417
  await reporting.batteryPercentageRemaining(endpoint);
418
418
  },
419
- exposes: [e.action(['on', 'off', 'brightness_stop', 'brightness_step_up', 'brightness_step_down']), e.battery()],
419
+ exposes: [e.action(
420
+ ['on', 'off', 'brightness_stop', 'brightness_step_up', 'brightness_step_down', 'single', 'double']), e.battery()],
420
421
  },
421
422
  {
422
423
  fingerprint: [{modelID: 'TS0211', manufacturerName: '_TZ1800_ladpngdx'}],
package/devices/namron.js CHANGED
@@ -734,4 +734,25 @@ module.exports = [
734
734
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 555]}),
735
735
  meta: {turnsOffAtBrightness1: true},
736
736
  },
737
+ {
738
+ zigbeeModel: ['4512749'],
739
+ model: '4512749',
740
+ vendor: 'Namron',
741
+ description: 'Thermostat outlet socket',
742
+ fromZigbee: [fz.metering, fz.electrical_measurement, fz.on_off, fz.temperature],
743
+ toZigbee: [tz.on_off, tz.power_on_behavior],
744
+ exposes: [e.temperature(), e.power(), e.current(), e.voltage(), e.switch(), e.power_on_behavior()],
745
+ configure: async (device, coordinatorEndpoint, logger) => {
746
+ const endpoint = device.getEndpoint(1);
747
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'msTemperatureMeasurement']);
748
+ await endpoint.read('haElectricalMeasurement', ['acVoltageMultiplier', 'acVoltageDivisor']);
749
+ await endpoint.read('haElectricalMeasurement', ['acPowerMultiplier', 'acPowerDivisor']);
750
+ await endpoint.read('haElectricalMeasurement', ['acCurrentMultiplier', 'acCurrentDivisor']);
751
+ await reporting.onOff(endpoint);
752
+ await reporting.temperature(endpoint);
753
+ await reporting.rmsVoltage(endpoint);
754
+ await reporting.rmsCurrent(endpoint);
755
+ await reporting.activePower(endpoint);
756
+ },
757
+ },
737
758
  ];
package/devices/nodon.js CHANGED
@@ -51,6 +51,21 @@ module.exports = [
51
51
  return {default: 1};
52
52
  },
53
53
  },
54
+ {
55
+ zigbeeModel: ['SIN-4-1-20_PRO'],
56
+ model: 'SIN-4-1-20_PRO',
57
+ vendor: 'NodOn',
58
+ description: 'Single LED relay',
59
+ extend: extend.switch(),
60
+ configure: async (device, coordinatorEndpoint, logger) => {
61
+ const ep = device.getEndpoint(1);
62
+ await reporting.bind(ep, coordinatorEndpoint, ['genOnOff']);
63
+ await reporting.onOff(ep);
64
+ },
65
+ endpoint: (device) => {
66
+ return {default: 1};
67
+ },
68
+ },
54
69
  {
55
70
  zigbeeModel: ['SIN-4-2-20'],
56
71
  model: 'SIN-4-2-20',
@@ -71,4 +86,24 @@ module.exports = [
71
86
  await reporting.onOff(ep2);
72
87
  },
73
88
  },
89
+ {
90
+ zigbeeModel: ['SIN-4-2-20_PRO'],
91
+ model: 'SIN-4-2-20_PRO',
92
+ vendor: 'NodOn',
93
+ description: 'Double LED relay',
94
+ exposes: [e.switch().withEndpoint('l1'), e.switch().withEndpoint('l2')],
95
+ extend: extend.switch(),
96
+ endpoint: (device) => {
97
+ return {'l1': 1, 'l2': 2};
98
+ },
99
+ meta: {multiEndpoint: true},
100
+ configure: async (device, coordinatorEndpoint, logger) => {
101
+ const ep1 = device.getEndpoint(1);
102
+ const ep2 = device.getEndpoint(2);
103
+ await reporting.bind(ep1, coordinatorEndpoint, ['genOnOff']);
104
+ await reporting.bind(ep2, coordinatorEndpoint, ['genOnOff']);
105
+ await reporting.onOff(ep1);
106
+ await reporting.onOff(ep2);
107
+ },
108
+ },
74
109
  ];
@@ -979,7 +979,7 @@ module.exports = [
979
979
  extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
980
980
  },
981
981
  {
982
- zigbeeModel: ['LCG002', '929003047701'],
982
+ zigbeeModel: ['LCG002', '929003047701', '929003047701'],
983
983
  model: '929001953101',
984
984
  vendor: 'Philips',
985
985
  description: 'Hue White and Color Ambiance GU10',
@@ -1288,7 +1288,7 @@ module.exports = [
1288
1288
  model: '1743930P7',
1289
1289
  vendor: 'Philips',
1290
1290
  description: 'Hue Outdoor Econic wall lantern',
1291
- extend: hueExtend.light_onoff_brightness_colortemp_color(),
1291
+ extend: hueExtend.light_onoff_brightness_colortemp_color({disableHueEffects: false, colorTempRange: [153, 500]}),
1292
1292
  },
1293
1293
  {
1294
1294
  zigbeeModel: ['929003053001'],
@@ -1458,6 +1458,13 @@ module.exports = [
1458
1458
  description: 'Hue white ambiance E26 with Bluetooth',
1459
1459
  extend: hueExtend.light_onoff_brightness_colortemp(),
1460
1460
  },
1461
+ {
1462
+ zigbeeModel: ['LTO003'],
1463
+ model: '9290024782',
1464
+ vendor: 'Philips',
1465
+ description: 'Hue G125 B22 White Ambiance filament bulb',
1466
+ extend: hueExtend.light_onoff_brightness(),
1467
+ },
1461
1468
  {
1462
1469
  zigbeeModel: ['LTW010', 'LTW001', 'LTW004'],
1463
1470
  model: '8718696548738',
@@ -1956,7 +1963,7 @@ module.exports = [
1956
1963
  extend: hueExtend.light_onoff_brightness_colortemp_color_gradient({colorTempRange: [153, 500]}),
1957
1964
  },
1958
1965
  {
1959
- zigbeeModel: ['915005987701'],
1966
+ zigbeeModel: ['929003479701'],
1960
1967
  model: '915005987701',
1961
1968
  vendor: 'Philips',
1962
1969
  description: 'Hue Gradient Signe floor lamp (wood)',
@@ -3021,6 +3028,13 @@ module.exports = [
3021
3028
  description: 'Hue White Ambiance E27 filament screw globe',
3022
3029
  extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [222, 454]}),
3023
3030
  },
3031
+ {
3032
+ zigbeeModel: ['LTA006'],
3033
+ model: '8719514301443',
3034
+ vendor: 'Philips',
3035
+ description: 'Hue White Ambiance B22 filament screw globe',
3036
+ extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [222, 454]}),
3037
+ },
3024
3038
  {
3025
3039
  zigbeeModel: ['LWE006'],
3026
3040
  model: '929002294102',
@@ -3309,4 +3323,60 @@ module.exports = [
3309
3323
  description: 'Hue white ambiance extra bright high lumen dimmable LED smart retrofit recessed 6" downlight',
3310
3324
  extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 500]}),
3311
3325
  },
3326
+ {
3327
+ zigbeeModel: ['929003115801'],
3328
+ model: '929003115801',
3329
+ vendor: 'Philips',
3330
+ description: 'Hue Perifo ceiling light, 1 pendant (white)',
3331
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3332
+ },
3333
+ {
3334
+ zigbeeModel: ['929003116201'],
3335
+ model: '929003116201',
3336
+ vendor: 'Philips',
3337
+ description: 'Hue Perifo linear light bar',
3338
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3339
+ },
3340
+ {
3341
+ zigbeeModel: ['929003115901'],
3342
+ model: '929003117101',
3343
+ vendor: 'Philips',
3344
+ description: 'Hue Perifo ceiling light, 3 pendant (black)',
3345
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3346
+ },
3347
+ {
3348
+ zigbeeModel: ['929003117201'],
3349
+ model: '929003117201',
3350
+ vendor: 'Philips',
3351
+ description: 'Hue Perifo ceiling light, 3 pendant (white)',
3352
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3353
+ },
3354
+ {
3355
+ zigbeeModel: ['929003117301'],
3356
+ model: '929003117301',
3357
+ vendor: 'Philips',
3358
+ description: 'Hue Perifo ceiling light, 4 spotlights (black)',
3359
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3360
+ },
3361
+ {
3362
+ zigbeeModel: ['929003117401'],
3363
+ model: '929003117401',
3364
+ vendor: 'Philips',
3365
+ description: 'Hue Perifo ceiling light, 4 spotlights (white)',
3366
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3367
+ },
3368
+ {
3369
+ zigbeeModel: ['929003117701'],
3370
+ model: '929003117701',
3371
+ vendor: 'Philips',
3372
+ description: 'Hue Perifo Wall Light, 3 spotlights (black)',
3373
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3374
+ },
3375
+ {
3376
+ zigbeeModel: ['929003117801'],
3377
+ model: '929003117801',
3378
+ vendor: 'Philips',
3379
+ description: 'Hue Perifo Wall Light, 3 spotlights (white)',
3380
+ extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3381
+ },
3312
3382
  ];
package/devices/sonoff.js CHANGED
@@ -90,7 +90,7 @@ module.exports = [
90
90
  model: 'S31ZB',
91
91
  vendor: 'SONOFF',
92
92
  description: 'Zigbee smart plug (US version)',
93
- extend: extend.switch(),
93
+ extend: extend.switch({disablePowerOnBehavior: true}),
94
94
  fromZigbee: [fz.on_off_skip_duplicate_transaction],
95
95
  configure: async (device, coordinatorEndpoint, logger) => {
96
96
  const endpoint = device.getEndpoint(1);
package/lib/exposes.js CHANGED
@@ -521,6 +521,7 @@ module.exports = {
521
521
  legacy: () => new Binary(`legacy`, access.SET, true, false).withDescription(`Set to false to disable the legacy integration (highly recommended), will change structure of the published payload (default true).`),
522
522
  measurement_poll_interval: (extraNote='') => new Numeric(`measurement_poll_interval`, access.SET).withValueMin(-1).withDescription(`This device does not support reporting electric measurements so it is polled instead. The default poll interval is 60 seconds, set to -1 to disable.${extraNote}`),
523
523
  illuminance_below_threshold_check: () => new Binary(`illuminance_below_threshold_check`, access.SET, true, false).withDescription(`Set to false to also send messages when illuminance is above threshold in night mode (default true).`),
524
+ state_action: () => new Binary(`state_action`, access.SET, true, false).withDescription(`State actions will also be published as 'action' when true (default false).`),
524
525
  },
525
526
  presets: {
526
527
  ac_frequency: () => new Numeric('ac_frequency', access.STATE).withUnit('Hz').withDescription('Measured electrical AC frequency'),
@@ -534,7 +535,7 @@ module.exports = {
534
535
  away_mode: () => new Switch().withState('away_mode', false, 'Enable/disable away mode', access.STATE_SET),
535
536
  away_preset_days: () => new Numeric('away_preset_days', access.STATE_SET).withDescription('Away preset days').withValueMin(0).withValueMax(100),
536
537
  away_preset_temperature: () => new Numeric('away_preset_temperature', access.STATE_SET).withUnit('°C').withDescription('Away preset temperature').withValueMin(-10).withValueMax(35),
537
- battery: () => new Numeric('battery', access.STATE).withUnit('%').withDescription('Remaining battery in %').withValueMin(0).withValueMax(100),
538
+ battery: () => new Numeric('battery', access.STATE).withUnit('%').withDescription('Remaining battery in %, can take up to 24 hours before reported.').withValueMin(0).withValueMax(100),
538
539
  battery_low: () => new Binary('battery_low', access.STATE, true, false).withDescription('Indicates if the battery of this device is almost empty'),
539
540
  battery_voltage: () => new Numeric('voltage', access.STATE).withUnit('mV').withDescription('Voltage of the battery in millivolts'),
540
541
  boost_time: () => new Numeric('boost_time', access.STATE_SET).withUnit('s').withDescription('Boost time').withValueMin(0).withValueMax(900),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "15.0.19",
3
+ "version": "15.0.21",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [