zigbee-herdsman-converters 14.0.474 → 14.0.477

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.
@@ -7565,11 +7565,11 @@ const converters = {
7565
7565
  if (0x8000 in msg.data) {
7566
7566
  const firmware = msg.data[0x8000].join('.');
7567
7567
  result.current_firmware = firmware;
7568
- msg.device.zhDevice.softwareBuildID = firmware;
7568
+ meta.device.softwareBuildID = firmware;
7569
7569
  }
7570
7570
 
7571
7571
  if (0x8020 in msg.data) {
7572
- msg.device.zhDevice.hardwareVersion = msg.data[0x8020].join('.');
7572
+ meta.device.hardwareVersion = msg.data[0x8020].join('.');
7573
7573
  }
7574
7574
 
7575
7575
  return result;
package/devices/adeo.js CHANGED
@@ -27,6 +27,13 @@ module.exports = [
27
27
  description: 'ENKI LEXMAN E27 LED white',
28
28
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
29
29
  },
30
+ {
31
+ zigbeeModel: ['ZBEK-5'],
32
+ model: 'IST-CDZFB2AS007NA-MZN-01',
33
+ vendor: 'ADEO',
34
+ description: 'ENKI LEXMAN E27 LED white',
35
+ extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
36
+ },
30
37
  {
31
38
  zigbeeModel: ['ZBEK-3'],
32
39
  model: 'IP-CDZOTAAP005JA-MAN',
@@ -46,7 +46,8 @@ module.exports = [
46
46
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering', 'genDeviceTempCfg']);
47
47
  await reporting.onOff(endpoint);
48
48
  await reporting.deviceTemperature(endpoint);
49
- await reporting.readEletricalMeasurementMultiplierDivisors(endpoint);
49
+ // Set to true, to access the acFrequencyDivisor and acFrequencyMultiplier attribute. Not all devices support this.
50
+ await reporting.readEletricalMeasurementMultiplierDivisors(endpoint, true);
50
51
  await reporting.activePower(endpoint, {change: 10}); // Power reports with every 10W change
51
52
  await reporting.rmsCurrent(endpoint, {change: 20}); // Current reports with every 20mA change
52
53
  await reporting.rmsVoltage(endpoint, {min: constants.repInterval.MINUTES_5, change: 400}); // Limit reports to every 5m, or 4V
package/devices/feibit.js CHANGED
@@ -93,7 +93,7 @@ module.exports = [
93
93
  description: 'Combustible gas sensor',
94
94
  fromZigbee: [fz.ias_gas_alarm_2],
95
95
  toZigbee: [],
96
- exposes: [e.gas(), e.battery_low(), e.tamper()],
96
+ exposes: [e.gas()],
97
97
  },
98
98
  {
99
99
  zigbeeModel: ['FNB56-WTS05FB2.0'],
package/devices/heiman.js CHANGED
@@ -287,7 +287,7 @@ module.exports = [
287
287
  description: 'Smart motion sensor',
288
288
  fromZigbee: [fz.ias_occupancy_alarm_1],
289
289
  toZigbee: [],
290
- exposes: [e.occupancy(), e.battery_low(), e.tamper()],
290
+ exposes: [e.occupancy(), e.battery_low()],
291
291
  },
292
292
  {
293
293
  zigbeeModel: ['HT-EM', 'TH-EM', 'TH-T_V14'],
package/devices/innr.js CHANGED
@@ -47,6 +47,14 @@ module.exports = [
47
47
  extend: extend.light_onoff_brightness(),
48
48
  meta: {turnsOffAtBrightness1: true},
49
49
  },
50
+ {
51
+ zigbeeModel: ['OGL 130 C'],
52
+ model: 'OGL 130 C',
53
+ vendor: 'Innr',
54
+ description: 'Outdoor smart globe lights',
55
+ extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [100, 1000], supportsHS: true}),
56
+ meta: {applyRedFix: true, turnsOffAtBrightness1: true},
57
+ },
50
58
  {
51
59
  zigbeeModel: ['OPL 130 C'],
52
60
  model: 'OPL 130 C',
package/devices/orvibo.js CHANGED
@@ -7,7 +7,7 @@ const e = exposes.presets;
7
7
 
8
8
  module.exports = [
9
9
  {
10
- zigbeeModel: ['ORVIBO Socket'],
10
+ zigbeeModel: ['ORVIBO Socket', '93e29b89b2ee45bea5bdbb7679d75d24'],
11
11
  model: 'OR-ZB-S010-3C',
12
12
  vendor: 'ORVIBO',
13
13
  description: 'Smart socket',
@@ -73,17 +73,30 @@ module.exports = [
73
73
  model: '3321-S',
74
74
  vendor: 'SmartThings',
75
75
  description: 'Multi Sensor (2015 model)',
76
- fromZigbee: [fz.temperature, fz.ias_contact_alarm_1_report, fz.ias_contact_alarm_1, fz.battery],
76
+ fromZigbee: [fz.temperature, fz.ias_contact_alarm_1_report, fz.ias_contact_alarm_1, fz.battery, fz.smartthings_acceleration],
77
77
  toZigbee: [],
78
78
  meta: {battery: {voltageToPercentage: '3V_2100'}},
79
79
  configure: async (device, coordinatorEndpoint, logger) => {
80
80
  const endpoint = device.getEndpoint(1);
81
- await reporting.bind(endpoint, coordinatorEndpoint, ['msTemperatureMeasurement']);
82
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
81
+ const options = {manufacturerCode: 0x104E};
82
+ await reporting.bind(endpoint, coordinatorEndpoint,
83
+ ['msTemperatureMeasurement', 'genPowerCfg', 'manuSpecificSamsungAccelerometer']);
83
84
  await reporting.temperature(endpoint);
84
85
  await reporting.batteryVoltage(endpoint);
86
+ const payloadA = reporting.payload('acceleration', 10, constants.repInterval.MINUTE, 1);
87
+ await endpoint.configureReporting('manuSpecificSamsungAccelerometer', payloadA, options);
88
+ const payloadX = reporting.payload('x_axis', 10, constants.repInterval.MINUTE, 1);
89
+ await endpoint.configureReporting('manuSpecificSamsungAccelerometer', payloadX, options);
90
+ const payloadY = reporting.payload('y_axis', 10, constants.repInterval.MINUTE, 1);
91
+ await endpoint.configureReporting('manuSpecificSamsungAccelerometer', payloadY, options);
92
+ const payloadZ = reporting.payload('z_axis', 10, constants.repInterval.MINUTE, 1);
93
+ await endpoint.configureReporting('manuSpecificSamsungAccelerometer', payloadZ, options);
94
+ // Has Unknown power source, force it.
95
+ device.powerSource = 'Battery';
96
+ device.save();
85
97
  },
86
- exposes: [e.temperature(), e.contact(), e.battery_low(), e.tamper(), e.battery()],
98
+ exposes: [e.temperature(), e.contact(), e.battery_low(), e.tamper(), e.battery(),
99
+ e.moving(), e.x_axis(), e.y_axis(), e.z_axis()],
87
100
  },
88
101
  {
89
102
  zigbeeModel: ['3200-Sgb'],
package/devices/tuya.js CHANGED
@@ -682,6 +682,7 @@ module.exports = [
682
682
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_rm0hthdo'},
683
683
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_zwqnazkb'},
684
684
  {modelID: 'TS0502B', manufacturerName: '_TZ3210_ijsj2evj'},
685
+ {modelID: 'TS0502B', manufacturerName: '_TZ3210_pgq2qvyv'},
685
686
  ],
686
687
  model: 'TS0502B',
687
688
  vendor: 'TuYa',
@@ -728,7 +729,10 @@ module.exports = [
728
729
  },
729
730
  },
730
731
  {
731
- fingerprint: [{modelID: 'TS0201', manufacturerName: '_TZ3000_bguser20'}],
732
+ fingerprint: [
733
+ {modelID: 'TS0201', manufacturerName: '_TZ3000_bguser20'},
734
+ {modelID: 'TS0201', manufacturerName: '_TZ3000_fllyghyj'},
735
+ ],
732
736
  model: 'WSD500A',
733
737
  vendor: 'TuYa',
734
738
  description: 'Temperature & humidity sensor',
package/lib/reporting.js CHANGED
@@ -18,11 +18,17 @@ function payload(attribute, min, max, change, overrides) {
18
18
  return [payload];
19
19
  }
20
20
 
21
- async function readEletricalMeasurementMultiplierDivisors(endpoint) {
21
+ // Fix the problem that commit #3839 introduced.
22
+ // You can set readFrequencyAttrs = true if the device support acFrequencyDivisor and acFrequencyMultiplier
23
+ // See Develco.js SPLZB-132 for example
24
+ async function readEletricalMeasurementMultiplierDivisors(endpoint, readFrequencyAttrs = false) {
22
25
  // Split into three chunks, some devices fail to respond when reading too much attributes at once.
23
26
  await endpoint.read('haElectricalMeasurement', ['acVoltageMultiplier', 'acVoltageDivisor', 'acCurrentMultiplier']);
24
27
  await endpoint.read('haElectricalMeasurement', ['acCurrentDivisor', 'acPowerMultiplier', 'acPowerDivisor']);
25
- await endpoint.read('haElectricalMeasurement', ['acFrequencyDivisor', 'acFrequencyMultiplier']);
28
+ // Only read frequency multiplier/devisor when enabled as not all devices support this.
29
+ if (readFrequencyAttrs) {
30
+ await endpoint.read('haElectricalMeasurement', ['acFrequencyDivisor', 'acFrequencyMultiplier']);
31
+ }
26
32
  }
27
33
 
28
34
  async function readMeteringMultiplierDivisor(endpoint) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.474",
3
+ "version": "14.0.477",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [