zigbee-herdsman-converters 14.0.575 → 14.0.576
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/dresden_elektronik.js +8 -0
- package/devices/heiman.js +17 -0
- package/devices/kurvia.js +21 -0
- package/devices/led_trading.js +36 -0
- package/devices/osram.js +1 -1
- package/devices/tuya.js +17 -3
- package/lib/ota/ubisys.js +2 -2
- package/lib/reporting.js +4 -0
- package/package.json +1 -1
|
@@ -23,4 +23,12 @@ module.exports = [
|
|
|
23
23
|
description: 'ZigBee Light Link wireless electronic ballast color temperature',
|
|
24
24
|
extend: extend.light_onoff_brightness_colortemp(),
|
|
25
25
|
},
|
|
26
|
+
{
|
|
27
|
+
zigbeeModel: ['Kobold'],
|
|
28
|
+
model: 'BN-600110',
|
|
29
|
+
vendor: 'Dresden Elektronik',
|
|
30
|
+
description: 'Zigbee 3.0 dimm actuator',
|
|
31
|
+
extend: extend.light_onoff_brightness(),
|
|
32
|
+
ota: ota.zigbeeOTA,
|
|
33
|
+
},
|
|
26
34
|
];
|
package/devices/heiman.js
CHANGED
|
@@ -699,4 +699,21 @@ module.exports = [
|
|
|
699
699
|
},
|
|
700
700
|
exposes: [e.battery(), e.action(['pressed']), e.battery_low(), e.tamper()],
|
|
701
701
|
},
|
|
702
|
+
{
|
|
703
|
+
zigbeeModel: ['HS3AQ-EFA-3.0'],
|
|
704
|
+
model: 'HS3AQ',
|
|
705
|
+
vendor: 'HEIMAN',
|
|
706
|
+
description: 'Smart air quality monitor',
|
|
707
|
+
fromZigbee: [fz.co2, fz.humidity, fz.battery, fz.temperature],
|
|
708
|
+
toZigbee: [],
|
|
709
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
710
|
+
const endpoint = device.getEndpoint(1);
|
|
711
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['msRelativeHumidity', 'genPowerCfg', 'msTemperatureMeasurement', 'msCO2']);
|
|
712
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
713
|
+
await reporting.temperature(endpoint, {min: 1, max: constants.repInterval.MINUTES_5, change: 10}); // 0.1 degree change
|
|
714
|
+
await reporting.humidity(endpoint, {min: 1, max: constants.repInterval.MINUTES_5, change: 10}); // 0.1 % change
|
|
715
|
+
await reporting.co2(endpoint, {min: 5, max: constants.repInterval.MINUTES_5, change: 0.00005}); // 50 ppm change
|
|
716
|
+
},
|
|
717
|
+
exposes: [e.co2(), e.battery(), e.humidity(), e.temperature()],
|
|
718
|
+
},
|
|
702
719
|
];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const tz = require('../converters/toZigbee');
|
|
2
|
+
const exposes = require('../lib/exposes');
|
|
3
|
+
const extend = require('../lib/extend');
|
|
4
|
+
const e = exposes.presets;
|
|
5
|
+
|
|
6
|
+
const extendData = extend.light_onoff_brightness_colortemp_color({colorTempRange: [250, 454]});
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
module.exports = [
|
|
10
|
+
{
|
|
11
|
+
zigbeeModel: ['ZB-CL01'],
|
|
12
|
+
model: 'ZB-CL01',
|
|
13
|
+
vendor: 'KURVIA',
|
|
14
|
+
description: 'GU10 GRBWC built from AliExpress',
|
|
15
|
+
exposes: extendData.exposes.concat(e.power_on_behavior()),
|
|
16
|
+
toZigbee: [tz.on_off].concat(extendData.toZigbee),
|
|
17
|
+
fromZigbee: extendData.fromZigbee,
|
|
18
|
+
meta: {applyRedFix: true, enhancedHue: false},
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
|
package/devices/led_trading.js
CHANGED
|
@@ -21,6 +21,31 @@ const fzLocal = {
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
|
+
led_trading_9125: {
|
|
25
|
+
cluster: 'greenPower',
|
|
26
|
+
type: ['commandNotification', 'commandCommisioningNotification'],
|
|
27
|
+
convert: (model, msg, publish, options, meta) => {
|
|
28
|
+
const commandID = msg.data.commandID;
|
|
29
|
+
if (utils.hasAlreadyProcessedMessage(msg, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`)) return;
|
|
30
|
+
if (commandID === 104) return; // Skip commisioning command.
|
|
31
|
+
|
|
32
|
+
// Button 1: A0 (top left)
|
|
33
|
+
// Button 2: A1 (bottom left)
|
|
34
|
+
// Button 3: B0 (top right)
|
|
35
|
+
// Button 4: B1 (bottom right)
|
|
36
|
+
const lookup = {
|
|
37
|
+
0x10: 'press_1', 0x14: 'release_1', 0x11: 'press_2', 0x15: 'release_2', 0x13: 'press_3', 0x17: 'release_3',
|
|
38
|
+
0x12: 'press_4', 0x16: 'release_4', 0x64: 'press_1_and_3', 0x65: 'release_1_and_3', 0x62: 'press_2_and_4',
|
|
39
|
+
0x63: 'release_2_and_4',
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
if (!lookup.hasOwnProperty(commandID)) {
|
|
43
|
+
meta.logger.error(`LED Trading 9125: missing command '${commandID}'`);
|
|
44
|
+
} else {
|
|
45
|
+
return {action: lookup[commandID]};
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
},
|
|
24
49
|
};
|
|
25
50
|
|
|
26
51
|
module.exports = [
|
|
@@ -66,4 +91,15 @@ module.exports = [
|
|
|
66
91
|
await reporting.bind(device.getEndpoint(5), coordinatorEndpoint, ['genOnOff']);
|
|
67
92
|
},
|
|
68
93
|
},
|
|
94
|
+
{
|
|
95
|
+
fingerprint: [{modelID: 'GreenPower_2', ieeeAddr: /^0x00000000017.....$/, manufId: null}],
|
|
96
|
+
model: '9125',
|
|
97
|
+
vendor: 'LED Trading',
|
|
98
|
+
description: 'FOH smart switch',
|
|
99
|
+
whiteLabel: [{vendor: 'Sunricher', model: 'SR-ZGP2801K4-FOH-E'}],
|
|
100
|
+
fromZigbee: [fzLocal.led_trading_9125],
|
|
101
|
+
toZigbee: [],
|
|
102
|
+
exposes: [e.action(['press_1', 'release_1', 'press_2', 'release_2', 'press_3', 'release_3', 'press_4', 'release_4',
|
|
103
|
+
'press_1_and_3', 'release_1_and_3', 'press_2_and_4', 'release_2_and_4'])],
|
|
104
|
+
},
|
|
69
105
|
];
|
package/devices/osram.js
CHANGED
|
@@ -83,7 +83,7 @@ module.exports = [
|
|
|
83
83
|
model: 'AC03642',
|
|
84
84
|
vendor: 'OSRAM',
|
|
85
85
|
description: 'SMART+ CLASSIC A 60 TW',
|
|
86
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp(),
|
|
86
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
87
87
|
ota: ota.ledvance,
|
|
88
88
|
},
|
|
89
89
|
{
|
package/devices/tuya.js
CHANGED
|
@@ -908,8 +908,7 @@ module.exports = [
|
|
|
908
908
|
},
|
|
909
909
|
{
|
|
910
910
|
fingerprint: [{modelID: 'TS0215A', manufacturerName: '_TZ3000_4fsgukof'},
|
|
911
|
-
{modelID: 'TS0215A', manufacturerName: '_TZ3000_wr2ucaj9'},
|
|
912
|
-
{modelID: 'TS0215A', manufacturerName: '_TZ3000_tj4pwzzm'}],
|
|
911
|
+
{modelID: 'TS0215A', manufacturerName: '_TZ3000_wr2ucaj9'}],
|
|
913
912
|
model: 'TS0215A_sos',
|
|
914
913
|
vendor: 'TuYa',
|
|
915
914
|
description: 'SOS button',
|
|
@@ -919,6 +918,7 @@ module.exports = [
|
|
|
919
918
|
},
|
|
920
919
|
{
|
|
921
920
|
fingerprint: [{modelID: 'TS0215A', manufacturerName: '_TZ3000_p6ju8myv'},
|
|
921
|
+
{modelID: 'TS0215A', manufacturerName: '_TZ3000_tj4pwzzm'},
|
|
922
922
|
{modelID: 'TS0215A', manufacturerName: '_TZ3000_fsiepnrh'}],
|
|
923
923
|
model: 'TS0215A_remote',
|
|
924
924
|
vendor: 'TuYa',
|
|
@@ -1026,7 +1026,6 @@ module.exports = [
|
|
|
1026
1026
|
fingerprint: [
|
|
1027
1027
|
{modelID: 'TS0201', manufacturerName: '_TZ3000_bguser20'},
|
|
1028
1028
|
{modelID: 'TS0201', manufacturerName: '_TZ3000_fllyghyj'},
|
|
1029
|
-
{modelID: 'TS0201', manufacturerName: '_TZ3000_dowj6gyi'},
|
|
1030
1029
|
{modelID: 'TS0201', manufacturerName: '_TZ3000_yd2e749y'},
|
|
1031
1030
|
{modelID: 'TS0201', manufacturerName: '_TZ3000_6uzkisv2'},
|
|
1032
1031
|
],
|
|
@@ -1041,6 +1040,21 @@ module.exports = [
|
|
|
1041
1040
|
await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
1042
1041
|
},
|
|
1043
1042
|
},
|
|
1043
|
+
{
|
|
1044
|
+
fingerprint: [
|
|
1045
|
+
{modelID: 'TS0201', manufacturerName: '_TZ3000_dowj6gyi'},
|
|
1046
|
+
],
|
|
1047
|
+
model: 'IH-K009',
|
|
1048
|
+
vendor: 'TuYa',
|
|
1049
|
+
description: 'Temperature & humidity sensor',
|
|
1050
|
+
fromZigbee: [fzLocal.TS0201_battery, fz.temperature, fz.humidity],
|
|
1051
|
+
toZigbee: [],
|
|
1052
|
+
exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
|
|
1053
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1054
|
+
const endpoint = device.getEndpoint(1);
|
|
1055
|
+
await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
1056
|
+
},
|
|
1057
|
+
},
|
|
1044
1058
|
{
|
|
1045
1059
|
fingerprint: [{modelID: 'SM0201', manufacturerName: '_TYZB01_cbiezpds'}],
|
|
1046
1060
|
model: 'SM0201',
|
package/lib/ota/ubisys.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const firmwareHtmlPageUrl = '
|
|
2
|
-
const imageRegex = /
|
|
1
|
+
const firmwareHtmlPageUrl = 'http://fwu.ubisys.de/smarthome/OTA/release/index';
|
|
2
|
+
const imageRegex = /10F2-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{8})\S*ota1?\.zigbee/gi;
|
|
3
3
|
const assert = require('assert');
|
|
4
4
|
const url = require('url');
|
|
5
5
|
const common = require('./common');
|
package/lib/reporting.js
CHANGED
|
@@ -94,6 +94,10 @@ module.exports = {
|
|
|
94
94
|
const p = payload('measuredValue', 10, repInterval.HOUR, 100, overrides);
|
|
95
95
|
await endpoint.configureReporting('msTemperatureMeasurement', p);
|
|
96
96
|
},
|
|
97
|
+
co2: async (endpoint, overrides) => {
|
|
98
|
+
const p = payload('measuredValue', 10, repInterval.HOUR, 1, overrides);
|
|
99
|
+
await endpoint.configureReporting('msCO2', p);
|
|
100
|
+
},
|
|
97
101
|
deviceTemperature: async (endpoint, overrides) => {
|
|
98
102
|
const p = payload('currentTemperature', 300, repInterval.HOUR, 1, overrides);
|
|
99
103
|
await endpoint.configureReporting('genDeviceTempCfg', p);
|