daikin-local-control 0.3.0 → 0.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/DESIGN.md +113 -2
- package/README.md +131 -13
- package/UNSUPPORTED.md +42 -4
- package/dist/clients/classic.d.ts +2 -2
- package/dist/clients/classic.d.ts.map +1 -1
- package/dist/clients/classic.js +4 -4
- package/dist/clients/classic.js.map +1 -1
- package/dist/clients/client.d.ts +6 -2
- package/dist/clients/client.d.ts.map +1 -1
- package/dist/clients/dsiot.d.ts +3 -1
- package/dist/clients/dsiot.d.ts.map +1 -1
- package/dist/clients/dsiot.js +11 -3
- package/dist/clients/dsiot.js.map +1 -1
- package/dist/codecs/classic/capabilities.d.ts.map +1 -1
- package/dist/codecs/classic/capabilities.js +5 -11
- package/dist/codecs/classic/capabilities.js.map +1 -1
- package/dist/codecs/classic/extendedControl.d.ts.map +1 -1
- package/dist/codecs/classic/extendedControl.js +10 -19
- package/dist/codecs/classic/extendedControl.js.map +1 -1
- package/dist/codecs/classic/state.d.ts.map +1 -1
- package/dist/codecs/classic/state.js +36 -95
- package/dist/codecs/classic/state.js.map +1 -1
- package/dist/codecs/classic/tables.d.ts +32 -0
- package/dist/codecs/classic/tables.d.ts.map +1 -0
- package/dist/codecs/classic/tables.js +94 -0
- package/dist/codecs/classic/tables.js.map +1 -0
- package/dist/codecs/credentials.d.ts +3 -2
- package/dist/codecs/credentials.d.ts.map +1 -1
- package/dist/codecs/credentials.js +8 -3
- package/dist/codecs/credentials.js.map +1 -1
- package/dist/codecs/device.d.ts +2 -1
- package/dist/codecs/device.d.ts.map +1 -1
- package/dist/codecs/device.js +7 -6
- package/dist/codecs/device.js.map +1 -1
- package/dist/codecs/dsiot/capabilities.d.ts.map +1 -1
- package/dist/codecs/dsiot/capabilities.js +8 -15
- package/dist/codecs/dsiot/capabilities.js.map +1 -1
- package/dist/codecs/dsiot/device.d.ts +4 -2
- package/dist/codecs/dsiot/device.d.ts.map +1 -1
- package/dist/codecs/dsiot/device.js +8 -8
- package/dist/codecs/dsiot/device.js.map +1 -1
- package/dist/codecs/dsiot/multireq.d.ts +0 -18
- package/dist/codecs/dsiot/multireq.d.ts.map +1 -1
- package/dist/codecs/dsiot/multireq.js +2 -24
- package/dist/codecs/dsiot/multireq.js.map +1 -1
- package/dist/codecs/dsiot/state.d.ts +6 -62
- package/dist/codecs/dsiot/state.d.ts.map +1 -1
- package/dist/codecs/dsiot/state.js +29 -148
- package/dist/codecs/dsiot/state.js.map +1 -1
- package/dist/codecs/dsiot/tables.d.ts +116 -0
- package/dist/codecs/dsiot/tables.d.ts.map +1 -0
- package/dist/codecs/dsiot/tables.js +185 -0
- package/dist/codecs/dsiot/tables.js.map +1 -0
- package/dist/discovery.d.ts +2 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +9 -5
- package/dist/discovery.js.map +1 -1
- package/dist/factory.d.ts +7 -4
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +4 -2
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/models/device.d.ts +3 -1
- package/dist/models/device.d.ts.map +1 -1
- package/dist/models/state.d.ts +2 -3
- package/dist/models/state.d.ts.map +1 -1
- package/dist/simulators/classic.d.ts +61 -0
- package/dist/simulators/classic.d.ts.map +1 -0
- package/dist/simulators/classic.js +473 -0
- package/dist/simulators/classic.js.map +1 -0
- package/dist/simulators/dsiot.d.ts +49 -0
- package/dist/simulators/dsiot.d.ts.map +1 -0
- package/dist/simulators/dsiot.js +519 -0
- package/dist/simulators/dsiot.js.map +1 -0
- package/dist/simulators/index.d.ts +4 -0
- package/dist/simulators/index.d.ts.map +1 -0
- package/dist/simulators/index.js +3 -0
- package/dist/simulators/index.js.map +1 -0
- package/dist/simulators/simulator.d.ts +116 -0
- package/dist/simulators/simulator.d.ts.map +1 -0
- package/dist/simulators/simulator.js +141 -0
- package/dist/simulators/simulator.js.map +1 -0
- package/dist/transport.d.ts +6 -2
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +7 -2
- package/dist/transport.js.map +1 -1
- package/package.json +5 -2
- package/src/clients/classic.ts +8 -8
- package/src/clients/client.ts +7 -1
- package/src/clients/dsiot.ts +12 -2
- package/src/codecs/classic/capabilities.ts +8 -11
- package/src/codecs/classic/extendedControl.ts +14 -25
- package/src/codecs/classic/state.ts +49 -101
- package/src/codecs/classic/tables.ts +123 -0
- package/src/codecs/credentials.ts +11 -3
- package/src/codecs/device.ts +8 -7
- package/src/codecs/dsiot/capabilities.ts +10 -17
- package/src/codecs/dsiot/device.ts +8 -9
- package/src/codecs/dsiot/multireq.ts +2 -24
- package/src/codecs/dsiot/state.ts +57 -193
- package/src/codecs/dsiot/tables.ts +249 -0
- package/src/discovery.ts +9 -5
- package/src/factory.ts +7 -4
- package/src/index.ts +2 -0
- package/src/models/device.ts +3 -1
- package/src/models/state.ts +2 -3
- package/src/simulators/classic.ts +635 -0
- package/src/simulators/dsiot.ts +736 -0
- package/src/simulators/index.ts +9 -0
- package/src/simulators/simulator.ts +281 -0
- package/src/transport.ts +10 -3
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { FIXED_LOUVER_POSITIONS, HUMIDITY_SETTINGS, OPERATING_MODES, SPECIAL_MODES, SWING_MODES, } from "../../models/state.js";
|
|
2
|
+
import { CLASSIC_COOLING_ONLY_TYPE, CLASSIC_SPECIAL_MODE_BITS, } from "./tables.js";
|
|
2
3
|
const CAPABILITY_VERSIONS = ["0", "1", "2", "3"];
|
|
3
|
-
// `en_spmode` sets one bit for each special mode the unit takes. Bit 8 is a
|
|
4
|
-
// mode outside `SpecialMode`. The powerful and econo bits count only at
|
|
5
|
-
// `cpv=3` with a `cpv_minor` other than `00`: see UNSUPPORTED.md.
|
|
6
|
-
const SPECIAL_MODE_BITS = {
|
|
7
|
-
powerful: 1,
|
|
8
|
-
econo: 2,
|
|
9
|
-
streamer: 4,
|
|
10
|
-
};
|
|
11
4
|
const COOLING_ONLY_MODES = [
|
|
12
5
|
"cool",
|
|
13
6
|
"dehumidify",
|
|
@@ -87,11 +80,12 @@ export function parseClassicCapabilities(fields) {
|
|
|
87
80
|
};
|
|
88
81
|
}
|
|
89
82
|
// Lists none for a unit that reports no `en_spmode`, and econo in every mode
|
|
90
|
-
// but fan
|
|
83
|
+
// but fan. The powerful and econo bits count only at `cpv=3` with a
|
|
84
|
+
// `cpv_minor` other than `00`: see UNSUPPORTED.md.
|
|
91
85
|
function specialModes(fields, cpv, offeredModes) {
|
|
92
86
|
const bits = Number.parseInt(fields.en_spmode ?? "", 10);
|
|
93
87
|
const followsPowerfulAndEcono = cpv === "3" && (fields.cpv_minor ?? "00") !== "00";
|
|
94
|
-
const taken = SPECIAL_MODES.filter((specialMode) => (bits &
|
|
88
|
+
const taken = SPECIAL_MODES.filter((specialMode) => (bits & CLASSIC_SPECIAL_MODE_BITS[specialMode]) !== 0 &&
|
|
95
89
|
(specialMode === "streamer" || followsPowerfulAndEcono));
|
|
96
90
|
const inMode = (mode) => offeredModes.includes(mode)
|
|
97
91
|
? taken.filter((specialMode) => mode !== "fan" || specialMode !== "econo")
|
|
@@ -111,7 +105,7 @@ function modes(fields, cpv) {
|
|
|
111
105
|
if (!CAPABILITY_VERSIONS.includes(cpv)) {
|
|
112
106
|
return [];
|
|
113
107
|
}
|
|
114
|
-
return fields.model_type ===
|
|
108
|
+
return fields.model_type === CLASSIC_COOLING_ONLY_TYPE
|
|
115
109
|
? OPERATING_MODES.filter((mode) => COOLING_ONLY_MODES.includes(mode))
|
|
116
110
|
: [...OPERATING_MODES];
|
|
117
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/codecs/classic/capabilities.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,sBAAsB,EAEtB,iBAAiB,EACjB,eAAe,EAEf,aAAa,EAEb,WAAW,GAIZ,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/codecs/classic/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendedControl.d.ts","sourceRoot":"","sources":["../../../src/codecs/classic/extendedControl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"extendedControl.d.ts","sourceRoot":"","sources":["../../../src/codecs/classic/extendedControl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAkBzD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEpE;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,GAAG,IAAI,CAEhB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB;AAED;eACe;AACf,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,GAAG,IAAI,CAEhB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;kBACkB;AAClB,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,GAAG,IAAI,CAIhB;AAED;;yEAEyE;AACzE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAaxB;AAED;;qBAEqB;AACrB,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEtE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE7E;AAED;;mBAEmB;AACnB,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,cAAc,CAahB;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5E;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
import { decodeClassicText } from "./keyValue.js";
|
|
2
|
+
import { CLASSIC_REMOTE_METHODS, CLASSIC_SPECIAL_MODE_KIND_CODES, CLASSIC_TERMINAL_SCOPE_CODES, } from "./tables.js";
|
|
2
3
|
// Encodes each control outside `DaikinState` as the query its classic `set_*`
|
|
3
4
|
// endpoint takes, and reads each one back from the reply that reports it.
|
|
4
|
-
const TERMINAL_SCOPE_CODES = {
|
|
5
|
-
self: "0",
|
|
6
|
-
others: "1",
|
|
7
|
-
all: "2",
|
|
8
|
-
};
|
|
9
5
|
const DEMAND_MODE_CODES = {
|
|
10
6
|
manual: "0",
|
|
11
7
|
auto: "2",
|
|
12
8
|
};
|
|
13
|
-
// `spmode_kind` on the wire, which numbers the modes differently from the
|
|
14
|
-
// `adv` that `parseClassicState` reads.
|
|
15
|
-
const SPECIAL_MODE_KIND_CODES = {
|
|
16
|
-
powerful: "1",
|
|
17
|
-
econo: "2",
|
|
18
|
-
};
|
|
19
|
-
// `method`: the adapter is reached from outside the home network while it
|
|
20
|
-
// polls, and from inside only otherwise.
|
|
21
|
-
const REMOTE_METHOD_POLLING = "polling";
|
|
22
|
-
const REMOTE_METHOD_HOME_ONLY = "home only";
|
|
23
9
|
const REMOTE_METHOD_INTERVALS = ["notice_ip_int", "notice_sync_int"];
|
|
24
10
|
export function encodeClassicLed(on) {
|
|
25
11
|
return { led: flag(on) };
|
|
@@ -47,21 +33,26 @@ export function encodeClassicDemandControl(demand) {
|
|
|
47
33
|
export function encodeClassicSpecialMode(mode, enabled) {
|
|
48
34
|
return mode === "streamer"
|
|
49
35
|
? { en_streamer: flag(enabled) }
|
|
50
|
-
: {
|
|
36
|
+
: {
|
|
37
|
+
set_spmode: flag(enabled),
|
|
38
|
+
spmode_kind: CLASSIC_SPECIAL_MODE_KIND_CODES[mode],
|
|
39
|
+
};
|
|
51
40
|
}
|
|
52
41
|
/** Reads out-of-home access from a `basic_info` reply: `null` when it carries
|
|
53
42
|
* no `method`. */
|
|
54
43
|
export function parseClassicOutOfHomeAccess(fields) {
|
|
55
44
|
return fields.method === undefined
|
|
56
45
|
? null
|
|
57
|
-
: fields.method ===
|
|
46
|
+
: fields.method === CLASSIC_REMOTE_METHODS.polling;
|
|
58
47
|
}
|
|
59
48
|
/** Turns `current`, the `get_remote_method` reply, and `enabled` into the
|
|
60
49
|
* `set_remote_method` query. The endpoint takes the intervals back unchanged,
|
|
61
50
|
* so the reply's `notice_ip_int` and `notice_sync_int` are copied in. */
|
|
62
51
|
export function applyClassicOutOfHomeAccess(current, enabled) {
|
|
63
52
|
const query = {
|
|
64
|
-
method: enabled
|
|
53
|
+
method: enabled
|
|
54
|
+
? CLASSIC_REMOTE_METHODS.polling
|
|
55
|
+
: CLASSIC_REMOTE_METHODS.homeOnly,
|
|
65
56
|
};
|
|
66
57
|
for (const key of REMOTE_METHOD_INTERVALS) {
|
|
67
58
|
const value = current[key];
|
|
@@ -112,7 +103,7 @@ export function encodeClassicTerminalKey(key) {
|
|
|
112
103
|
return { key };
|
|
113
104
|
}
|
|
114
105
|
export function encodeClassicTerminalScope(scope) {
|
|
115
|
-
return { type:
|
|
106
|
+
return { type: CLASSIC_TERMINAL_SCOPE_CODES[scope] };
|
|
116
107
|
}
|
|
117
108
|
function flag(on) {
|
|
118
109
|
return on ? "1" : "0";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendedControl.js","sourceRoot":"","sources":["../../../src/codecs/classic/extendedControl.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"extendedControl.js","sourceRoot":"","sources":["../../../src/codecs/classic/extendedControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/codecs/classic/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAUjB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/codecs/classic/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAUjB,MAAM,uBAAuB,CAAC;AAsE/B;;;gCAGgC;AAChC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAa7E;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,aAAa,CAMf;AAED;;;;;;;;;yEASyE;AACzE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsGxB"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import { SPECIAL_MODES, } from "../../models/state.js";
|
|
2
2
|
import { takesClassicDirection, takesClassicHumidity } from "./capabilities.js";
|
|
3
|
+
import { CLASSIC_FAN_SPEED_CODES, CLASSIC_HORIZONTAL_POSITION_CODES, CLASSIC_HUMIDITY_SETTING_CODES, CLASSIC_LOUVER_STOP, CLASSIC_LOUVER_SWING, CLASSIC_NO_SETPOINT, CLASSIC_OPERATING_MODE_CODES, CLASSIC_SPECIAL_MODE_ADV_CODES, CLASSIC_SWING_MODE_CODES, CLASSIC_VERTICAL_POSITION_CODES, } from "./tables.js";
|
|
3
4
|
// Maps between `DaikinState` and the classic `control_info` wire fields, and reads
|
|
4
5
|
// `DaikinSensors` from `get_sensor_info`.
|
|
5
|
-
const OPERATING_MODE_CODES = {
|
|
6
|
-
auto: "1",
|
|
7
|
-
dehumidify: "2",
|
|
8
|
-
cool: "3",
|
|
9
|
-
heat: "4",
|
|
10
|
-
fan: "6",
|
|
11
|
-
};
|
|
12
6
|
const OPERATING_MODES_BY_CODE = {
|
|
13
7
|
"0": "auto",
|
|
14
8
|
"1": "auto",
|
|
@@ -18,83 +12,25 @@ const OPERATING_MODES_BY_CODE = {
|
|
|
18
12
|
"4": "heat",
|
|
19
13
|
"6": "fan",
|
|
20
14
|
};
|
|
21
|
-
const
|
|
22
|
-
auto: "A",
|
|
23
|
-
silent: "B",
|
|
24
|
-
level1: "3",
|
|
25
|
-
level2: "4",
|
|
26
|
-
level3: "5",
|
|
27
|
-
level4: "6",
|
|
28
|
-
level5: "7",
|
|
29
|
-
};
|
|
30
|
-
const FAN_SPEEDS_BY_CODE = Object.fromEntries(Object.entries(FAN_SPEED_CODES).map(([speed, code]) => [
|
|
15
|
+
const FAN_SPEEDS_BY_CODE = Object.fromEntries(Object.entries(CLASSIC_FAN_SPEED_CODES).map(([speed, code]) => [
|
|
31
16
|
code,
|
|
32
17
|
speed,
|
|
33
18
|
]));
|
|
34
|
-
const
|
|
35
|
-
off: "0",
|
|
36
|
-
vertical: "1",
|
|
37
|
-
horizontal: "2",
|
|
38
|
-
both: "3",
|
|
39
|
-
};
|
|
40
|
-
const SWING_MODES_BY_CODE = Object.fromEntries(Object.entries(SWING_MODE_CODES).map(([swing, code]) => [
|
|
19
|
+
const SWING_MODES_BY_CODE = Object.fromEntries(Object.entries(CLASSIC_SWING_MODE_CODES).map(([swing, code]) => [
|
|
41
20
|
code,
|
|
42
21
|
swing,
|
|
43
22
|
]));
|
|
44
|
-
|
|
45
|
-
// a letter for the rest.
|
|
46
|
-
const LOUVER_STOP = "0";
|
|
47
|
-
const LOUVER_SWING = "S";
|
|
48
|
-
const VERTICAL_POSITION_CODES = {
|
|
49
|
-
stop: LOUVER_STOP,
|
|
50
|
-
position1: "1",
|
|
51
|
-
position2: "2",
|
|
52
|
-
position3: "3",
|
|
53
|
-
position4: "4",
|
|
54
|
-
position5: "5",
|
|
55
|
-
swing: LOUVER_SWING,
|
|
56
|
-
naturalWind: "N",
|
|
57
|
-
auto: "A",
|
|
58
|
-
floorWarming: "F",
|
|
59
|
-
};
|
|
60
|
-
const HORIZONTAL_POSITION_CODES = {
|
|
61
|
-
stop: LOUVER_STOP,
|
|
62
|
-
position1: "1",
|
|
63
|
-
position2: "2",
|
|
64
|
-
position3: "3",
|
|
65
|
-
position4: "4",
|
|
66
|
-
position5: "5",
|
|
67
|
-
swing: LOUVER_SWING,
|
|
68
|
-
auto: "A",
|
|
69
|
-
};
|
|
70
|
-
const VERTICAL_POSITIONS_BY_CODE = Object.fromEntries(Object.entries(VERTICAL_POSITION_CODES).map(([position, code]) => [
|
|
71
|
-
code,
|
|
72
|
-
position,
|
|
73
|
-
]));
|
|
74
|
-
const HORIZONTAL_POSITIONS_BY_CODE = Object.fromEntries(Object.entries(HORIZONTAL_POSITION_CODES).map(([position, code]) => [
|
|
23
|
+
const VERTICAL_POSITIONS_BY_CODE = Object.fromEntries(Object.entries(CLASSIC_VERTICAL_POSITION_CODES).map(([position, code]) => [
|
|
75
24
|
code,
|
|
76
25
|
position,
|
|
77
26
|
]));
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
autoLow: "AUTO_L",
|
|
81
|
-
auto: "AUTO",
|
|
82
|
-
autoHigh: "AUTO_H",
|
|
83
|
-
continuous: "CONTINUE",
|
|
84
|
-
};
|
|
85
|
-
const HUMIDITY_SETTINGS_BY_CODE = Object.fromEntries(Object.entries(HUMIDITY_SETTING_CODES).map(([setting, code]) => [
|
|
27
|
+
const HORIZONTAL_POSITIONS_BY_CODE = Object.fromEntries(Object.entries(CLASSIC_HORIZONTAL_POSITION_CODES).map(([position, code]) => [code, position]));
|
|
28
|
+
const HUMIDITY_SETTINGS_BY_CODE = Object.fromEntries(Object.entries(CLASSIC_HUMIDITY_SETTING_CODES).map(([setting, code]) => [
|
|
86
29
|
code,
|
|
87
30
|
setting,
|
|
88
31
|
]));
|
|
89
|
-
//
|
|
90
|
-
const
|
|
91
|
-
powerful: "2",
|
|
92
|
-
econo: "12",
|
|
93
|
-
streamer: "13",
|
|
94
|
-
};
|
|
95
|
-
// Fan mode keeps no setpoint memory, and dehumidify runs the fan on auto only.
|
|
96
|
-
const NO_SETPOINT = "--";
|
|
97
|
-
const DEHUMIDIFY_FAN_SPEED = "A";
|
|
32
|
+
// Dehumidify runs the fan on auto only.
|
|
33
|
+
const DEHUMIDIFY_FAN_SPEED = CLASSIC_FAN_SPEED_CODES.auto;
|
|
98
34
|
// In `ndfd<mode>`, a louver the unit lacks.
|
|
99
35
|
const NO_LOUVER = "-";
|
|
100
36
|
/** Turns a `get_control_info` reply into a `DaikinState`. A `mode` or `f_rate`
|
|
@@ -137,23 +73,23 @@ export function applyClassicControl(current, control, capabilityFields) {
|
|
|
137
73
|
// A mode outside the model is sent back as it came.
|
|
138
74
|
const currentMode = heldMode === undefined
|
|
139
75
|
? (current.mode ?? "")
|
|
140
|
-
:
|
|
76
|
+
: CLASSIC_OPERATING_MODE_CODES[heldMode];
|
|
141
77
|
const mode = control.mode === undefined
|
|
142
78
|
? currentMode
|
|
143
|
-
:
|
|
79
|
+
: CLASSIC_OPERATING_MODE_CODES[control.mode];
|
|
144
80
|
const modeChanged = mode !== currentMode;
|
|
145
81
|
const remembered = (field, memoryPrefix) => (modeChanged ? current[`${memoryPrefix}${mode}`] : undefined) ??
|
|
146
82
|
current[field] ??
|
|
147
83
|
"";
|
|
148
84
|
const power = control.power ?? current.pow === "1";
|
|
149
85
|
const next = { pow: power ? "1" : "0", mode };
|
|
150
|
-
const setpointFrozen = mode ===
|
|
86
|
+
const setpointFrozen = mode === CLASSIC_OPERATING_MODE_CODES.fan;
|
|
151
87
|
// Only a mode in the model has a `dt` and a `dh` memory.
|
|
152
88
|
const hasMemory = !setpointFrozen && (control.mode !== undefined || heldMode !== undefined);
|
|
153
89
|
next.stemp = setpointFrozen
|
|
154
|
-
?
|
|
90
|
+
? CLASSIC_NO_SETPOINT
|
|
155
91
|
: control.targetTemperatureInC != null &&
|
|
156
|
-
mode !==
|
|
92
|
+
mode !== CLASSIC_OPERATING_MODE_CODES.dehumidify
|
|
157
93
|
? control.targetTemperatureInC.toFixed(1)
|
|
158
94
|
: remembered("stemp", "dt");
|
|
159
95
|
if (hasMemory) {
|
|
@@ -161,7 +97,7 @@ export function applyClassicControl(current, control, capabilityFields) {
|
|
|
161
97
|
}
|
|
162
98
|
if (takesClassicHumidity(capabilityFields)) {
|
|
163
99
|
next.shum = setpointFrozen
|
|
164
|
-
?
|
|
100
|
+
? CLASSIC_NO_SETPOINT
|
|
165
101
|
: control.targetHumidity != null
|
|
166
102
|
? encodeTargetHumidity(control.targetHumidity)
|
|
167
103
|
: remembered("shum", "dh");
|
|
@@ -170,55 +106,60 @@ export function applyClassicControl(current, control, capabilityFields) {
|
|
|
170
106
|
}
|
|
171
107
|
}
|
|
172
108
|
next.f_rate =
|
|
173
|
-
mode ===
|
|
109
|
+
mode === CLASSIC_OPERATING_MODE_CODES.dehumidify
|
|
174
110
|
? DEHUMIDIFY_FAN_SPEED
|
|
175
111
|
: control.fanSpeed === undefined
|
|
176
112
|
? remembered("f_rate", "dfr")
|
|
177
|
-
:
|
|
113
|
+
: CLASSIC_FAN_SPEED_CODES[control.fanSpeed];
|
|
178
114
|
if (capabilityFields.en_fdir2 === "1") {
|
|
179
115
|
// `ndfd<mode>` holds the mode's `f_dir_ud` value, then its `f_dir_lr`
|
|
180
116
|
// value. A value outside the model is sent back as it came.
|
|
181
117
|
const louverMemory = modeChanged ? current[`ndfd${mode}`] : undefined;
|
|
182
|
-
let vertical = rememberedLouver(louverMemory, 0) ||
|
|
183
|
-
|
|
118
|
+
let vertical = rememberedLouver(louverMemory, 0) ||
|
|
119
|
+
current.f_dir_ud ||
|
|
120
|
+
CLASSIC_LOUVER_STOP;
|
|
121
|
+
let horizontal = rememberedLouver(louverMemory, 1) ||
|
|
122
|
+
current.f_dir_lr ||
|
|
123
|
+
CLASSIC_LOUVER_STOP;
|
|
184
124
|
if (control.swingMode !== undefined) {
|
|
185
125
|
const swingsVertically = control.swingMode === "vertical" || control.swingMode === "both";
|
|
186
126
|
const swingsHorizontally = control.swingMode === "horizontal" || control.swingMode === "both";
|
|
187
127
|
vertical = swingsVertically
|
|
188
|
-
?
|
|
189
|
-
: vertical ===
|
|
190
|
-
?
|
|
128
|
+
? CLASSIC_LOUVER_SWING
|
|
129
|
+
: vertical === CLASSIC_LOUVER_SWING
|
|
130
|
+
? CLASSIC_LOUVER_STOP
|
|
191
131
|
: vertical;
|
|
192
132
|
horizontal = swingsHorizontally
|
|
193
|
-
?
|
|
194
|
-
: horizontal ===
|
|
195
|
-
?
|
|
133
|
+
? CLASSIC_LOUVER_SWING
|
|
134
|
+
: horizontal === CLASSIC_LOUVER_SWING
|
|
135
|
+
? CLASSIC_LOUVER_STOP
|
|
196
136
|
: horizontal;
|
|
197
137
|
}
|
|
198
138
|
if (control.verticalPosition != null) {
|
|
199
|
-
vertical =
|
|
139
|
+
vertical = CLASSIC_VERTICAL_POSITION_CODES[control.verticalPosition];
|
|
200
140
|
}
|
|
201
141
|
if (control.horizontalPosition != null) {
|
|
202
|
-
horizontal =
|
|
142
|
+
horizontal =
|
|
143
|
+
CLASSIC_HORIZONTAL_POSITION_CODES[control.horizontalPosition];
|
|
203
144
|
}
|
|
204
145
|
next.f_dir_ud = vertical;
|
|
205
146
|
next.f_dir_lr = horizontal;
|
|
206
147
|
if (takesDirection) {
|
|
207
|
-
next.f_dir = String((vertical ===
|
|
208
|
-
(horizontal ===
|
|
148
|
+
next.f_dir = String((vertical === CLASSIC_LOUVER_SWING ? 1 : 0) |
|
|
149
|
+
(horizontal === CLASSIC_LOUVER_SWING ? 2 : 0));
|
|
209
150
|
}
|
|
210
151
|
}
|
|
211
152
|
else if (takesDirection) {
|
|
212
153
|
next.f_dir =
|
|
213
154
|
control.swingMode === undefined
|
|
214
155
|
? remembered("f_dir", "dfd")
|
|
215
|
-
:
|
|
156
|
+
: CLASSIC_SWING_MODE_CODES[control.swingMode];
|
|
216
157
|
}
|
|
217
158
|
return next;
|
|
218
159
|
}
|
|
219
160
|
function parseSpecialModes(adv) {
|
|
220
161
|
const codes = (adv ?? "").split("/");
|
|
221
|
-
return SPECIAL_MODES.filter((mode) => codes.includes(
|
|
162
|
+
return SPECIAL_MODES.filter((mode) => codes.includes(CLASSIC_SPECIAL_MODE_ADV_CODES[mode]));
|
|
222
163
|
}
|
|
223
164
|
function parseTargetHumidity(shum) {
|
|
224
165
|
const setting = HUMIDITY_SETTINGS_BY_CODE[shum ?? ""];
|
|
@@ -230,7 +171,7 @@ function parseTargetHumidity(shum) {
|
|
|
230
171
|
}
|
|
231
172
|
function encodeTargetHumidity(targetHumidity) {
|
|
232
173
|
return typeof targetHumidity === "string"
|
|
233
|
-
?
|
|
174
|
+
? CLASSIC_HUMIDITY_SETTING_CODES[targetHumidity]
|
|
234
175
|
: String(targetHumidity.percent);
|
|
235
176
|
}
|
|
236
177
|
function rememberedLouver(louverMemory, index) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/codecs/classic/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,aAAa,GAKd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/codecs/classic/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { TerminalScope } from "../../models/extendedControl.js";
|
|
2
|
+
import type { FanSpeed, HorizontalPosition, HumiditySetting, OperatingMode, SpecialMode, SwingMode, VerticalPosition } from "../../models/state.js";
|
|
3
|
+
export declare const CLASSIC_OPERATING_MODE_CODES: Record<OperatingMode, string>;
|
|
4
|
+
export declare const CLASSIC_FAN_SPEED_CODES: Record<FanSpeed, string>;
|
|
5
|
+
export declare const CLASSIC_SWING_MODE_CODES: Record<SwingMode, string>;
|
|
6
|
+
export declare const CLASSIC_LOUVER_STOP = "0";
|
|
7
|
+
export declare const CLASSIC_LOUVER_SWING = "S";
|
|
8
|
+
export declare const CLASSIC_VERTICAL_POSITION_CODES: Record<VerticalPosition, string>;
|
|
9
|
+
export declare const CLASSIC_HORIZONTAL_POSITION_CODES: Record<HorizontalPosition, string>;
|
|
10
|
+
export declare const CLASSIC_HUMIDITY_SETTING_CODES: Record<HumiditySetting, string>;
|
|
11
|
+
/** What `stemp` and `shum` hold in a mode that has neither, such as fan. */
|
|
12
|
+
export declare const CLASSIC_NO_SETPOINT = "--";
|
|
13
|
+
/** `adv` holds one code for each special mode that is on, separated by
|
|
14
|
+
* `/`. */
|
|
15
|
+
export declare const CLASSIC_SPECIAL_MODE_ADV_CODES: Record<SpecialMode, string>;
|
|
16
|
+
/** `spmode_kind` in `set_special_mode`, which numbers the modes differently
|
|
17
|
+
* from `adv`. The streamer has a parameter of its own, `en_streamer`. */
|
|
18
|
+
export declare const CLASSIC_SPECIAL_MODE_KIND_CODES: Record<Exclude<SpecialMode, "streamer">, string>;
|
|
19
|
+
/** `en_spmode` sets one bit for each special mode the unit takes. Bit 8 is a
|
|
20
|
+
* mode outside `SpecialMode`. */
|
|
21
|
+
export declare const CLASSIC_SPECIAL_MODE_BITS: Record<SpecialMode, number>;
|
|
22
|
+
/** `type` in `get_model_info` on a unit that only cools. */
|
|
23
|
+
export declare const CLASSIC_COOLING_ONLY_TYPE = "C";
|
|
24
|
+
/** `type` in `unregister_terminal`. */
|
|
25
|
+
export declare const CLASSIC_TERMINAL_SCOPE_CODES: Record<TerminalScope, string>;
|
|
26
|
+
/** `method`: the adapter is reached from outside the home network while it
|
|
27
|
+
* polls, and from inside only otherwise. */
|
|
28
|
+
export declare const CLASSIC_REMOTE_METHODS: {
|
|
29
|
+
readonly polling: "polling";
|
|
30
|
+
readonly homeOnly: "home only";
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/codecs/classic/tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,WAAW,EACX,SAAS,EACT,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAK/B,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAMtE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQ5D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAK9D,CAAC;AAIF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAY1E,CAAC;AACJ,eAAO,MAAM,iCAAiC,EAAE,MAAM,CACpD,kBAAkB,EAClB,MAAM,CAUP,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAM1E,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;UACU;AACV,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAItE,CAAC;AAEF;yEACyE;AACzE,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAClD,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,EAChC,MAAM,CAIP,CAAC;AAEF;iCACiC;AACjC,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAIjE,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,uCAAuC;AACvC,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAItE,CAAC;AAEF;4CAC4C;AAC5C,eAAO,MAAM,sBAAsB;aACjC,OAAO,EAAE,SAAS;aAClB,QAAQ,EAAE,WAAW;CACb,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// The codes a classic adapter holds each value of a model as. The codecs and
|
|
2
|
+
// the simulators both read them from here: see DESIGN.md#simulators.
|
|
3
|
+
export const CLASSIC_OPERATING_MODE_CODES = {
|
|
4
|
+
auto: "1",
|
|
5
|
+
dehumidify: "2",
|
|
6
|
+
cool: "3",
|
|
7
|
+
heat: "4",
|
|
8
|
+
fan: "6",
|
|
9
|
+
};
|
|
10
|
+
export const CLASSIC_FAN_SPEED_CODES = {
|
|
11
|
+
auto: "A",
|
|
12
|
+
silent: "B",
|
|
13
|
+
level1: "3",
|
|
14
|
+
level2: "4",
|
|
15
|
+
level3: "5",
|
|
16
|
+
level4: "6",
|
|
17
|
+
level5: "7",
|
|
18
|
+
};
|
|
19
|
+
export const CLASSIC_SWING_MODE_CODES = {
|
|
20
|
+
off: "0",
|
|
21
|
+
vertical: "1",
|
|
22
|
+
horizontal: "2",
|
|
23
|
+
both: "3",
|
|
24
|
+
};
|
|
25
|
+
// `f_dir_ud` and `f_dir_lr` carry a digit for stop and each fixed position, and
|
|
26
|
+
// a letter for the rest.
|
|
27
|
+
export const CLASSIC_LOUVER_STOP = "0";
|
|
28
|
+
export const CLASSIC_LOUVER_SWING = "S";
|
|
29
|
+
export const CLASSIC_VERTICAL_POSITION_CODES = {
|
|
30
|
+
stop: CLASSIC_LOUVER_STOP,
|
|
31
|
+
position1: "1",
|
|
32
|
+
position2: "2",
|
|
33
|
+
position3: "3",
|
|
34
|
+
position4: "4",
|
|
35
|
+
position5: "5",
|
|
36
|
+
swing: CLASSIC_LOUVER_SWING,
|
|
37
|
+
naturalWind: "N",
|
|
38
|
+
auto: "A",
|
|
39
|
+
floorWarming: "F",
|
|
40
|
+
};
|
|
41
|
+
export const CLASSIC_HORIZONTAL_POSITION_CODES = {
|
|
42
|
+
stop: CLASSIC_LOUVER_STOP,
|
|
43
|
+
position1: "1",
|
|
44
|
+
position2: "2",
|
|
45
|
+
position3: "3",
|
|
46
|
+
position4: "4",
|
|
47
|
+
position5: "5",
|
|
48
|
+
swing: CLASSIC_LOUVER_SWING,
|
|
49
|
+
auto: "A",
|
|
50
|
+
};
|
|
51
|
+
export const CLASSIC_HUMIDITY_SETTING_CODES = {
|
|
52
|
+
off: "0",
|
|
53
|
+
autoLow: "AUTO_L",
|
|
54
|
+
auto: "AUTO",
|
|
55
|
+
autoHigh: "AUTO_H",
|
|
56
|
+
continuous: "CONTINUE",
|
|
57
|
+
};
|
|
58
|
+
/** What `stemp` and `shum` hold in a mode that has neither, such as fan. */
|
|
59
|
+
export const CLASSIC_NO_SETPOINT = "--";
|
|
60
|
+
/** `adv` holds one code for each special mode that is on, separated by
|
|
61
|
+
* `/`. */
|
|
62
|
+
export const CLASSIC_SPECIAL_MODE_ADV_CODES = {
|
|
63
|
+
powerful: "2",
|
|
64
|
+
econo: "12",
|
|
65
|
+
streamer: "13",
|
|
66
|
+
};
|
|
67
|
+
/** `spmode_kind` in `set_special_mode`, which numbers the modes differently
|
|
68
|
+
* from `adv`. The streamer has a parameter of its own, `en_streamer`. */
|
|
69
|
+
export const CLASSIC_SPECIAL_MODE_KIND_CODES = {
|
|
70
|
+
powerful: "1",
|
|
71
|
+
econo: "2",
|
|
72
|
+
};
|
|
73
|
+
/** `en_spmode` sets one bit for each special mode the unit takes. Bit 8 is a
|
|
74
|
+
* mode outside `SpecialMode`. */
|
|
75
|
+
export const CLASSIC_SPECIAL_MODE_BITS = {
|
|
76
|
+
powerful: 1,
|
|
77
|
+
econo: 2,
|
|
78
|
+
streamer: 4,
|
|
79
|
+
};
|
|
80
|
+
/** `type` in `get_model_info` on a unit that only cools. */
|
|
81
|
+
export const CLASSIC_COOLING_ONLY_TYPE = "C";
|
|
82
|
+
/** `type` in `unregister_terminal`. */
|
|
83
|
+
export const CLASSIC_TERMINAL_SCOPE_CODES = {
|
|
84
|
+
self: "0",
|
|
85
|
+
others: "1",
|
|
86
|
+
all: "2",
|
|
87
|
+
};
|
|
88
|
+
/** `method`: the adapter is reached from outside the home network while it
|
|
89
|
+
* polls, and from inside only otherwise. */
|
|
90
|
+
export const CLASSIC_REMOTE_METHODS = {
|
|
91
|
+
polling: "polling",
|
|
92
|
+
homeOnly: "home only",
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/codecs/classic/tables.ts"],"names":[],"mappings":"AAWA,6EAA6E;AAC7E,qEAAqE;AAErE,MAAM,CAAC,MAAM,4BAA4B,GAAkC;IACzE,IAAI,EAAE,GAAG;IACT,UAAU,EAAE,GAAG;IACf,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA6B;IAC/D,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE,GAAG,EAAE,GAAG;IACR,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;IACf,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,gFAAgF;AAChF,yBAAyB;AACzB,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,+BAA+B,GAC1C;IACE,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,GAAG;IAChB,IAAI,EAAE,GAAG;IACT,YAAY,EAAE,GAAG;CAClB,CAAC;AACJ,MAAM,CAAC,MAAM,iCAAiC,GAG1C;IACF,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAoC;IAC7E,GAAG,EAAE,GAAG;IACR,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,UAAU;CACvB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;UACU;AACV,MAAM,CAAC,MAAM,8BAA8B,GAAgC;IACzE,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;yEACyE;AACzE,MAAM,CAAC,MAAM,+BAA+B,GAGxC;IACF,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG;CACX,CAAC;AAEF;iCACiC;AACjC,MAAM,CAAC,MAAM,yBAAyB,GAAgC;IACpE,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C,uCAAuC;AACvC,MAAM,CAAC,MAAM,4BAA4B,GAAkC;IACzE,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,GAAG;CACT,CAAC;AAEF;4CAC4C;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,WAAW;CACb,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
/** The header that carries the terminal uuid on every call.
|
|
2
|
-
* the uuid
|
|
1
|
+
/** The header that carries the terminal uuid on every call. It throws an
|
|
2
|
+
* `Error` unless the uuid is 32 lowercase hexadecimal digits, a UUID without
|
|
3
|
+
* its dashes: whether the adapter accepts any other form is not known. */
|
|
3
4
|
export declare function encodeTerminalUuid(uuid: string): Record<string, string>;
|
|
4
5
|
/** The query parameter a classic adapter takes the local password as. */
|
|
5
6
|
export declare function encodeClassicLocalPassword(localPassword: string): Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/codecs/credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/codecs/credentials.ts"],"names":[],"mappings":"AAEA;;0EAE0E;AAC1E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOvE;AAED,yEAAyE;AACzE,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB;AAED,8DAA8D;AAC9D,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const TERMINAL_UUID_PATTERN = /^[0-9a-f]{32}$/;
|
|
2
|
+
/** The header that carries the terminal uuid on every call. It throws an
|
|
3
|
+
* `Error` unless the uuid is 32 lowercase hexadecimal digits, a UUID without
|
|
4
|
+
* its dashes: whether the adapter accepts any other form is not known. */
|
|
3
5
|
export function encodeTerminalUuid(uuid) {
|
|
4
|
-
|
|
6
|
+
if (!TERMINAL_UUID_PATTERN.test(uuid)) {
|
|
7
|
+
throw new Error("The terminal uuid must be 32 lowercase hexadecimal digits, without dashes");
|
|
8
|
+
}
|
|
9
|
+
return { "X-Daikin-uuid": uuid };
|
|
5
10
|
}
|
|
6
11
|
/** The query parameter a classic adapter takes the local password as. */
|
|
7
12
|
export function encodeClassicLocalPassword(localPassword) {
|