zigbee-herdsman-converters 14.0.414 → 14.0.415
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 +1 -1
- package/devices/develco.js +3 -1
- package/devices/frankever.js +2 -1
- package/devices/gledopto.js +9 -0
- package/devices/heiman.js +1 -1
- package/devices/prolight.js +12 -0
- package/devices/titan_products.js +2 -1
- package/devices/tuya.js +12 -3
- package/lib/exposes.js +1 -0
- package/lib/reporting.js +6 -1
- package/npm-shrinkwrap.json +1 -1
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -5373,7 +5373,7 @@ const converters = {
|
|
|
5373
5373
|
payload[`state_${mapping}`] = value === 1 ? 'ON' : 'OFF';
|
|
5374
5374
|
} else if (['WXKG14LM', 'WXKG16LM', 'WXKG17LM'].includes(model.model)) {
|
|
5375
5375
|
payload.click_mode = {1: 'fast', 2: 'multi'}[value];
|
|
5376
|
-
} else if (['WXCJKG11LM
|
|
5376
|
+
} else if (['WXCJKG11LM', 'WXCJKG12LM', 'WXCJKG13LM'].includes(model.model)) {
|
|
5377
5377
|
// We don't know what the value means for these devices.
|
|
5378
5378
|
// https://github.com/Koenkk/zigbee2mqtt/issues/11126
|
|
5379
5379
|
} else {
|
package/devices/develco.js
CHANGED
|
@@ -39,7 +39,8 @@ module.exports = [
|
|
|
39
39
|
description: 'Power plug',
|
|
40
40
|
fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering, fz.device_temperature],
|
|
41
41
|
toZigbee: [tz.on_off],
|
|
42
|
-
exposes: [e.switch(), e.power(), e.current(), e.voltage(), e.energy(), e.device_temperature()],
|
|
42
|
+
exposes: [e.switch(), e.power(), e.current(), e.voltage(), e.energy(), e.device_temperature(), e.ac_frequency()],
|
|
43
|
+
options: [exposes.options.precision(`ac_frequency`)],
|
|
43
44
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
44
45
|
const endpoint = device.getEndpoint(2);
|
|
45
46
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering', 'genDeviceTempCfg']);
|
|
@@ -52,6 +53,7 @@ module.exports = [
|
|
|
52
53
|
await reporting.readMeteringMultiplierDivisor(endpoint);
|
|
53
54
|
await reporting.currentSummDelivered(endpoint, {change: [0, 20]}); // Limit reports to once every 5m, or 0.02kWh
|
|
54
55
|
await reporting.instantaneousDemand(endpoint, {min: constants.repInterval.MINUTES_5, change: 10});
|
|
56
|
+
await reporting.acFrequency(endpoint);
|
|
55
57
|
},
|
|
56
58
|
endpoint: (device) => {
|
|
57
59
|
return {default: 2};
|
package/devices/frankever.js
CHANGED
|
@@ -6,7 +6,8 @@ const ea = exposes.access;
|
|
|
6
6
|
|
|
7
7
|
module.exports = [
|
|
8
8
|
{
|
|
9
|
-
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_wt9agwf3'}
|
|
9
|
+
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_wt9agwf3'},
|
|
10
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_5uodvhgc'}],
|
|
10
11
|
model: 'FK_V02',
|
|
11
12
|
vendor: 'FrankEver',
|
|
12
13
|
description: 'Zigbee smart water valve',
|
package/devices/gledopto.js
CHANGED
|
@@ -267,6 +267,7 @@ module.exports = [
|
|
|
267
267
|
vendor: 'Gledopto',
|
|
268
268
|
ota: ota.zigbeeOTA,
|
|
269
269
|
description: 'Zigbee LED Controller RGB+CCT (pro)',
|
|
270
|
+
whiteLabel: [{vendor: 'Gledopto', model: 'GL-C-001P'}],
|
|
270
271
|
extend: gledoptoExtend.light_onoff_brightness_colortemp_color({colorTempRange: [158, 495], noConfigure: true}),
|
|
271
272
|
meta: {disableDefaultResponse: true},
|
|
272
273
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
@@ -568,6 +569,14 @@ module.exports = [
|
|
|
568
569
|
description: 'Zigbee 10W Floodlight RGB+CCT (pro)',
|
|
569
570
|
extend: gledoptoExtend.light_onoff_brightness_colortemp_color(),
|
|
570
571
|
},
|
|
572
|
+
{
|
|
573
|
+
zigbeeModel: ['GL-FL-001P'],
|
|
574
|
+
model: 'GL-FL-001P',
|
|
575
|
+
vendor: 'Gledopto',
|
|
576
|
+
ota: ota.zigbeeOTA,
|
|
577
|
+
description: 'Zigbee 10W Floodlight RGB+CCT 12V Low Voltage (pro)',
|
|
578
|
+
extend: gledoptoExtend.light_onoff_brightness_colortemp_color({colorTempRange: [158, 495]}),
|
|
579
|
+
},
|
|
571
580
|
{
|
|
572
581
|
zigbeeModel: ['GL-FL-005TZ'],
|
|
573
582
|
model: 'GL-FL-005TZ',
|
package/devices/heiman.js
CHANGED
|
@@ -398,7 +398,7 @@ module.exports = [
|
|
|
398
398
|
exposes: [e.temperature(), e.humidity(), e.battery()],
|
|
399
399
|
},
|
|
400
400
|
{
|
|
401
|
-
fingerprint: [{modelID: 'SOS-EM', manufacturerName: 'HEIMAN'}],
|
|
401
|
+
fingerprint: [{modelID: 'SOS-EM', manufacturerName: 'HEIMAN'}, {modelID: 'SOS-EF-3.0', manufacturerName: 'HEIMAN'}],
|
|
402
402
|
model: 'HS1EB/HS1EB-E',
|
|
403
403
|
vendor: 'HEIMAN',
|
|
404
404
|
description: 'Smart emergency button',
|
package/devices/prolight.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
const extend = require('../lib/extend');
|
|
2
|
+
const fz = require('../converters/fromZigbee');
|
|
3
|
+
const exposes = require('../lib/exposes');
|
|
4
|
+
const e = exposes.presets;
|
|
2
5
|
|
|
3
6
|
module.exports = [
|
|
4
7
|
{
|
|
@@ -29,4 +32,13 @@ module.exports = [
|
|
|
29
32
|
description: 'GU10 white and colour spot',
|
|
30
33
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 555]}),
|
|
31
34
|
},
|
|
35
|
+
{
|
|
36
|
+
zigbeeModel: ['PROLIGHT REMOTE CONTROL'],
|
|
37
|
+
model: 'PROLIGHT_REMOTE_CONTROL',
|
|
38
|
+
vendor: 'Prolight',
|
|
39
|
+
description: 'Remote control',
|
|
40
|
+
toZigbee: [],
|
|
41
|
+
fromZigbee: [fz.command_on, fz.command_off, fz.command_move_to_level],
|
|
42
|
+
exposes: [e.action(['on', 'off', 'brightness_move_up', 'brightness_move_down'])],
|
|
43
|
+
},
|
|
32
44
|
];
|
|
@@ -10,11 +10,12 @@ module.exports = [
|
|
|
10
10
|
vendor: 'Titan Products',
|
|
11
11
|
description: 'Room CO2, humidity & temperature sensor',
|
|
12
12
|
fromZigbee: [fz.battery, fz.humidity, fz.temperature, fz.co2],
|
|
13
|
-
exposes: [e.
|
|
13
|
+
exposes: [e.battery_voltage(), e.battery_low(), e.humidity(), e.temperature(), e.co2()],
|
|
14
14
|
toZigbee: [],
|
|
15
15
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
16
16
|
const endpoint = device.getEndpoint(1);
|
|
17
17
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'msTemperatureMeasurement', 'msCO2']);
|
|
18
|
+
await endpoint.read('genPowerCfg', ['batteryVoltage']);
|
|
18
19
|
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['msRelativeHumidity']);
|
|
19
20
|
},
|
|
20
21
|
},
|
package/devices/tuya.js
CHANGED
|
@@ -175,7 +175,8 @@ module.exports = [
|
|
|
175
175
|
{modelID: 'TS0505B', manufacturerName: '_TZ3000_cmaky9gq'},
|
|
176
176
|
{modelID: 'TS0505B', manufacturerName: '_TZ3000_tza2vjxx'},
|
|
177
177
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_k1pe6ibm'},
|
|
178
|
-
{modelID: 'TS0505B', manufacturerName: '_TZ3210_bfwvfyx1'}
|
|
178
|
+
{modelID: 'TS0505B', manufacturerName: '_TZ3210_bfwvfyx1'},
|
|
179
|
+
{modelID: 'TS0505B', manufacturerName: '_TZ3210_jd3z4yig'}],
|
|
179
180
|
model: 'TS0505B',
|
|
180
181
|
vendor: 'TuYa',
|
|
181
182
|
description: 'Zigbee RGB+CCT light',
|
|
@@ -204,6 +205,7 @@ module.exports = [
|
|
|
204
205
|
fingerprint: [{modelID: 'TS0504B', manufacturerName: '_TZ3000_ukuvyhaa'},
|
|
205
206
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_bfvybixd'},
|
|
206
207
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_sroezl0s'},
|
|
208
|
+
{modelID: 'TS0504B', manufacturerName: '_TZ3210_i2i0bsnv'},
|
|
207
209
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_1elppmba'}],
|
|
208
210
|
model: 'TS0504B',
|
|
209
211
|
vendor: 'TuYa',
|
|
@@ -369,7 +371,8 @@ module.exports = [
|
|
|
369
371
|
{vendor: 'BSEED', model: 'Zigbee Socket'}],
|
|
370
372
|
},
|
|
371
373
|
{
|
|
372
|
-
fingerprint: [{modelID: 'isltm67\u0000', manufacturerName: '_TYST11_pisltm67'}
|
|
374
|
+
fingerprint: [{modelID: 'isltm67\u0000', manufacturerName: '_TYST11_pisltm67'},
|
|
375
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_pisltm67'}],
|
|
373
376
|
model: 'S-LUX-ZB',
|
|
374
377
|
vendor: 'TuYa',
|
|
375
378
|
description: 'Light sensor',
|
|
@@ -379,7 +382,13 @@ module.exports = [
|
|
|
379
382
|
const endpoint = device.getEndpoint(1);
|
|
380
383
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
|
|
381
384
|
},
|
|
382
|
-
exposes:
|
|
385
|
+
exposes: (device, options) => {
|
|
386
|
+
if (device && device.manufacturerName === '_TZE200_pisltm67') {
|
|
387
|
+
return [e.illuminance_lux(), e.linkquality()];
|
|
388
|
+
} else {
|
|
389
|
+
return [e.battery(), e.illuminance_lux(), e.battery_low(), e.linkquality()];
|
|
390
|
+
}
|
|
391
|
+
},
|
|
383
392
|
},
|
|
384
393
|
{
|
|
385
394
|
zigbeeModel: ['TS130F'],
|
package/lib/exposes.js
CHANGED
|
@@ -501,6 +501,7 @@ module.exports = {
|
|
|
501
501
|
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).`),
|
|
502
502
|
},
|
|
503
503
|
presets: {
|
|
504
|
+
ac_frequency: () => new Numeric('ac_frequency', access.STATE).withUnit('Hz').withDescription('Measured electrical AC frequency'),
|
|
504
505
|
action: (values) => new Enum('action', access.STATE, values).withDescription('Triggered action (e.g. a button click)'),
|
|
505
506
|
angle: (name) => new Numeric(name, access.STATE).withValueMin(-360).withValueMax(360),
|
|
506
507
|
angle_axis: (name) => new Numeric(name, access.STATE).withValueMin(-90).withValueMax(90),
|
package/lib/reporting.js
CHANGED
|
@@ -19,9 +19,10 @@ function payload(attribute, min, max, change, overrides) {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
async function readEletricalMeasurementMultiplierDivisors(endpoint) {
|
|
22
|
-
// Split into
|
|
22
|
+
// Split into three chunks, some devices fail to respond when reading too much attributes at once.
|
|
23
23
|
await endpoint.read('haElectricalMeasurement', ['acVoltageMultiplier', 'acVoltageDivisor', 'acCurrentMultiplier']);
|
|
24
24
|
await endpoint.read('haElectricalMeasurement', ['acCurrentDivisor', 'acPowerMultiplier', 'acPowerDivisor']);
|
|
25
|
+
await endpoint.read('haElectricalMeasurement', ['acFrequencyDivisor', 'acFrequencyMultiplier']);
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
async function readMeteringMultiplierDivisor(endpoint) {
|
|
@@ -199,4 +200,8 @@ module.exports = {
|
|
|
199
200
|
const p = payload('measuredValue', 10, repInterval.HOUR, 100, overrides);
|
|
200
201
|
await endpoint.configureReporting('msSoilMoisture', p);
|
|
201
202
|
},
|
|
203
|
+
acFrequency: async (endpoint, overrides) => {
|
|
204
|
+
const p = payload('acFrequency', 5, repInterval.MINUTES_5, 10, overrides);
|
|
205
|
+
await endpoint.configureReporting('haElectricalMeasurement', p);
|
|
206
|
+
},
|
|
202
207
|
};
|
package/npm-shrinkwrap.json
CHANGED