zigbee-herdsman-converters 25.2.0 → 25.4.0
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/CHANGELOG.md +37 -0
- package/dist/converters/fromZigbee.d.ts.map +1 -1
- package/dist/converters/fromZigbee.js +5 -3
- package/dist/converters/fromZigbee.js.map +1 -1
- package/dist/converters/toZigbee.d.ts.map +1 -1
- package/dist/converters/toZigbee.js +137 -150
- package/dist/converters/toZigbee.js.map +1 -1
- package/dist/devices/amina.d.ts.map +1 -1
- package/dist/devices/amina.js +7 -37
- package/dist/devices/amina.js.map +1 -1
- package/dist/devices/aurora_lighting.d.ts.map +1 -1
- package/dist/devices/aurora_lighting.js +1 -0
- package/dist/devices/aurora_lighting.js.map +1 -1
- package/dist/devices/bacchus.d.ts.map +1 -1
- package/dist/devices/bacchus.js +6 -2
- package/dist/devices/bacchus.js.map +1 -1
- package/dist/devices/bitron.js +1 -1
- package/dist/devices/bitron.js.map +1 -1
- package/dist/devices/bosch.d.ts.map +1 -1
- package/dist/devices/bosch.js +38 -25
- package/dist/devices/bosch.js.map +1 -1
- package/dist/devices/centralite.js.map +1 -1
- package/dist/devices/ctm.js.map +1 -1
- package/dist/devices/custom_devices_diy.d.ts.map +1 -1
- package/dist/devices/custom_devices_diy.js +2 -3
- package/dist/devices/custom_devices_diy.js.map +1 -1
- package/dist/devices/danfoss.d.ts.map +1 -1
- package/dist/devices/danfoss.js +2 -9
- package/dist/devices/danfoss.js.map +1 -1
- package/dist/devices/dawon_dns.js.map +1 -1
- package/dist/devices/develco.d.ts.map +1 -1
- package/dist/devices/develco.js.map +1 -1
- package/dist/devices/diyruz.js.map +1 -1
- package/dist/devices/ewelink.d.ts.map +1 -1
- package/dist/devices/ewelink.js +1 -5
- package/dist/devices/ewelink.js.map +1 -1
- package/dist/devices/gmmts.d.ts.map +1 -1
- package/dist/devices/gmmts.js +15 -5
- package/dist/devices/gmmts.js.map +1 -1
- package/dist/devices/heiman.d.ts.map +1 -1
- package/dist/devices/heiman.js +5 -1
- package/dist/devices/heiman.js.map +1 -1
- package/dist/devices/hive.d.ts.map +1 -1
- package/dist/devices/hive.js +48 -0
- package/dist/devices/hive.js.map +1 -1
- package/dist/devices/ikea.js +1 -1
- package/dist/devices/ikea.js.map +1 -1
- package/dist/devices/imhotepcreation.js.map +1 -1
- package/dist/devices/immax.js.map +1 -1
- package/dist/devices/index.d.ts.map +1 -1
- package/dist/devices/index.js +2 -0
- package/dist/devices/index.js.map +1 -1
- package/dist/devices/inovelli.d.ts.map +1 -1
- package/dist/devices/inovelli.js +6 -7
- package/dist/devices/inovelli.js.map +1 -1
- package/dist/devices/keen_home.js.map +1 -1
- package/dist/devices/kmpcil.js.map +1 -1
- package/dist/devices/legrand.d.ts.map +1 -1
- package/dist/devices/legrand.js +2 -0
- package/dist/devices/legrand.js.map +1 -1
- package/dist/devices/lincukoo.d.ts.map +1 -1
- package/dist/devices/lincukoo.js +77 -1
- package/dist/devices/lincukoo.js.map +1 -1
- package/dist/devices/livolo.d.ts.map +1 -1
- package/dist/devices/livolo.js.map +1 -1
- package/dist/devices/lixee.d.ts.map +1 -1
- package/dist/devices/lixee.js +9 -4
- package/dist/devices/lixee.js.map +1 -1
- package/dist/devices/lytko.d.ts.map +1 -1
- package/dist/devices/lytko.js +12 -10
- package/dist/devices/lytko.js.map +1 -1
- package/dist/devices/moes.js.map +1 -1
- package/dist/devices/niko.d.ts.map +1 -1
- package/dist/devices/niko.js +23 -7
- package/dist/devices/niko.js.map +1 -1
- package/dist/devices/nodon.js.map +1 -1
- package/dist/devices/onokom.d.ts +3 -0
- package/dist/devices/onokom.d.ts.map +1 -0
- package/dist/devices/onokom.js +2127 -0
- package/dist/devices/onokom.js.map +1 -0
- package/dist/devices/orvibo.d.ts.map +1 -1
- package/dist/devices/orvibo.js +9 -3
- package/dist/devices/orvibo.js.map +1 -1
- package/dist/devices/owon.d.ts.map +1 -1
- package/dist/devices/owon.js +2 -3
- package/dist/devices/owon.js.map +1 -1
- package/dist/devices/perenio.d.ts.map +1 -1
- package/dist/devices/perenio.js +1 -1
- package/dist/devices/perenio.js.map +1 -1
- package/dist/devices/pushok.js.map +1 -1
- package/dist/devices/qa.js.map +1 -1
- package/dist/devices/salus_controls.d.ts.map +1 -1
- package/dist/devices/salus_controls.js.map +1 -1
- package/dist/devices/sber.d.ts.map +1 -1
- package/dist/devices/sber.js +12 -8
- package/dist/devices/sber.js.map +1 -1
- package/dist/devices/schneider_electric.d.ts.map +1 -1
- package/dist/devices/schneider_electric.js +14 -6
- package/dist/devices/schneider_electric.js.map +1 -1
- package/dist/devices/sengled.d.ts.map +1 -1
- package/dist/devices/sengled.js.map +1 -1
- package/dist/devices/shinasystem.js +4 -4
- package/dist/devices/shinasystem.js.map +1 -1
- package/dist/devices/siglis.js +10 -10
- package/dist/devices/siglis.js.map +1 -1
- package/dist/devices/simpla_home.d.ts +1 -5
- package/dist/devices/simpla_home.d.ts.map +1 -1
- package/dist/devices/simpla_home.js +24 -41
- package/dist/devices/simpla_home.js.map +1 -1
- package/dist/devices/sinope.js.map +1 -1
- package/dist/devices/slacky_diy.d.ts.map +1 -1
- package/dist/devices/slacky_diy.js +21 -19
- package/dist/devices/slacky_diy.js.map +1 -1
- package/dist/devices/smartthings.js.map +1 -1
- package/dist/devices/sonoff.d.ts +29 -0
- package/dist/devices/sonoff.d.ts.map +1 -1
- package/dist/devices/sonoff.js +16 -15
- package/dist/devices/sonoff.js.map +1 -1
- package/dist/devices/sunricher.d.ts +15 -0
- package/dist/devices/sunricher.d.ts.map +1 -1
- package/dist/devices/sunricher.js +3 -3
- package/dist/devices/sunricher.js.map +1 -1
- package/dist/devices/tubeszb.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +80 -16
- package/dist/devices/tuya.js.map +1 -1
- package/dist/devices/ubisys.d.ts.map +1 -1
- package/dist/devices/ubisys.js +4 -7
- package/dist/devices/ubisys.js.map +1 -1
- package/dist/devices/wirenboard.d.ts.map +1 -1
- package/dist/devices/wirenboard.js +5 -3
- package/dist/devices/wirenboard.js.map +1 -1
- package/dist/devices/woox.js +1 -1
- package/dist/devices/woox.js.map +1 -1
- package/dist/devices/xyzroe.d.ts.map +1 -1
- package/dist/devices/xyzroe.js +3 -5
- package/dist/devices/xyzroe.js.map +1 -1
- package/dist/devices/yandex.d.ts.map +1 -1
- package/dist/devices/yandex.js +18 -6
- package/dist/devices/yandex.js.map +1 -1
- package/dist/devices/yokis.d.ts.map +1 -1
- package/dist/devices/yokis.js +4 -6
- package/dist/devices/yokis.js.map +1 -1
- package/dist/devices/zemismart.d.ts.map +1 -1
- package/dist/devices/zemismart.js +2 -1
- package/dist/devices/zemismart.js.map +1 -1
- package/dist/lib/color.js +7 -7
- package/dist/lib/color.js.map +1 -1
- package/dist/lib/develco.d.ts +24 -5
- package/dist/lib/develco.d.ts.map +1 -1
- package/dist/lib/develco.js +2 -2
- package/dist/lib/develco.js.map +1 -1
- package/dist/lib/ewelink.d.ts +4 -4
- package/dist/lib/ewelink.d.ts.map +1 -1
- package/dist/lib/ewelink.js.map +1 -1
- package/dist/lib/exposes.d.ts.map +1 -1
- package/dist/lib/exposes.js +27 -9
- package/dist/lib/exposes.js.map +1 -1
- package/dist/lib/generateDefinition.js.map +1 -1
- package/dist/lib/ikea.d.ts +30 -1
- package/dist/lib/ikea.d.ts.map +1 -1
- package/dist/lib/ikea.js +9 -4
- package/dist/lib/ikea.js.map +1 -1
- package/dist/lib/kelvinToXy.js +1 -1
- package/dist/lib/kelvinToXy.js.map +1 -1
- package/dist/lib/legacy.d.ts +33 -1
- package/dist/lib/legacy.d.ts.map +1 -1
- package/dist/lib/legacy.js +78 -88
- package/dist/lib/legacy.js.map +1 -1
- package/dist/lib/legrand.d.ts.map +1 -1
- package/dist/lib/legrand.js +5 -6
- package/dist/lib/legrand.js.map +1 -1
- package/dist/lib/light.d.ts +2 -1
- package/dist/lib/light.d.ts.map +1 -1
- package/dist/lib/light.js.map +1 -1
- package/dist/lib/lumi.d.ts +33 -33
- package/dist/lib/lumi.d.ts.map +1 -1
- package/dist/lib/lumi.js +17 -18
- package/dist/lib/lumi.js.map +1 -1
- package/dist/lib/modernExtend.d.ts +42 -58
- package/dist/lib/modernExtend.d.ts.map +1 -1
- package/dist/lib/modernExtend.js +90 -23
- package/dist/lib/modernExtend.js.map +1 -1
- package/dist/lib/namron.d.ts +25 -25
- package/dist/lib/namron.d.ts.map +1 -1
- package/dist/lib/namron.js +7 -8
- package/dist/lib/namron.js.map +1 -1
- package/dist/lib/nodon.d.ts.map +1 -1
- package/dist/lib/nodon.js.map +1 -1
- package/dist/lib/philips.d.ts.map +1 -1
- package/dist/lib/philips.js +9 -10
- package/dist/lib/philips.js.map +1 -1
- package/dist/lib/reporting.d.ts +4 -7
- package/dist/lib/reporting.d.ts.map +1 -1
- package/dist/lib/reporting.js.map +1 -1
- package/dist/lib/sunricher.d.ts.map +1 -1
- package/dist/lib/sunricher.js +8 -6
- package/dist/lib/sunricher.js.map +1 -1
- package/dist/lib/tuya.d.ts +4 -4
- package/dist/lib/tuya.d.ts.map +1 -1
- package/dist/lib/tuya.js +50 -48
- package/dist/lib/tuya.js.map +1 -1
- package/dist/lib/types.d.ts +2 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/ubisys.d.ts +88 -8
- package/dist/lib/ubisys.d.ts.map +1 -1
- package/dist/lib/ubisys.js +0 -3
- package/dist/lib/ubisys.js.map +1 -1
- package/dist/lib/utils.d.ts +10 -8
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +14 -7
- package/dist/lib/utils.js.map +1 -1
- package/dist/models-index.json +1 -1
- package/package.json +4 -4
package/dist/lib/legacy.d.ts
CHANGED
|
@@ -8,7 +8,39 @@ declare const thermostatSystemModes3: KeyValueAny;
|
|
|
8
8
|
declare const thermostatSystemModes4: KeyValueNumberString;
|
|
9
9
|
declare const thermostatPresets: KeyValueNumberString;
|
|
10
10
|
declare const msLookups: KeyValueAny;
|
|
11
|
-
declare const ZMLookups:
|
|
11
|
+
declare const ZMLookups: {
|
|
12
|
+
AM02Mode: {
|
|
13
|
+
0: string;
|
|
14
|
+
1: string;
|
|
15
|
+
};
|
|
16
|
+
AM02Control: {
|
|
17
|
+
0: string;
|
|
18
|
+
1: string;
|
|
19
|
+
2: string;
|
|
20
|
+
3: string;
|
|
21
|
+
};
|
|
22
|
+
AM02Direction: {
|
|
23
|
+
0: string;
|
|
24
|
+
1: string;
|
|
25
|
+
};
|
|
26
|
+
AM02WorkState: {
|
|
27
|
+
0: string;
|
|
28
|
+
1: string;
|
|
29
|
+
};
|
|
30
|
+
AM02Border: {
|
|
31
|
+
0: string;
|
|
32
|
+
1: string;
|
|
33
|
+
2: string;
|
|
34
|
+
};
|
|
35
|
+
AM02Situation: {
|
|
36
|
+
0: string;
|
|
37
|
+
1: string;
|
|
38
|
+
};
|
|
39
|
+
AM02MotorWorkingMode: {
|
|
40
|
+
0: string;
|
|
41
|
+
1: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
12
44
|
declare const moesSwitch: KeyValueAny;
|
|
13
45
|
declare const tuyaHPSCheckingResult: KeyValueAny;
|
|
14
46
|
declare const dataPoints: {
|
package/dist/lib/legacy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../src/lib/legacy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAIrC,OAAO,KAAK,EAAC,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../src/lib/legacy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAIrC,OAAO,KAAK,EAAC,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAQ,EAAE,EAAK,MAAM,SAAS,CAAC;AAGzF,UAAU,WAAW;IAEjB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AA0PD,QAAA,MAAM,sBAAsB,EAAE,WAM7B,CAAC;AAEF,QAAA,MAAM,sBAAsB,EAAE,WAI7B,CAAC;AAEF,QAAA,MAAM,sBAAsB,EAAE,oBAI7B,CAAC;AAcF,QAAA,MAAM,iBAAiB,EAAE,oBAQxB,CAAC;AA0CF,QAAA,MAAM,SAAS,EAAE,WAiBhB,CAAC;AAeF,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCd,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,WAYjB,CAAC;AACF,QAAA,MAAM,qBAAqB,EAAE,WAO5B,CAAC;AAoJF,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAigBf,CAAC;AA0EF,QAAA,MAAM,cAAc;;;;;;;;;;;;CAYnB,CAAC;AAEF,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAqnBgB,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+HA+DiB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAk2CzE,UAAU,OAAO,WAAW,WAAW,OAAO,WAAW,WAAW,QAAQ,EAAE,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAizB7G,CAAC;AAm7FF,QAAA,MAAM,qBAAqB,EAAE;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAUhD,CAAC;AAEF,QAAA,MAAM,QAAQ;;;mKA10FiC,GAAG;;;;mKAyFH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mKA4MH,GAAG;;;;;;;;;;;;mKA0CH,WAAW;;;;mKAgEX,GAAG;;;;;;gBA0Ed,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAgB;;;;;;mKAgBtC,GAAG;;;;;;;;;;;;;;;;;;;;mKA0GH,GAAG;;;;mKAWH,GAAG;;;;mKAWH,GAAG;;;;mKASH,GAAG;;;;mKAWH,GAAG;;;;;;;;;;;;;;;;mKAqDH,GAAG;;;;;;;;;;;;mKAiEH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mKAiEH,GAAG;;;;mKASH,GAAG;;;;mKASH,GAAG;;;;;;;;;;;;;;;;mKA+DH,GAAG;;;;;;;;mKA0BH,GAAG;;;;mKAwDH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mKA4eH,WAAW;;;;mKASX,GAAG;;;;mKAwBH,GAAG;;;;mKA0BH,GAAG;;;;;;;;mKAUH,GAAG;;;;;;;;mKAiEH,GAAG;;;;mKA6CH,GAAG;;;;mKAqCH,GAAG;;;;mKAqCH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;mKAuDH,GAAG;;;;mKASH,GAAG;;;;;;;;;;;;mKA8BH,GAAG;;;;;;;;mKAkNH,GAAG;;;;mKAiGH,GAAG;;;;mKAgDH,GAAG;;;;mKAgCH,GAAG;;;;;;;;mKA+EH,GAAG;;;;mKAiFH,GAAG;;;;;;;mKAmJH,GAAG;;;;mKAsDH,GAAG;;;;;;;;;;mKAwDH,GAAG;;;;;;;;;;;;;;;;;;;;;;mKAiDH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mKAsDH,GAAG;;;;;;;;;;;;;;;;;;;;mKAyCH,GAAG;;;;mKASH,GAAG;;;;mKASH,GAAG;;;;mKAaH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mKA/1FH,GAAG;;;;mKAQH,GAAG;;;;mKAQH,GAAG;;;;mKAQH,GAAG;;;;mKAQH,GAAG;;;;;;;;;;;;;;;;mKAyBH,GAAG;;;;;mKAQH,GAAG;;CAu3FL,CAAC;AAE9C,OAAO,EACH,UAAU,IAAI,EAAE,EAChB,UAAU,EACV,QAAQ,IAAI,EAAE,EACd,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,GACb,CAAC"}
|
package/dist/lib/legacy.js
CHANGED
|
@@ -134,10 +134,9 @@ function convertDecimalValueTo4ByteHexArray(value) {
|
|
|
134
134
|
const chunk2 = hexValue.substring(2, 4);
|
|
135
135
|
const chunk3 = hexValue.substring(4, 6);
|
|
136
136
|
const chunk4 = hexValue.substring(6);
|
|
137
|
-
return [chunk1, chunk2, chunk3, chunk4].map((hexVal) => Number.parseInt(hexVal, 16));
|
|
137
|
+
return Buffer.from([chunk1, chunk2, chunk3, chunk4].map((hexVal) => Number.parseInt(hexVal, 16)));
|
|
138
138
|
}
|
|
139
139
|
let gSec;
|
|
140
|
-
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
141
140
|
async function sendDataPoints(entity, dpValues, cmd = "dataRequest", seq = undefined) {
|
|
142
141
|
if (seq === undefined) {
|
|
143
142
|
if (gSec === undefined) {
|
|
@@ -150,7 +149,7 @@ async function sendDataPoints(entity, dpValues, cmd = "dataRequest", seq = undef
|
|
|
150
149
|
// biome-ignore lint/style/noParameterAssign: ignored using `--suppress`
|
|
151
150
|
seq = gSec;
|
|
152
151
|
}
|
|
153
|
-
await entity.command("manuSpecificTuya", cmd
|
|
152
|
+
await entity.command("manuSpecificTuya", cmd, {
|
|
154
153
|
seq,
|
|
155
154
|
dpValues,
|
|
156
155
|
}, { disableDefaultResponse: true });
|
|
@@ -167,28 +166,24 @@ function dpValueFromIntValue(dp, value) {
|
|
|
167
166
|
return { dp, datatype: dataTypes.value, data: convertDecimalValueTo4ByteHexArray(value) };
|
|
168
167
|
}
|
|
169
168
|
function dpValueFromBool(dp, value) {
|
|
170
|
-
return { dp, datatype: dataTypes.bool, data: [value ? 1 : 0] };
|
|
169
|
+
return { dp, datatype: dataTypes.bool, data: Buffer.from([value ? 1 : 0]) };
|
|
171
170
|
}
|
|
172
171
|
function dpValueFromEnum(dp, value) {
|
|
173
|
-
return { dp, datatype: dataTypes.enum, data: [value] };
|
|
172
|
+
return { dp, datatype: dataTypes.enum, data: Buffer.from([value]) };
|
|
174
173
|
}
|
|
175
174
|
function dpValueFromStringBuffer(dp, stringBuffer) {
|
|
176
175
|
return { dp, datatype: dataTypes.string, data: stringBuffer };
|
|
177
176
|
}
|
|
178
|
-
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
179
177
|
function dpValueFromRaw(dp, rawBuffer) {
|
|
180
178
|
return { dp, datatype: dataTypes.raw, data: rawBuffer };
|
|
181
179
|
}
|
|
182
|
-
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
183
180
|
function dpValueFromBitmap(dp, bitmapBuffer) {
|
|
184
181
|
return { dp, datatype: dataTypes.bitmap, data: bitmapBuffer };
|
|
185
182
|
}
|
|
186
183
|
// Return `seq` - transaction ID for handling concrete response
|
|
187
|
-
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
188
184
|
async function sendDataPoint(entity, dpValue, cmd, seq = undefined) {
|
|
189
185
|
return await sendDataPoints(entity, [dpValue], cmd, seq);
|
|
190
186
|
}
|
|
191
|
-
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
192
187
|
async function sendDataPointValue(entity, dp, value, cmd, seq = undefined) {
|
|
193
188
|
return await sendDataPoints(entity, [dpValueFromIntValue(dp, value)], cmd, seq);
|
|
194
189
|
}
|
|
@@ -198,15 +193,12 @@ async function sendDataPointBool(entity, dp, value, cmd, seq = undefined) {
|
|
|
198
193
|
async function sendDataPointEnum(entity, dp, value, cmd, seq = undefined) {
|
|
199
194
|
return await sendDataPoints(entity, [dpValueFromEnum(dp, value)], cmd, seq);
|
|
200
195
|
}
|
|
201
|
-
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
202
196
|
async function sendDataPointRaw(entity, dp, value, cmd, seq = undefined) {
|
|
203
197
|
return await sendDataPoints(entity, [dpValueFromRaw(dp, value)], cmd, seq);
|
|
204
198
|
}
|
|
205
|
-
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
206
199
|
async function sendDataPointBitmap(entity, dp, value, cmd, seq = undefined) {
|
|
207
200
|
return await sendDataPoints(entity, [dpValueFromBitmap(dp, value)], cmd, seq);
|
|
208
201
|
}
|
|
209
|
-
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
210
202
|
async function sendDataPointStringBuffer(entity, dp, value, cmd, seq = undefined) {
|
|
211
203
|
return await sendDataPoints(entity, [dpValueFromStringBuffer(dp, value)], cmd, seq);
|
|
212
204
|
}
|
|
@@ -238,10 +230,10 @@ function convertRawToCycleTimer(value) {
|
|
|
238
230
|
// biome-ignore lint/suspicious/noExplicitAny: ignored using `--suppress`
|
|
239
231
|
let minsincemidnight = value[4] * 256 + value[5];
|
|
240
232
|
// @ts-expect-error ignore
|
|
241
|
-
starttime = `${String(Number.parseInt(minsincemidnight / 60)).padStart(2, "0")}:${String(minsincemidnight % 60).padStart(2, "0")}`;
|
|
233
|
+
starttime = `${String(Number.parseInt(minsincemidnight / 60, 10)).padStart(2, "0")}:${String(minsincemidnight % 60).padStart(2, "0")}`;
|
|
242
234
|
minsincemidnight = value[6] * 256 + value[7];
|
|
243
235
|
// @ts-expect-error ignore
|
|
244
|
-
endtime = `${String(Number.parseInt(minsincemidnight / 60)).padStart(2, "0")}:${String(minsincemidnight % 60).padStart(2, "0")}`;
|
|
236
|
+
endtime = `${String(Number.parseInt(minsincemidnight / 60, 10)).padStart(2, "0")}:${String(minsincemidnight % 60).padStart(2, "0")}`;
|
|
245
237
|
irrigationDuration = value[8] * 256 + value[9];
|
|
246
238
|
pauseDuration = value[10] * 256 + value[11];
|
|
247
239
|
}
|
|
@@ -464,7 +456,7 @@ function convertRawToTimer(value) {
|
|
|
464
456
|
timernr = value[1];
|
|
465
457
|
const minsincemidnight = value[2] * 256 + value[3];
|
|
466
458
|
// @ts-expect-error ignore
|
|
467
|
-
starttime = `${String(Number.parseInt(minsincemidnight / 60)).padStart(2, "0")}:${String(minsincemidnight % 60).padStart(2, "0")}`;
|
|
459
|
+
starttime = `${String(Number.parseInt(minsincemidnight / 60, 10)).padStart(2, "0")}:${String(minsincemidnight % 60).padStart(2, "0")}`;
|
|
468
460
|
duration = value[4] * 256 + value[5];
|
|
469
461
|
if (value[6] > 0) {
|
|
470
462
|
weekdays =
|
|
@@ -544,8 +536,8 @@ function convertTimeTo2ByteHexArray(time) {
|
|
|
544
536
|
if (timeArray.length !== 2) {
|
|
545
537
|
throw new Error("Time format incorrect");
|
|
546
538
|
}
|
|
547
|
-
const timeHour = Number.parseInt(timeArray[0]);
|
|
548
|
-
const timeMinute = Number.parseInt(timeArray[1]);
|
|
539
|
+
const timeHour = Number.parseInt(timeArray[0], 10);
|
|
540
|
+
const timeMinute = Number.parseInt(timeArray[1], 10);
|
|
549
541
|
if (timeHour > 23 || timeMinute > 59) {
|
|
550
542
|
throw new Error("Time incorrect");
|
|
551
543
|
}
|
|
@@ -3584,7 +3576,7 @@ const fromZigbee = {
|
|
|
3584
3576
|
else if (dp === dataPoints.silvercrestSetEffect) {
|
|
3585
3577
|
result.effect = {
|
|
3586
3578
|
effect: utils.getKey(silvercrestEffects, value.substring(0, 2), "", String),
|
|
3587
|
-
speed: utils.mapNumberRange(Number.parseInt(value.substring(2, 4)), 0, 64, 0, 100),
|
|
3579
|
+
speed: utils.mapNumberRange(Number.parseInt(value.substring(2, 4), 10), 0, 64, 0, 100),
|
|
3588
3580
|
colors: [],
|
|
3589
3581
|
};
|
|
3590
3582
|
const colorsString = value.substring(4);
|
|
@@ -4157,7 +4149,7 @@ const toZigbee2 = {
|
|
|
4157
4149
|
}
|
|
4158
4150
|
else {
|
|
4159
4151
|
// biome-ignore lint/style/noParameterAssign: ignored using `--suppress`
|
|
4160
|
-
value = Number.parseInt(value);
|
|
4152
|
+
value = Number.parseInt(value, 10);
|
|
4161
4153
|
}
|
|
4162
4154
|
return await toZigbee1.tuya_cover_control.convertSet(entity, "position", value, meta);
|
|
4163
4155
|
}
|
|
@@ -4298,8 +4290,8 @@ const toZigbee2 = {
|
|
|
4298
4290
|
for (let i = 0; i < periodsNumber; i++) {
|
|
4299
4291
|
const timeTemp = periods[i].split("/");
|
|
4300
4292
|
const hm = timeTemp[0].split(":", 2);
|
|
4301
|
-
const h = Number.parseInt(hm[0]);
|
|
4302
|
-
const m = Number.parseInt(hm[1]);
|
|
4293
|
+
const h = Number.parseInt(hm[0], 10);
|
|
4294
|
+
const m = Number.parseInt(hm[1], 10);
|
|
4303
4295
|
const temp = Number.parseFloat(timeTemp[1]);
|
|
4304
4296
|
if (h < 0 || h >= 24 || m < 0 || m >= 60 || temp < 5 || temp > 60) {
|
|
4305
4297
|
throw new Error(`Invalid hour, minute or temperature of: ${periods[i]}`);
|
|
@@ -4308,7 +4300,7 @@ const toZigbee2 = {
|
|
|
4308
4300
|
// 1 byte for hour, 1 byte for minutes, 2 bytes for temperature
|
|
4309
4301
|
payload.push(h, m, ...tempHexArray);
|
|
4310
4302
|
}
|
|
4311
|
-
await sendDataPointRaw(entity, dataPoints.x5hWeeklyProcedure, payload);
|
|
4303
|
+
await sendDataPointRaw(entity, dataPoints.x5hWeeklyProcedure, Buffer.from(payload));
|
|
4312
4304
|
break;
|
|
4313
4305
|
}
|
|
4314
4306
|
default:
|
|
@@ -4569,7 +4561,7 @@ const toZigbee2 = {
|
|
|
4569
4561
|
// biome-ignore lint/style/noParameterAssign: ignored using `--suppress`
|
|
4570
4562
|
if (value < 0)
|
|
4571
4563
|
value = value * 10 + 0x100000000;
|
|
4572
|
-
await sendDataPointRaw(entity, 109 + day - 1, results);
|
|
4564
|
+
await sendDataPointRaw(entity, 109 + day - 1, Buffer.from(results));
|
|
4573
4565
|
},
|
|
4574
4566
|
},
|
|
4575
4567
|
giexWaterValve: {
|
|
@@ -4863,7 +4855,7 @@ const toZigbee2 = {
|
|
|
4863
4855
|
Math.floor(newProgram.sunday_p4_minute),
|
|
4864
4856
|
Math.round(newProgram.sunday_p4_temperature * 2),
|
|
4865
4857
|
];
|
|
4866
|
-
await sendDataPointRaw(entity, dataPoints.moesSchedule, payload);
|
|
4858
|
+
await sendDataPointRaw(entity, dataPoints.moesSchedule, Buffer.from(payload));
|
|
4867
4859
|
},
|
|
4868
4860
|
},
|
|
4869
4861
|
// biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
|
|
@@ -4975,9 +4967,9 @@ const toZigbee2 = {
|
|
|
4975
4967
|
for (let i = 0; i < 12; i++) {
|
|
4976
4968
|
const hourTemperature = items[i].split("/");
|
|
4977
4969
|
const hourMinute = hourTemperature[0].split(":", 2);
|
|
4978
|
-
const h = Number.parseInt(hourMinute[0]);
|
|
4979
|
-
const m = Number.parseInt(hourMinute[1]);
|
|
4980
|
-
const temp = Number.parseInt(hourTemperature[1]);
|
|
4970
|
+
const h = Number.parseInt(hourMinute[0], 10);
|
|
4971
|
+
const m = Number.parseInt(hourMinute[1], 10);
|
|
4972
|
+
const temp = Number.parseInt(hourTemperature[1], 10);
|
|
4981
4973
|
if (h < 0 || h >= 24 || m < 0 || m >= 60 || temp < 5 || temp >= 35) {
|
|
4982
4974
|
throw new Error(`Invalid hour, minute or temperature of:${items[i]}`);
|
|
4983
4975
|
}
|
|
@@ -4985,7 +4977,7 @@ const toZigbee2 = {
|
|
|
4985
4977
|
payload[i * 3 + 1] = m;
|
|
4986
4978
|
payload[i * 3 + 2] = temp * 2;
|
|
4987
4979
|
}
|
|
4988
|
-
await sendDataPointRaw(entity, dataPoints.moesSschedule, payload);
|
|
4980
|
+
await sendDataPointRaw(entity, dataPoints.moesSschedule, Buffer.from(payload));
|
|
4989
4981
|
},
|
|
4990
4982
|
},
|
|
4991
4983
|
hgkg_thermostat_standby: {
|
|
@@ -5171,8 +5163,8 @@ const toZigbee2 = {
|
|
|
5171
5163
|
if (value === "") {
|
|
5172
5164
|
// delete
|
|
5173
5165
|
data.push(0x04);
|
|
5174
|
-
data.push(Number.parseInt(key.substr(-1)));
|
|
5175
|
-
await sendDataPointRaw(entity, 16, data);
|
|
5166
|
+
data.push(Number.parseInt(key.substr(-1), 10));
|
|
5167
|
+
await sendDataPointRaw(entity, 16, Buffer.from(data));
|
|
5176
5168
|
const ret = { state: {} };
|
|
5177
5169
|
ret.state[key] = value;
|
|
5178
5170
|
return ret;
|
|
@@ -5182,7 +5174,7 @@ const toZigbee2 = {
|
|
|
5182
5174
|
}
|
|
5183
5175
|
else {
|
|
5184
5176
|
data.push(0x02);
|
|
5185
|
-
data.push(Number.parseInt(key.substr(-1)));
|
|
5177
|
+
data.push(Number.parseInt(key.substr(-1), 10));
|
|
5186
5178
|
}
|
|
5187
5179
|
const tarray = value.replace(/ /g, "").split("/");
|
|
5188
5180
|
if (tarray.length < 4) {
|
|
@@ -5199,7 +5191,7 @@ const toZigbee2 = {
|
|
|
5199
5191
|
const irrigationDuration = tarray[2];
|
|
5200
5192
|
const pauseDuration = tarray[3];
|
|
5201
5193
|
const weekdays = tarray[4];
|
|
5202
|
-
const active = Number.parseInt(tarray[5]);
|
|
5194
|
+
const active = Number.parseInt(tarray[5], 10);
|
|
5203
5195
|
if (!(active === 0 || active === 1)) {
|
|
5204
5196
|
throw new Error("Active value only 0 or 1 allowed");
|
|
5205
5197
|
}
|
|
@@ -5211,7 +5203,7 @@ const toZigbee2 = {
|
|
|
5211
5203
|
data = data.concat(convertDecimalValueTo2ByteHexArray(irrigationDuration));
|
|
5212
5204
|
data = data.concat(convertDecimalValueTo2ByteHexArray(pauseDuration));
|
|
5213
5205
|
data = data.concat(footer);
|
|
5214
|
-
await sendDataPointRaw(entity, 16, data);
|
|
5206
|
+
await sendDataPointRaw(entity, 16, Buffer.from(data));
|
|
5215
5207
|
const ret = { state: {} };
|
|
5216
5208
|
ret.state[key] = value;
|
|
5217
5209
|
return ret;
|
|
@@ -5227,8 +5219,8 @@ const toZigbee2 = {
|
|
|
5227
5219
|
if (value === "") {
|
|
5228
5220
|
// delete
|
|
5229
5221
|
data.push(0x04);
|
|
5230
|
-
data.push(Number.parseInt(key.substr(-1)));
|
|
5231
|
-
await sendDataPointRaw(entity, 17, data);
|
|
5222
|
+
data.push(Number.parseInt(key.substr(-1), 10));
|
|
5223
|
+
await sendDataPointRaw(entity, 17, Buffer.from(data));
|
|
5232
5224
|
const ret = { state: {} };
|
|
5233
5225
|
ret.state[key] = value;
|
|
5234
5226
|
return ret;
|
|
@@ -5238,7 +5230,7 @@ const toZigbee2 = {
|
|
|
5238
5230
|
}
|
|
5239
5231
|
else {
|
|
5240
5232
|
data.push(0x02);
|
|
5241
|
-
data.push(Number.parseInt(key.substr(-1)));
|
|
5233
|
+
data.push(Number.parseInt(key.substr(-1), 10));
|
|
5242
5234
|
}
|
|
5243
5235
|
const tarray = value.replace(/ /g, "").split("/");
|
|
5244
5236
|
if (tarray.length < 2) {
|
|
@@ -5253,7 +5245,7 @@ const toZigbee2 = {
|
|
|
5253
5245
|
const time = tarray[0];
|
|
5254
5246
|
const duration = tarray[1];
|
|
5255
5247
|
const weekdays = tarray[2];
|
|
5256
|
-
const active = Number.parseInt(tarray[3]);
|
|
5248
|
+
const active = Number.parseInt(tarray[3], 10);
|
|
5257
5249
|
if (!(active === 0 || active === 1)) {
|
|
5258
5250
|
throw new Error("Active value only 0 or 1 allowed");
|
|
5259
5251
|
}
|
|
@@ -5264,7 +5256,7 @@ const toZigbee2 = {
|
|
|
5264
5256
|
data = data.concat(weekdaysPart);
|
|
5265
5257
|
data = data.concat([64, active]);
|
|
5266
5258
|
data = data.concat(footer);
|
|
5267
|
-
await sendDataPointRaw(entity, 17, data);
|
|
5259
|
+
await sendDataPointRaw(entity, 17, Buffer.from(data));
|
|
5268
5260
|
const ret = { state: {} };
|
|
5269
5261
|
ret.state[key] = value;
|
|
5270
5262
|
return ret;
|
|
@@ -5328,10 +5320,10 @@ const toZigbee2 = {
|
|
|
5328
5320
|
return [(minutesSinceMidnight & 0xff00) >> 8, minutesSinceMidnight & 0xff, (heatSetpoint & 0xff00) >> 8, heatSetpoint & 0xff];
|
|
5329
5321
|
}
|
|
5330
5322
|
for (const [, daySchedule] of Object.entries(value)) {
|
|
5331
|
-
const dayofweek = Number.parseInt(daySchedule.dayofweek);
|
|
5332
|
-
const numoftrans = Number.parseInt(daySchedule.numoftrans);
|
|
5323
|
+
const dayofweek = Number.parseInt(daySchedule.dayofweek, 10);
|
|
5324
|
+
const numoftrans = Number.parseInt(daySchedule.numoftrans, 10);
|
|
5333
5325
|
let transitions = [...daySchedule.transitions];
|
|
5334
|
-
const mode = Number.parseInt(daySchedule.mode);
|
|
5326
|
+
const mode = Number.parseInt(daySchedule.mode, 10);
|
|
5335
5327
|
if (!supportedModes.includes(mode)) {
|
|
5336
5328
|
throw new Error(`Invalid mode: ${mode} for device ${meta.options.friendly_name}`);
|
|
5337
5329
|
}
|
|
@@ -5370,10 +5362,10 @@ const toZigbee2 = {
|
|
|
5370
5362
|
payload.push(...transitionToData(transition));
|
|
5371
5363
|
});
|
|
5372
5364
|
if (conversion === "saswell") {
|
|
5373
|
-
await sendDataPointRaw(entity, dataPoints.saswellScheduleSet, payload);
|
|
5365
|
+
await sendDataPointRaw(entity, dataPoints.saswellScheduleSet, Buffer.from(payload));
|
|
5374
5366
|
}
|
|
5375
5367
|
else {
|
|
5376
|
-
await sendDataPointRaw(entity, firstDayDpId - 1 + dayofweek, payload);
|
|
5368
|
+
await sendDataPointRaw(entity, firstDayDpId - 1 + dayofweek, Buffer.from(payload));
|
|
5377
5369
|
}
|
|
5378
5370
|
}
|
|
5379
5371
|
},
|
|
@@ -5387,7 +5379,7 @@ const toZigbee2 = {
|
|
|
5387
5379
|
tuya_thermostat_window_detection: {
|
|
5388
5380
|
key: ["window_detection"],
|
|
5389
5381
|
convertSet: async (entity, key, value, meta) => {
|
|
5390
|
-
await sendDataPointRaw(entity, dataPoints.windowDetection, [value === "ON" ? 1 : 0]);
|
|
5382
|
+
await sendDataPointRaw(entity, dataPoints.windowDetection, Buffer.from([value === "ON" ? 1 : 0]));
|
|
5391
5383
|
},
|
|
5392
5384
|
},
|
|
5393
5385
|
siterwell_thermostat_window_detection: {
|
|
@@ -5415,7 +5407,7 @@ const toZigbee2 = {
|
|
|
5415
5407
|
convertSet: async (entity, key, value, meta) => {
|
|
5416
5408
|
const modeId = utils.getKey(utils.getMetaValue(entity, meta.mapped, "tuyaThermostatSystemMode"), value, null, Number);
|
|
5417
5409
|
if (modeId !== null) {
|
|
5418
|
-
await sendDataPointEnum(entity, dataPoints.mode,
|
|
5410
|
+
await sendDataPointEnum(entity, dataPoints.mode, modeId);
|
|
5419
5411
|
}
|
|
5420
5412
|
else {
|
|
5421
5413
|
throw new Error(`TRV system mode ${value} is not recognized.`);
|
|
@@ -5427,7 +5419,7 @@ const toZigbee2 = {
|
|
|
5427
5419
|
convertSet: async (entity, key, value, meta) => {
|
|
5428
5420
|
const presetId = utils.getKey(utils.getMetaValue(entity, meta.mapped, "tuyaThermostatPreset"), value, null, Number);
|
|
5429
5421
|
if (presetId !== null) {
|
|
5430
|
-
await sendDataPointEnum(entity, dataPoints.mode,
|
|
5422
|
+
await sendDataPointEnum(entity, dataPoints.mode, presetId);
|
|
5431
5423
|
}
|
|
5432
5424
|
else {
|
|
5433
5425
|
throw new Error(`TRV preset ${value} is not recognized.`);
|
|
@@ -5438,17 +5430,14 @@ const toZigbee2 = {
|
|
|
5438
5430
|
key: ["away_mode"],
|
|
5439
5431
|
convertSet: async (entity, key, value, meta) => {
|
|
5440
5432
|
// HA has special behavior for the away mode
|
|
5441
|
-
// @ts-expect-error ignore
|
|
5442
5433
|
const awayPresetId = utils.getKey(utils.getMetaValue(entity, meta.mapped, "tuyaThermostatPreset"), "away", null, Number);
|
|
5443
|
-
const schedulePresetId = utils.getKey(utils.getMetaValue(entity, meta.mapped, "tuyaThermostatPreset"), "schedule", null,
|
|
5444
|
-
// @ts-expect-error ignore
|
|
5445
|
-
Number);
|
|
5434
|
+
const schedulePresetId = utils.getKey(utils.getMetaValue(entity, meta.mapped, "tuyaThermostatPreset"), "schedule", null, Number);
|
|
5446
5435
|
if (awayPresetId !== null) {
|
|
5447
5436
|
if (value === "ON") {
|
|
5448
|
-
await sendDataPointEnum(entity, dataPoints.mode,
|
|
5437
|
+
await sendDataPointEnum(entity, dataPoints.mode, awayPresetId);
|
|
5449
5438
|
}
|
|
5450
5439
|
else if (schedulePresetId != null) {
|
|
5451
|
-
await sendDataPointEnum(entity, dataPoints.mode,
|
|
5440
|
+
await sendDataPointEnum(entity, dataPoints.mode, schedulePresetId);
|
|
5452
5441
|
}
|
|
5453
5442
|
// In case 'OFF' tuya_thermostat_preset() should be called with another preset
|
|
5454
5443
|
}
|
|
@@ -5462,7 +5451,7 @@ const toZigbee2 = {
|
|
|
5462
5451
|
convertSet: async (entity, key, value, meta) => {
|
|
5463
5452
|
const modeId = utils.getKey(fanModes, value, null, Number);
|
|
5464
5453
|
if (modeId !== null) {
|
|
5465
|
-
await sendDataPointEnum(entity, dataPoints.fanMode,
|
|
5454
|
+
await sendDataPointEnum(entity, dataPoints.fanMode, modeId);
|
|
5466
5455
|
}
|
|
5467
5456
|
else {
|
|
5468
5457
|
throw new Error(`TRV fan mode ${value} is not recognized.`);
|
|
@@ -5474,7 +5463,7 @@ const toZigbee2 = {
|
|
|
5474
5463
|
convertSet: async (entity, key, value, meta) => {
|
|
5475
5464
|
const modeId = utils.getKey(fanModes, value, null, Number);
|
|
5476
5465
|
if (modeId !== null) {
|
|
5477
|
-
await sendDataPointEnum(entity, dataPoints.bacFanMode,
|
|
5466
|
+
await sendDataPointEnum(entity, dataPoints.bacFanMode, modeId);
|
|
5478
5467
|
}
|
|
5479
5468
|
else {
|
|
5480
5469
|
throw new Error(`TRV fan mode ${value} is not recognized.`);
|
|
@@ -5533,7 +5522,7 @@ const toZigbee2 = {
|
|
|
5533
5522
|
convertSet: async (entity, key, value, meta) => {
|
|
5534
5523
|
const modeId = utils.getKey(thermostatForceMode, value, null, Number);
|
|
5535
5524
|
if (modeId !== null) {
|
|
5536
|
-
await sendDataPointEnum(entity, dataPoints.forceMode,
|
|
5525
|
+
await sendDataPointEnum(entity, dataPoints.forceMode, modeId);
|
|
5537
5526
|
}
|
|
5538
5527
|
else {
|
|
5539
5528
|
throw new Error(`TRV force mode ${value} is not recognized.`);
|
|
@@ -5545,7 +5534,7 @@ const toZigbee2 = {
|
|
|
5545
5534
|
convertSet: async (entity, key, value, meta) => {
|
|
5546
5535
|
const modeId = utils.getKey(utils.getMetaValue(entity, meta.mapped, "tuyaThermostatSystemMode"), value, null, Number);
|
|
5547
5536
|
if (modeId !== null) {
|
|
5548
|
-
await sendDataPointEnum(entity, dataPoints.forceMode,
|
|
5537
|
+
await sendDataPointEnum(entity, dataPoints.forceMode, modeId);
|
|
5549
5538
|
}
|
|
5550
5539
|
else {
|
|
5551
5540
|
throw new Error(`TRV system mode ${value} is not recognized.`);
|
|
@@ -5570,7 +5559,7 @@ const toZigbee2 = {
|
|
|
5570
5559
|
key: ["window_detect"],
|
|
5571
5560
|
convertSet: async (entity, key, value, meta) => {
|
|
5572
5561
|
const detect = value.detect.toUpperCase() === "ON" ? 1 : 0;
|
|
5573
|
-
await sendDataPointRaw(entity, dataPoints.windowDetection, [detect, value.temperature, value.minutes]);
|
|
5562
|
+
await sendDataPointRaw(entity, dataPoints.windowDetection, Buffer.from([detect, value.temperature, value.minutes]));
|
|
5574
5563
|
},
|
|
5575
5564
|
},
|
|
5576
5565
|
tuya_thermostat_schedule: {
|
|
@@ -5593,7 +5582,7 @@ const toZigbee2 = {
|
|
|
5593
5582
|
payload[i * 3 + 2] = value[prob][i].temperature;
|
|
5594
5583
|
}
|
|
5595
5584
|
}
|
|
5596
|
-
await sendDataPointRaw(entity, dpId, payload);
|
|
5585
|
+
await sendDataPointRaw(entity, dpId, Buffer.from(payload));
|
|
5597
5586
|
}
|
|
5598
5587
|
},
|
|
5599
5588
|
},
|
|
@@ -5608,9 +5597,9 @@ const toZigbee2 = {
|
|
|
5608
5597
|
for (let i = 0; i < 6; i++) {
|
|
5609
5598
|
const hourTemperature = items[i].split("/");
|
|
5610
5599
|
const hourMinute = hourTemperature[0].split(":", 2);
|
|
5611
|
-
const hour = Number.parseInt(hourMinute[0]);
|
|
5612
|
-
const minute = Number.parseInt(hourMinute[1]);
|
|
5613
|
-
const temperature = Number.parseInt(hourTemperature[1]);
|
|
5600
|
+
const hour = Number.parseInt(hourMinute[0], 10);
|
|
5601
|
+
const minute = Number.parseInt(hourMinute[1], 10);
|
|
5602
|
+
const temperature = Number.parseInt(hourTemperature[1], 10);
|
|
5614
5603
|
if (hour < 0 || hour >= 24 || minute < 0 || minute >= 60 || temperature < 5 || temperature >= 35) {
|
|
5615
5604
|
throw new Error(`Invalid hour, minute or temperature of:${items[i]}`);
|
|
5616
5605
|
}
|
|
@@ -5618,7 +5607,7 @@ const toZigbee2 = {
|
|
|
5618
5607
|
payload[i * 3 + 1] = minute;
|
|
5619
5608
|
payload[i * 3 + 2] = temperature;
|
|
5620
5609
|
}
|
|
5621
|
-
await sendDataPointRaw(entity, dpId, payload);
|
|
5610
|
+
await sendDataPointRaw(entity, dpId, Buffer.from(payload));
|
|
5622
5611
|
},
|
|
5623
5612
|
},
|
|
5624
5613
|
tuya_thermostat_week: {
|
|
@@ -5971,7 +5960,7 @@ const toZigbee2 = {
|
|
|
5971
5960
|
// Scale it to what the device expects (0-1000 instead of 0-255)
|
|
5972
5961
|
const scaled = utils.mapNumberRange(value, 0, 255, 0, 1000);
|
|
5973
5962
|
data = data.concat(convertDecimalValueTo2ByteHexArray(scaled));
|
|
5974
|
-
await sendDataPoint(entity, { dp: dataPoints.silvercrestSetBrightness, datatype: dataTypes.value, data: data });
|
|
5963
|
+
await sendDataPoint(entity, { dp: dataPoints.silvercrestSetBrightness, datatype: dataTypes.value, data: Buffer.from(data) });
|
|
5975
5964
|
}
|
|
5976
5965
|
else if (key === "color") {
|
|
5977
5966
|
await sendDataPointEnum(entity, dataPoints.silvercrestChangeMode, silvercrestModes.color);
|
|
@@ -6025,7 +6014,7 @@ const toZigbee2 = {
|
|
|
6025
6014
|
};
|
|
6026
6015
|
let hsb = {};
|
|
6027
6016
|
if (value.hsb != null) {
|
|
6028
|
-
const split = value.hsb.split(",").map((i) => Number.parseInt(i));
|
|
6017
|
+
const split = value.hsb.split(",").map((i) => Number.parseInt(i, 10));
|
|
6029
6018
|
hsb = fillInHSB(split[0], split[1], split[2], meta.state);
|
|
6030
6019
|
}
|
|
6031
6020
|
else {
|
|
@@ -6046,29 +6035,29 @@ const toZigbee2 = {
|
|
|
6046
6035
|
utils.assertString(value);
|
|
6047
6036
|
const args = value.split(",");
|
|
6048
6037
|
const mode = args[0];
|
|
6049
|
-
const dp = Number.parseInt(args[1]);
|
|
6038
|
+
const dp = Number.parseInt(args[1], 10);
|
|
6050
6039
|
const data = [];
|
|
6051
6040
|
switch (mode) {
|
|
6052
6041
|
case "raw":
|
|
6053
6042
|
for (let i = 2; i < args.length; i++) {
|
|
6054
|
-
data.push(Number.parseInt(args[i]));
|
|
6043
|
+
data.push(Number.parseInt(args[i], 10));
|
|
6055
6044
|
}
|
|
6056
|
-
await sendDataPointRaw(entity, dp, data);
|
|
6045
|
+
await sendDataPointRaw(entity, dp, Buffer.from(data));
|
|
6057
6046
|
break;
|
|
6058
6047
|
case "bool":
|
|
6059
6048
|
await sendDataPointBool(entity, dp, args[2] === "1");
|
|
6060
6049
|
break;
|
|
6061
6050
|
case "value":
|
|
6062
|
-
await sendDataPointValue(entity, dp, Number.parseInt(args[2]));
|
|
6051
|
+
await sendDataPointValue(entity, dp, Number.parseInt(args[2], 10));
|
|
6063
6052
|
break;
|
|
6064
6053
|
case "enum":
|
|
6065
|
-
await sendDataPointEnum(entity, dp, Number.parseInt(args[2]));
|
|
6054
|
+
await sendDataPointEnum(entity, dp, Number.parseInt(args[2], 10));
|
|
6066
6055
|
break;
|
|
6067
6056
|
case "bitmap":
|
|
6068
6057
|
for (let i = 2; i < args.length; i++) {
|
|
6069
|
-
data.push(Number.parseInt(args[i]));
|
|
6058
|
+
data.push(Number.parseInt(args[i], 10));
|
|
6070
6059
|
}
|
|
6071
|
-
await sendDataPointBitmap(entity, dp, data);
|
|
6060
|
+
await sendDataPointBitmap(entity, dp, Buffer.from(data));
|
|
6072
6061
|
break;
|
|
6073
6062
|
}
|
|
6074
6063
|
},
|
|
@@ -6262,10 +6251,10 @@ const toZigbee2 = {
|
|
|
6262
6251
|
convertSet: async (entity, key, value, meta) => {
|
|
6263
6252
|
switch (key) {
|
|
6264
6253
|
case "o_sensitivity":
|
|
6265
|
-
await sendDataPointEnum(entity, dataPoints.msOSensitivity, utils.getKey(msLookups.OSensitivity, value));
|
|
6254
|
+
await sendDataPointEnum(entity, dataPoints.msOSensitivity, utils.getKey(msLookups.OSensitivity, value, undefined, Number));
|
|
6266
6255
|
break;
|
|
6267
6256
|
case "v_sensitivity":
|
|
6268
|
-
await sendDataPointEnum(entity, dataPoints.msVSensitivity, utils.getKey(msLookups.VSensitivity, value));
|
|
6257
|
+
await sendDataPointEnum(entity, dataPoints.msVSensitivity, utils.getKey(msLookups.VSensitivity, value, undefined, Number));
|
|
6269
6258
|
break;
|
|
6270
6259
|
case "led_status":
|
|
6271
6260
|
// @ts-expect-error ignore
|
|
@@ -6281,7 +6270,7 @@ const toZigbee2 = {
|
|
|
6281
6270
|
await sendDataPointValue(entity, dataPoints.msLightOffLuminancePrefer, value);
|
|
6282
6271
|
break;
|
|
6283
6272
|
case "mode":
|
|
6284
|
-
await sendDataPointEnum(entity, dataPoints.msMode, utils.getKey(msLookups.Mode, value));
|
|
6273
|
+
await sendDataPointEnum(entity, dataPoints.msMode, utils.getKey(msLookups.Mode, value, undefined, Number));
|
|
6285
6274
|
break;
|
|
6286
6275
|
default: // Unknown key
|
|
6287
6276
|
logger_1.logger.warning(`toZigbee.tuya_motion_sensor: Unhandled key ${key}`, "zhc:legacy:tz:tuya_motion_sensor");
|
|
@@ -6294,27 +6283,27 @@ const toZigbee2 = {
|
|
|
6294
6283
|
switch (key) {
|
|
6295
6284
|
case "illuminance_calibration": // (10--100) sensor illuminance sensitivity
|
|
6296
6285
|
if (meta.device.manufacturerName === "_TZE200_kagkgk0i") {
|
|
6297
|
-
await sendDataPointRaw(entity, 102, [value]);
|
|
6286
|
+
await sendDataPointRaw(entity, 102, Buffer.from([value]));
|
|
6298
6287
|
break;
|
|
6299
6288
|
}
|
|
6300
|
-
await sendDataPointRaw(entity, 105, [value]);
|
|
6289
|
+
await sendDataPointRaw(entity, 105, Buffer.from([value]));
|
|
6301
6290
|
break;
|
|
6302
6291
|
case "led_enable": // OK (value true/false or 1/0)
|
|
6303
6292
|
if (meta.device.manufacturerName === "_TZE200_kagkgk0i") {
|
|
6304
|
-
await sendDataPointRaw(entity, 107, [value ? 1 : 0]);
|
|
6293
|
+
await sendDataPointRaw(entity, 107, Buffer.from([value ? 1 : 0]));
|
|
6305
6294
|
break;
|
|
6306
6295
|
}
|
|
6307
|
-
await sendDataPointRaw(entity, 103, [value ? 1 : 0]);
|
|
6296
|
+
await sendDataPointRaw(entity, 103, Buffer.from([value ? 1 : 0]));
|
|
6308
6297
|
break;
|
|
6309
6298
|
case "sensitivity": // value: 25, 50, 75, 100
|
|
6310
|
-
await sendDataPointRaw(entity, 2, [value]);
|
|
6299
|
+
await sendDataPointRaw(entity, 2, Buffer.from([value]));
|
|
6311
6300
|
break;
|
|
6312
6301
|
case "keep_time": // value 0 --> 7 corresponding 5s, 30s, 1, 3, 5, 10, 20, 30 min
|
|
6313
6302
|
if (meta.device.manufacturerName === "_TZE200_kagkgk0i") {
|
|
6314
|
-
await sendDataPointRaw(entity, 106, [value]);
|
|
6303
|
+
await sendDataPointRaw(entity, 106, Buffer.from([value]));
|
|
6315
6304
|
break;
|
|
6316
6305
|
}
|
|
6317
|
-
await sendDataPointRaw(entity, 102, [value]);
|
|
6306
|
+
await sendDataPointRaw(entity, 102, Buffer.from([value]));
|
|
6318
6307
|
break;
|
|
6319
6308
|
default: // Unknown key
|
|
6320
6309
|
throw new Error(`Unhandled key ${key}`);
|
|
@@ -6342,7 +6331,7 @@ const toZigbee2 = {
|
|
|
6342
6331
|
case "system_mode":
|
|
6343
6332
|
if (value !== "off") {
|
|
6344
6333
|
await sendDataPointBool(entity, dataPoints.tvHeatingStop, 0);
|
|
6345
|
-
await sendDataPointEnum(entity, dataPoints.tvMode, utils.getKey(tvThermostatMode, value));
|
|
6334
|
+
await sendDataPointEnum(entity, dataPoints.tvMode, utils.getKey(tvThermostatMode, value, undefined, Number));
|
|
6346
6335
|
}
|
|
6347
6336
|
else {
|
|
6348
6337
|
await sendDataPointBool(entity, dataPoints.tvHeatingStop, 1);
|
|
@@ -6411,7 +6400,7 @@ const toZigbee2 = {
|
|
|
6411
6400
|
break;
|
|
6412
6401
|
case "preset":
|
|
6413
6402
|
await sendDataPointBool(entity, dataPoints.tvHeatingStop, 0);
|
|
6414
|
-
await sendDataPointEnum(entity, dataPoints.tvMode, utils.getKey(tvThermostatPreset, value));
|
|
6403
|
+
await sendDataPointEnum(entity, dataPoints.tvMode, utils.getKey(tvThermostatPreset, value, undefined, Number));
|
|
6415
6404
|
break;
|
|
6416
6405
|
default: // Unknown key
|
|
6417
6406
|
logger_1.logger.warning(`Unhandled key ${key}`, "zhc:legacy:tz:moes_thermostat_tv");
|
|
@@ -6583,17 +6572,18 @@ const toZigbee2 = {
|
|
|
6583
6572
|
}
|
|
6584
6573
|
switch (key) {
|
|
6585
6574
|
case "mode":
|
|
6586
|
-
await sendDataPointEnum(entity, dataPoints.AM02Mode, utils.getKey(ZMLookups.AM02Mode, value));
|
|
6575
|
+
await sendDataPointEnum(entity, dataPoints.AM02Mode, utils.getKey(ZMLookups.AM02Mode, value, undefined, Number));
|
|
6587
6576
|
break;
|
|
6588
6577
|
case "motor_direction":
|
|
6589
|
-
await sendDataPointEnum(entity, dataPoints.AM02Direction, utils.getKey(ZMLookups.AM02Direction, value));
|
|
6578
|
+
await sendDataPointEnum(entity, dataPoints.AM02Direction, utils.getKey(ZMLookups.AM02Direction, value, undefined, Number));
|
|
6590
6579
|
break;
|
|
6591
6580
|
case "border":
|
|
6592
|
-
await sendDataPointEnum(entity, dataPoints.AM02Border, utils.getKey(ZMLookups.AM02Border, value));
|
|
6581
|
+
await sendDataPointEnum(entity, dataPoints.AM02Border, utils.getKey(ZMLookups.AM02Border, value, undefined, Number));
|
|
6593
6582
|
break;
|
|
6594
|
-
case "motor_working_mode":
|
|
6595
|
-
await sendDataPointEnum(entity, dataPoints.AM02MotorWorkingMode, utils.getKey(ZMLookups.AM02MotorWorkingMode, value));
|
|
6583
|
+
case "motor_working_mode": {
|
|
6584
|
+
await sendDataPointEnum(entity, dataPoints.AM02MotorWorkingMode, utils.getKey(ZMLookups.AM02MotorWorkingMode, value, undefined, Number));
|
|
6596
6585
|
break;
|
|
6586
|
+
}
|
|
6597
6587
|
}
|
|
6598
6588
|
},
|
|
6599
6589
|
},
|