zigbee-herdsman-converters 14.0.579 → 14.0.582
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 +3 -3
- package/devices/adeo.js +14 -0
- package/devices/halemeier.js +11 -0
- package/devices/home_control_as.js +7 -3
- package/devices/lellki.js +1 -0
- package/devices/orvibo.js +25 -0
- package/devices/philips.js +23 -2
- package/devices/profalux.js +1 -0
- package/devices/sengled.js +9 -1
- package/devices/tuya.js +7 -3
- package/devices/vimar.js +11 -0
- package/lib/ota/ubisys.js +9 -6
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -1094,9 +1094,9 @@ const converters = {
|
|
|
1094
1094
|
cluster: 'genScenes',
|
|
1095
1095
|
type: 'commandStore',
|
|
1096
1096
|
convert: (model, msg, publish, options, meta) => {
|
|
1097
|
-
if (
|
|
1098
|
-
const payload = {action:
|
|
1099
|
-
|
|
1097
|
+
if (hasAlreadyProcessedMessage(msg)) return;
|
|
1098
|
+
const payload = {action: postfixWithEndpointName(`store_${msg.data.sceneid}`, msg, model, meta)};
|
|
1099
|
+
addActionGroup(payload, msg, model);
|
|
1100
1100
|
return payload;
|
|
1101
1101
|
},
|
|
1102
1102
|
},
|
package/devices/adeo.js
CHANGED
|
@@ -36,6 +36,13 @@ module.exports = [
|
|
|
36
36
|
description: 'ENKI LEXMAN E27 LED white',
|
|
37
37
|
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 454]}),
|
|
38
38
|
},
|
|
39
|
+
{
|
|
40
|
+
zigbeeModel: ['ZBEK-6'],
|
|
41
|
+
model: 'IG-CDZB2AG009RA-MZN-01',
|
|
42
|
+
vendor: 'ADEO',
|
|
43
|
+
description: 'ENKI LEXMAN E27 Led white bulb',
|
|
44
|
+
extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 454]}),
|
|
45
|
+
},
|
|
39
46
|
{
|
|
40
47
|
zigbeeModel: ['ZBEK-4'],
|
|
41
48
|
model: 'IM-CDZDGAAA0005KA_MAN',
|
|
@@ -57,6 +64,13 @@ module.exports = [
|
|
|
57
64
|
description: 'ENKI LEXMAN E27 LED white',
|
|
58
65
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
59
66
|
},
|
|
67
|
+
{
|
|
68
|
+
zigbeeModel: ['ZBEK-14'],
|
|
69
|
+
model: 'IC-CDZFB2AC005HA-MZN',
|
|
70
|
+
vendor: 'ADEO',
|
|
71
|
+
description: 'ENKI LEXMAN E14 LED white',
|
|
72
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 454]}),
|
|
73
|
+
},
|
|
60
74
|
{
|
|
61
75
|
zigbeeModel: ['ZBEK-5'],
|
|
62
76
|
model: 'IST-CDZFB2AS007NA-MZN-01',
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
const exposes = require('../lib/exposes');
|
|
2
|
-
const fz =
|
|
2
|
+
const fz = require('../converters/fromZigbee');
|
|
3
3
|
const tz = require('../converters/toZigbee');
|
|
4
4
|
const reporting = require('../lib/reporting');
|
|
5
5
|
const e = exposes.presets;
|
|
6
|
+
const ota = require('../lib/ota');
|
|
6
7
|
|
|
7
8
|
module.exports = [
|
|
8
9
|
{
|
|
@@ -11,13 +12,16 @@ module.exports = [
|
|
|
11
12
|
vendor: 'Home Control AS',
|
|
12
13
|
description: 'Heimgard (Wattle) door lock pro',
|
|
13
14
|
fromZigbee: [fz.lock, fz.battery],
|
|
14
|
-
toZigbee: [tz.lock],
|
|
15
|
+
toZigbee: [tz.lock, tz.lock_auto_relock_time, tz.lock_sound_volume],
|
|
16
|
+
ota: ota.zigbeeOTA,
|
|
15
17
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
16
18
|
const endpoint = device.getEndpoint(1);
|
|
17
19
|
await reporting.bind(endpoint, coordinatorEndpoint, ['closuresDoorLock', 'genPowerCfg']);
|
|
18
20
|
await reporting.lockState(endpoint);
|
|
19
21
|
await reporting.batteryPercentageRemaining(endpoint);
|
|
22
|
+
await endpoint.read('closuresDoorLock', ['lockState', 'soundVolume']);
|
|
20
23
|
},
|
|
21
|
-
exposes: [
|
|
24
|
+
exposes: [
|
|
25
|
+
e.lock(), e.battery(), e.auto_relock_time().withValueMin(0).withValueMax(3600), e.sound_volume()],
|
|
22
26
|
},
|
|
23
27
|
];
|
package/devices/lellki.js
CHANGED
|
@@ -115,6 +115,7 @@ module.exports = [
|
|
|
115
115
|
toZigbee: [tz.on_off, tz.tuya_switch_power_outage_memory],
|
|
116
116
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
117
117
|
const endpoint = device.getEndpoint(1);
|
|
118
|
+
await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
118
119
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
119
120
|
endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {acCurrentDivisor: 1000, acCurrentMultiplier: 1});
|
|
120
121
|
endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 100, multiplier: 1});
|
package/devices/orvibo.js
CHANGED
|
@@ -5,7 +5,32 @@ const reporting = require('../lib/reporting');
|
|
|
5
5
|
const extend = require('../lib/extend');
|
|
6
6
|
const e = exposes.presets;
|
|
7
7
|
|
|
8
|
+
const tzLocal = {
|
|
9
|
+
DD10Z_brightness: {
|
|
10
|
+
key: ['brightness'],
|
|
11
|
+
options: [exposes.options.transition()],
|
|
12
|
+
convertSet: async (entity, key, value, meta) => {
|
|
13
|
+
// Device doesn't support moveToLevelWithOnOff therefore this converter is needed.
|
|
14
|
+
await entity.command('genLevelCtrl', 'moveToLevel', {level: Number(value), transtime: 0}, {disableDefaultResponse: true});
|
|
15
|
+
return {state: {brightness: value}};
|
|
16
|
+
},
|
|
17
|
+
convertGet: async (entity, key, meta) => {
|
|
18
|
+
await entity.read('genLevelCtrl', ['currentLevel']);
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
8
23
|
module.exports = [
|
|
24
|
+
{
|
|
25
|
+
zigbeeModel: ['ccb9f56837ab41dcad366fb1452096b6'],
|
|
26
|
+
model: 'DD10Z',
|
|
27
|
+
vendor: 'ORVIBO',
|
|
28
|
+
description: 'Smart spotlight',
|
|
29
|
+
// https://github.com/Koenkk/zigbee2mqtt/issues/13123#issuecomment-1198793749
|
|
30
|
+
meta: {disableDefaultResponse: true},
|
|
31
|
+
toZigbee: [tz.on_off, tzLocal.DD10Z_brightness, tz.light_colortemp, tz.effect],
|
|
32
|
+
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370], disableColorTempStartup: true}),
|
|
33
|
+
},
|
|
9
34
|
{
|
|
10
35
|
zigbeeModel: ['4a33f5ea766a4c96a962b371ffde9943'],
|
|
11
36
|
model: 'DS20Z07B',
|
package/devices/philips.js
CHANGED
|
@@ -1469,6 +1469,13 @@ module.exports = [
|
|
|
1469
1469
|
description: 'Hue White and color ambiance Gradient Signe table lamp (white)',
|
|
1470
1470
|
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
1471
1471
|
},
|
|
1472
|
+
{
|
|
1473
|
+
zigbeeModel: ['915005987001'],
|
|
1474
|
+
model: '915005987001',
|
|
1475
|
+
vendor: 'Philips',
|
|
1476
|
+
description: 'Hue White and color ambiance Gradient Signe table lamp (black)',
|
|
1477
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
1478
|
+
},
|
|
1472
1479
|
{
|
|
1473
1480
|
zigbeeModel: ['5060730P7_01', '5060730P7_02', '5060730P7_03', '5060730P7_04', '5060730P7_05'],
|
|
1474
1481
|
model: '5060730P7',
|
|
@@ -1859,7 +1866,7 @@ module.exports = [
|
|
|
1859
1866
|
ota: ota.zigbeeOTA,
|
|
1860
1867
|
},
|
|
1861
1868
|
{
|
|
1862
|
-
zigbeeModel: ['LOM002', 'LOM004'],
|
|
1869
|
+
zigbeeModel: ['LOM002', 'LOM004', 'LOM010'],
|
|
1863
1870
|
model: '046677552343',
|
|
1864
1871
|
vendor: 'Philips',
|
|
1865
1872
|
description: 'Hue smart plug bluetooth',
|
|
@@ -2096,6 +2103,20 @@ module.exports = [
|
|
|
2096
2103
|
description: 'Hue White Ambinance G25 E26 Edison Filament Globe',
|
|
2097
2104
|
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [222, 454]}),
|
|
2098
2105
|
},
|
|
2106
|
+
{
|
|
2107
|
+
zigbeeModel: ['LWE005'],
|
|
2108
|
+
model: '9290024796',
|
|
2109
|
+
vendor: 'Philips',
|
|
2110
|
+
description: 'Hue Filament White E12',
|
|
2111
|
+
extend: hueExtend.light_onoff_brightness(),
|
|
2112
|
+
},
|
|
2113
|
+
{
|
|
2114
|
+
zigbeeModel: ['LTA007'],
|
|
2115
|
+
model: '9290024783',
|
|
2116
|
+
vendor: 'Philips',
|
|
2117
|
+
description: 'Hue Filament White Ambiance A60/E27 Bluetooth',
|
|
2118
|
+
extend: hueExtend.light_onoff_brightness_colortemp({colorTempRange: [222, 454]}),
|
|
2119
|
+
},
|
|
2099
2120
|
{
|
|
2100
2121
|
zigbeeModel: ['LWV002'],
|
|
2101
2122
|
model: '046677551780',
|
|
@@ -2139,7 +2160,7 @@ module.exports = [
|
|
|
2139
2160
|
extend: hueExtend.light_onoff_brightness_colortemp(),
|
|
2140
2161
|
},
|
|
2141
2162
|
{
|
|
2142
|
-
zigbeeModel: ['929003047101', '929003045101_03'],
|
|
2163
|
+
zigbeeModel: ['929003047101', '929003045101_03', '929003045101_01', '929003045101_02'],
|
|
2143
2164
|
model: '929003047101',
|
|
2144
2165
|
vendor: 'Philips',
|
|
2145
2166
|
description: 'Hue White ambiance Milliskin (round)',
|
package/devices/profalux.js
CHANGED
|
@@ -17,6 +17,7 @@ module.exports = [
|
|
|
17
17
|
exposes: [],
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
+
zigbeeModel: ['MOT-C1Z06C\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'],
|
|
20
21
|
fingerprint: [{manufId: 4368, endpoints: [{ID: 1, profileID: 260, deviceID: 512,
|
|
21
22
|
inputClusters: [0, 3, 4, 5, 6, 8, 10, 21, 256, 64544, 64545], outputClusters: [3, 64544]}]}],
|
|
22
23
|
model: 'NSAV061',
|
package/devices/sengled.js
CHANGED
|
@@ -137,13 +137,21 @@ module.exports = [
|
|
|
137
137
|
model: 'E11-N1EA',
|
|
138
138
|
vendor: 'Sengled',
|
|
139
139
|
description: 'Element plus color (A19)',
|
|
140
|
-
|
|
140
|
+
fromZigbee: extend.light_onoff_brightness().fromZigbee.concat([fz.metering]),
|
|
141
|
+
toZigbee: extend.light_onoff_brightness().toZigbee,
|
|
141
142
|
ota: ota.zigbeeOTA,
|
|
142
143
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
143
144
|
await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
|
|
144
145
|
device.powerSource = 'Mains (single phase)';
|
|
145
146
|
device.save();
|
|
147
|
+
|
|
148
|
+
const endpoint = device.getEndpoint(1);
|
|
149
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'seMetering']);
|
|
150
|
+
await reporting.readMeteringMultiplierDivisor(endpoint);
|
|
151
|
+
await reporting.currentSummDelivered(endpoint);
|
|
152
|
+
await reporting.instantaneousDemand(endpoint);
|
|
146
153
|
},
|
|
154
|
+
exposes: extend.light_onoff_brightness().exposes.concat([e.power(), e.energy()]),
|
|
147
155
|
},
|
|
148
156
|
{
|
|
149
157
|
zigbeeModel: ['E11-U2E'],
|
package/devices/tuya.js
CHANGED
|
@@ -438,7 +438,8 @@ module.exports = [
|
|
|
438
438
|
{modelID: 'TS0001', manufacturerName: '_TZ3000_rmjr4ufz'},
|
|
439
439
|
{modelID: 'TS0001', manufacturerName: '_TZ3000_v7gnj3ad'},
|
|
440
440
|
{modelID: 'TS0001', manufacturerName: '_TZ3000_mx3vgyea'},
|
|
441
|
-
{modelID: 'TS0001', manufacturerName: '_TZ3000_qsp2pwtf'}
|
|
441
|
+
{modelID: 'TS0001', manufacturerName: '_TZ3000_qsp2pwtf'},
|
|
442
|
+
{modelID: 'TS0001', manufacturerName: '_TZ3000_46t1rvdu'}],
|
|
442
443
|
model: 'WHD02',
|
|
443
444
|
vendor: 'TuYa',
|
|
444
445
|
whiteLabel: [{vendor: 'TuYa', model: 'iHSW02'}],
|
|
@@ -558,7 +559,8 @@ module.exports = [
|
|
|
558
559
|
{modelID: 'TS0503B', manufacturerName: '_TZ3210_a5fxguxr'},
|
|
559
560
|
{modelID: 'TS0503B', manufacturerName: '_TZ3210_778drfdt'},
|
|
560
561
|
{modelID: 'TS0503B', manufacturerName: '_TZ3000_g5xawfcq'},
|
|
561
|
-
{modelID: 'TS0503B', manufacturerName: '_TZ3210_trm3l2aw'}
|
|
562
|
+
{modelID: 'TS0503B', manufacturerName: '_TZ3210_trm3l2aw'},
|
|
563
|
+
{modelID: 'TS0503B', manufacturerName: '_TZ3210_odlghna1'}],
|
|
562
564
|
model: 'TS0503B',
|
|
563
565
|
vendor: 'TuYa',
|
|
564
566
|
description: 'Zigbee RGB light',
|
|
@@ -594,7 +596,8 @@ module.exports = [
|
|
|
594
596
|
{modelID: 'TS0501B', manufacturerName: '_TZ3210_grnwgegn'},
|
|
595
597
|
{modelID: 'TS0501B', manufacturerName: '_TZ3210_nehayyhx'},
|
|
596
598
|
{modelID: 'TS0501B', manufacturerName: '_TZ3210_wuheofsg'},
|
|
597
|
-
{modelID: 'TS0501B', manufacturerName: '_TZ3210_e5t9bfdv'}
|
|
599
|
+
{modelID: 'TS0501B', manufacturerName: '_TZ3210_e5t9bfdv'},
|
|
600
|
+
{modelID: 'TS0501B', manufacturerName: '_TZ3210_19qb27da'}],
|
|
598
601
|
model: 'TS0501B',
|
|
599
602
|
description: 'Zigbee light',
|
|
600
603
|
vendor: 'TuYa',
|
|
@@ -627,6 +630,7 @@ module.exports = [
|
|
|
627
630
|
{modelID: 'TS0202', manufacturerName: '_TZ3000_tiwq83wk'},
|
|
628
631
|
{modelID: 'TS0202', manufacturerName: '_TZ3000_ykwcwxmz'},
|
|
629
632
|
{modelID: 'TS0202', manufacturerName: '_TZ3000_hgu1dlak'},
|
|
633
|
+
{modelID: 'TS0202', manufacturerName: '_TZ3000_h4wnrtck'},
|
|
630
634
|
{modelID: 'WHD02', manufacturerName: '_TZ3000_hktqahrq'}],
|
|
631
635
|
model: 'TS0202',
|
|
632
636
|
vendor: 'TuYa',
|
package/devices/vimar.js
CHANGED
|
@@ -6,6 +6,17 @@ const extend = require('../lib/extend');
|
|
|
6
6
|
const e = exposes.presets;
|
|
7
7
|
|
|
8
8
|
module.exports = [
|
|
9
|
+
{
|
|
10
|
+
zigbeeModel: ['On_Off_Switch_Module_v1.0'],
|
|
11
|
+
model: '03981',
|
|
12
|
+
vendor: 'Vimar',
|
|
13
|
+
description: 'IoT connected relay module',
|
|
14
|
+
extend: extend.switch(),
|
|
15
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
16
|
+
const endpoint = device.getEndpoint(10);
|
|
17
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
|
|
18
|
+
},
|
|
19
|
+
},
|
|
9
20
|
{
|
|
10
21
|
zigbeeModel: ['2_Way_Switch_v1.0', 'On_Off_Switch_v1.0'],
|
|
11
22
|
model: '14592.0',
|
package/lib/ota/ubisys.js
CHANGED
|
@@ -21,22 +21,25 @@ async function getImageMeta(current, logger, device) {
|
|
|
21
21
|
|
|
22
22
|
imageRegex.lastIndex = 0; // reset (global) regex for next exec to match from the beginning again
|
|
23
23
|
let imageMatch = imageRegex.exec(firmwarePageHtml);
|
|
24
|
+
let highestMatch = null;
|
|
24
25
|
while (imageMatch != null) {
|
|
25
26
|
logger.debug(`OTA ubisys: image found: ${imageMatch[0]}`);
|
|
26
27
|
if (parseInt(imageMatch[1], 16) === imageType &&
|
|
27
28
|
parseInt(imageMatch[2], 16) <= hardwareVersion && hardwareVersion <= parseInt(imageMatch[3], 16)) {
|
|
28
|
-
|
|
29
|
+
if (highestMatch === null || parseInt(highestMatch[4], 16) < parseInt(imageMatch[4], 16)) {
|
|
30
|
+
highestMatch = imageMatch;
|
|
31
|
+
}
|
|
29
32
|
}
|
|
30
33
|
imageMatch = imageRegex.exec(firmwarePageHtml);
|
|
31
34
|
}
|
|
32
|
-
assert(
|
|
35
|
+
assert(highestMatch !== null,
|
|
33
36
|
`No image available for imageType '0x${imageType.toString(16)}' with hardware version ${hardwareVersion}`);
|
|
34
37
|
|
|
35
38
|
return {
|
|
36
|
-
hardwareVersionMin: parseInt(
|
|
37
|
-
hardwareVersionMax: parseInt(
|
|
38
|
-
fileVersion: parseInt(
|
|
39
|
-
url: url.resolve(firmwareHtmlPageUrl,
|
|
39
|
+
hardwareVersionMin: parseInt(highestMatch[2], 16),
|
|
40
|
+
hardwareVersionMax: parseInt(highestMatch[3], 16),
|
|
41
|
+
fileVersion: parseInt(highestMatch[4], 16),
|
|
42
|
+
url: url.resolve(firmwareHtmlPageUrl, highestMatch[0]),
|
|
40
43
|
};
|
|
41
44
|
}
|
|
42
45
|
|