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.
- package/converters/fromZigbee.js +2 -2
- package/devices/adeo.js +7 -0
- package/devices/develco.js +2 -1
- package/devices/feibit.js +1 -1
- package/devices/heiman.js +1 -1
- package/devices/innr.js +8 -0
- package/devices/orvibo.js +1 -1
- package/devices/smartthings.js +17 -4
- package/devices/tuya.js +5 -1
- package/lib/reporting.js +8 -2
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -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
|
-
|
|
7568
|
+
meta.device.softwareBuildID = firmware;
|
|
7569
7569
|
}
|
|
7570
7570
|
|
|
7571
7571
|
if (0x8020 in msg.data) {
|
|
7572
|
-
|
|
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',
|
package/devices/develco.js
CHANGED
|
@@ -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
|
-
|
|
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
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()
|
|
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
package/devices/smartthings.js
CHANGED
|
@@ -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
|
-
|
|
82
|
-
await
|
|
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: [
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|