daikin-local-control 0.1.2 → 0.2.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 +3 -3
- package/README.md +3 -3
- package/dist/codecs/classic/capabilities.js +7 -7
- package/dist/codecs/classic/capabilities.js.map +1 -1
- package/dist/codecs/dsiot/capabilities.js +2 -2
- package/dist/codecs/dsiot/capabilities.js.map +1 -1
- package/dist/models/capabilities.d.ts +2 -2
- package/dist/models/capabilities.d.ts.map +1 -1
- package/dist/models/state.d.ts +1 -1
- package/dist/models/state.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/codecs/classic/capabilities.ts +7 -7
- package/src/codecs/dsiot/capabilities.ts +2 -2
- package/src/models/capabilities.ts +2 -2
- package/src/models/state.ts +1 -1
package/DESIGN.md
CHANGED
|
@@ -26,7 +26,7 @@ is not safe to repeat.
|
|
|
26
26
|
## Capabilities
|
|
27
27
|
|
|
28
28
|
`DaikinCapabilities` lists what a unit accepts in the vocabulary of `DaikinState`:
|
|
29
|
-
`fanSpeeds` holds `FanSpeed` values, and `
|
|
29
|
+
`fanSpeeds` holds `FanSpeed` values, and `targetTemperaturesInC` holds one range per
|
|
30
30
|
`OperatingMode`, `null` where the mode has no setpoint or the unit does not offer it.
|
|
31
31
|
|
|
32
32
|
Rejected: a `DaikinCapabilities` shaped like the adapter's own flags (`fan.controllable`,
|
|
@@ -55,7 +55,7 @@ and `get_model_info` fields and passing them to `parseClassicCapabilities`.
|
|
|
55
55
|
|
|
56
56
|
`DaikinState.targetHumidity` holds a `HumiditySetting` such as `off` or
|
|
57
57
|
`autoHigh`, or a percentage as `{ percent: 50 }`, and
|
|
58
|
-
`DaikinCapabilities.
|
|
58
|
+
`DaikinCapabilities.targetHumidities` lists, for each mode, the values a unit
|
|
59
59
|
takes. `setState` still encodes a percentage it is given, as it encodes a fan
|
|
60
60
|
speed outside `DaikinCapabilities.fanSpeeds`.
|
|
61
61
|
|
|
@@ -74,7 +74,7 @@ Rejected: a percentage as a bare `number`, with 0 for off.
|
|
|
74
74
|
- The field holds a setting as often as a quantity, so its name cannot carry
|
|
75
75
|
the unit, and a caller read `targetHumidity: 50` without one.
|
|
76
76
|
- Off is a setting, not a quantity: a unit that takes no percentage still
|
|
77
|
-
takes off, so 0 was the one number `DaikinCapabilities.
|
|
77
|
+
takes off, so 0 was the one number `DaikinCapabilities.targetHumidities`
|
|
78
78
|
listed beside the named settings.
|
|
79
79
|
|
|
80
80
|
## Louver positions
|
package/README.md
CHANGED
|
@@ -156,14 +156,14 @@ is not your Wi-Fi or Out-of-Home password. Pass it as `localPassword` to
|
|
|
156
156
|
| `horizontalPosition` | `stop`, `position1` to `position5`, `swing` or `auto`, or `null` where the unit reports none |
|
|
157
157
|
|
|
158
158
|
`getCapabilities()` resolves with a `DaikinCapabilities`, which lists the
|
|
159
|
-
values this unit takes under the
|
|
159
|
+
values this unit takes under the plural of the state field each one limits:
|
|
160
160
|
|
|
161
161
|
| Field | Holds |
|
|
162
162
|
| --- | --- |
|
|
163
163
|
| `modes` | The modes the unit offers |
|
|
164
164
|
| `fanSpeeds`, `swingModes`, `verticalPositions`, `horizontalPositions` | The values the unit takes, empty when it has no such control |
|
|
165
|
-
| `
|
|
166
|
-
| `
|
|
165
|
+
| `targetTemperaturesInC` | For each mode, `{ min, max, step }` in °C, or `null` where the mode has no setpoint |
|
|
166
|
+
| `targetHumidities` | For each mode, the humidity settings it takes, empty where it takes none |
|
|
167
167
|
| `specialOutlet`, `energyMonitoring`, `demandControl`, `scheduleTimer` | `true` when the unit has the feature |
|
|
168
168
|
| `model` | The adapter's own code for the unit's model |
|
|
169
169
|
|
|
@@ -59,7 +59,7 @@ export function parseClassicCapabilities(fields) {
|
|
|
59
59
|
swingModes: swingModes(fields),
|
|
60
60
|
verticalPositions: threeD ? verticalPositions(fields) : [],
|
|
61
61
|
horizontalPositions: threeD ? horizontalPositions(fields) : [],
|
|
62
|
-
|
|
62
|
+
targetTemperaturesInC: {
|
|
63
63
|
// Only `subtype=qa` units report an auto range; the rest are fixed.
|
|
64
64
|
auto: offered("auto", fields.subtype === "qa"
|
|
65
65
|
? range(fields.hmlmt_l, 18, fields.cmlmt_h, 30)
|
|
@@ -69,7 +69,7 @@ export function parseClassicCapabilities(fields) {
|
|
|
69
69
|
dehumidify: null,
|
|
70
70
|
fan: null,
|
|
71
71
|
},
|
|
72
|
-
|
|
72
|
+
targetHumidities: targetHumidities(fields, modern, offeredModes),
|
|
73
73
|
specialOutlet: cpv === "3" && fields.airoutlet_pv === "0",
|
|
74
74
|
energyMonitoring: fields.elec === "1",
|
|
75
75
|
demandControl: fields.adp_kind === "4" && fields.dmnd === "1",
|
|
@@ -116,7 +116,7 @@ function fanSpeeds(fields, modern) {
|
|
|
116
116
|
export function takesClassicHumidity(fields) {
|
|
117
117
|
return fields.subtype !== "qa";
|
|
118
118
|
}
|
|
119
|
-
function
|
|
119
|
+
function targetHumidities(fields, modern, offeredModes) {
|
|
120
120
|
const mask = modern && takesClassicHumidity(fields)
|
|
121
121
|
? Number.parseInt(fields.s_humd ?? "", 10)
|
|
122
122
|
: 0;
|
|
@@ -158,13 +158,13 @@ export function takesClassicDirection(fields) {
|
|
|
158
158
|
// fixed positions (only when `s_fdir_ud_step=5`). Stop is offered unless a
|
|
159
159
|
// fixed position is.
|
|
160
160
|
function verticalPositions(fields) {
|
|
161
|
-
const
|
|
161
|
+
const stopAndSwing = ["swing", "stop"];
|
|
162
162
|
if (!present(fields, "s_fdir_ud")) {
|
|
163
|
-
return
|
|
163
|
+
return stopAndSwing;
|
|
164
164
|
}
|
|
165
165
|
const mask = Number.parseInt(fields.s_fdir_ud ?? "", 16);
|
|
166
166
|
if (!Number.isFinite(mask)) {
|
|
167
|
-
return
|
|
167
|
+
return stopAndSwing;
|
|
168
168
|
}
|
|
169
169
|
const positions = [];
|
|
170
170
|
if (mask & 0x01) {
|
|
@@ -176,7 +176,7 @@ function verticalPositions(fields) {
|
|
|
176
176
|
if (mask & 0x80) {
|
|
177
177
|
const steps = Number.parseInt(fields.s_fdir_ud_step ?? "", 10);
|
|
178
178
|
if (!(steps >= 0 && steps <= 5)) {
|
|
179
|
-
return
|
|
179
|
+
return stopAndSwing;
|
|
180
180
|
}
|
|
181
181
|
if (steps === 5) {
|
|
182
182
|
positions.push(...FIXED_LOUVER_POSITIONS);
|
|
@@ -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,WAAW,GAIZ,MAAM,uBAAuB,CAAC;AAE/B,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjD,MAAM,kBAAkB,GAA6B;IACnD,MAAM;IACN,YAAY;IACZ,KAAK;CACN,CAAC;AACF,MAAM,oBAAoB,GAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC9D,MAAM,cAAc,GAAe;IACjC,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACT,CAAC;AACF,MAAM,mBAAmB,GAA+B;IACtD,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACzB,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnC,GAAG,EAAE,cAAc;CACpB,CAAC;AACF,8EAA8E;AAC9E,WAAW;AACX,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,IAAI;CACR,CAAC;AACX,2BAA2B;AAC3B,MAAM,4BAA4B,GAAG,iBAAiB,CAAC,MAAM,CAC3D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,CAC/B,CAAC;AAEF;;;;yBAIyB;AACzB,MAAM,UAAU,4BAA4B,CAC1C,SAAiC,EACjC,SAAiC;IAEjC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC;IAChD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC;IAChD,OAAO;QACL,GAAG,KAAK;QACR,GAAG,KAAK;QACR,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAC7D,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED;;;qBAGqB;AACrB,MAAM,UAAU,wBAAwB,CACtC,MAA8B;IAE9B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,KAAK,GAAG,CAAC;IACvC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,CAAC,IAAmB,EAAE,KAAuB,EAAE,EAAE,CAC/D,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7C,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;QACpC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC;QAC9B,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1D,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QAC9D,
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/codecs/classic/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,14 +45,14 @@ export function parseDsiotCapabilities(values) {
|
|
|
45
45
|
horizontalPositions: horizontal
|
|
46
46
|
? horizontalPositions(louverMask(values, "horizontal"))
|
|
47
47
|
: [],
|
|
48
|
-
|
|
48
|
+
targetTemperaturesInC: {
|
|
49
49
|
auto: offered("auto", { min: 18, max: 30, step: 0.5 }),
|
|
50
50
|
cool: offered("cool", range(values, DSIOT_MODE_PATHS.cool.setpoint, 18, 32)),
|
|
51
51
|
heat: offered("heat", range(values, DSIOT_MODE_PATHS.heat.setpoint, 10, 30)),
|
|
52
52
|
dehumidify: null,
|
|
53
53
|
fan: null,
|
|
54
54
|
},
|
|
55
|
-
|
|
55
|
+
targetHumidities: {
|
|
56
56
|
auto: humiditySettings("auto"),
|
|
57
57
|
// Dehumidify takes no off.
|
|
58
58
|
dehumidify: humiditySettings("dehumidify").filter((setting) => setting !== "off"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/codecs/dsiot/capabilities.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EAEV,sBAAsB,EACtB,oBAAoB,EAEpB,iBAAiB,EACjB,eAAe,EAEf,WAAW,EAEX,kBAAkB,GAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,gBAAgB,EAChB,WAAW,EACX,8BAA8B,EAE9B,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEnD,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,YAAY;IAClB,gBAAgB,EAAE,sBAAsB;IACxC,aAAa,EAAE,sBAAsB;IACrC,aAAa,EAAE,uBAAuB;CAC9B,CAAC;AAEX,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,kBAAkB,GAA6B;IACnD,YAAY;IACZ,MAAM;IACN,KAAK;CACN,CAAC;AAEF,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,eAAe,GAAsB,sBAAsB,CAAC;AAIlE;yDACyD;AACzD,MAAM,UAAU,sBAAsB,CACpC,MAA8B;IAE9B,MAAM,KAAK,GACT,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,uBAAuB;QACvD,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;QACzB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,IAAmB,EAAE,KAAuB,EAAE,EAAE,CAC/D,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,yEAAyE;IACzE,MAAM,gBAAgB,GAAG,CAAC,IAAmB,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;QACnD,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,MAAM;YACjE,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;YACxB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,gBAAgB,GACpB,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,GAAG;QAC9C,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAEhD,OAAO;QACL,KAAK;QACL,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;QAC5B,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC5C,iBAAiB,EAAE,QAAQ;YACzB,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACnD,CAAC,CAAC,EAAE;QACN,mBAAmB,EAAE,UAAU;YAC7B,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACvD,CAAC,CAAC,EAAE;QACN,
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/codecs/dsiot/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,10 @@ export interface DaikinCapabilities {
|
|
|
26
26
|
horizontalPositions: readonly HorizontalPosition[];
|
|
27
27
|
/** Setpoint range per mode; `null` where the mode has no setpoint or the unit
|
|
28
28
|
* does not offer the mode. */
|
|
29
|
-
|
|
29
|
+
targetTemperaturesInC: Readonly<Record<OperatingMode, TemperatureRange | null>>;
|
|
30
30
|
/** Humidity settings per mode; empty where the mode has none or the unit does
|
|
31
31
|
* not offer it. A percentage is listed for no unit: see UNSUPPORTED.md. */
|
|
32
|
-
|
|
32
|
+
targetHumidities: Readonly<Record<OperatingMode, readonly TargetHumidity[]>>;
|
|
33
33
|
/** Whether the unit has the special air outlet, which heat can swing
|
|
34
34
|
* through. That swing is not modelled: see UNSUPPORTED.md. */
|
|
35
35
|
specialOutlet: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/models/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;8BAG8B;AAC9B,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC;;iDAE6C;IAC7C,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IACjC;eACW;IACX,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C;eACW;IACX,mBAAmB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD;kCAC8B;IAC9B,
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/models/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;8BAG8B;AAC9B,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC;;iDAE6C;IAC7C,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IACjC;eACW;IACX,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C;eACW;IACX,mBAAmB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD;kCAC8B;IAC9B,qBAAqB,EAAE,QAAQ,CAC7B,MAAM,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAC/C,CAAC;IACF;+EAC2E;IAC3E,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,cAAc,EAAE,CAAC,CAAC,CAAC;IAC7E;kEAC8D;IAC9D,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/models/state.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare const HUMIDITY_SETTINGS: readonly ["off", "autoLow", "auto", "aut
|
|
|
21
21
|
/** The humidity settings that name no percentage. */
|
|
22
22
|
export type HumiditySetting = (typeof HUMIDITY_SETTINGS)[number];
|
|
23
23
|
/** A `HumiditySetting` or a percentage.
|
|
24
|
-
* `DaikinCapabilities.
|
|
24
|
+
* `DaikinCapabilities.targetHumidities` lists which of them a unit takes. */
|
|
25
25
|
export type TargetHumidity = HumiditySetting | {
|
|
26
26
|
percent: number;
|
|
27
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/models/state.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,YAC1B,MAAM,EACN,YAAY,EACZ,MAAM,EACN,MAAM,EACN,KAAK,CACG,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,UAAU,YACrB,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,CACA,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,WAAW,YAAI,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;AAE9E;;;uCAGuC;AACvC,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,YACjC,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,CACH,CAAC;AAEX,eAAO,MAAM,kBAAkB,oIAOrB,CAAC;AAEX;uDACuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,oBAAoB,qGAKvB,CAAC;AAEX,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,iBAAiB,YAC5B,KAAK,EACL,SAAS,EACT,MAAM,EACN,UAAU,EACV,YAAY,CACJ,CAAC;AAEX,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/models/state.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,YAC1B,MAAM,EACN,YAAY,EACZ,MAAM,EACN,MAAM,EACN,KAAK,CACG,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,UAAU,YACrB,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,CACA,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,WAAW,YAAI,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;AAE9E;;;uCAGuC;AACvC,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,YACjC,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,CACH,CAAC;AAEX,eAAO,MAAM,kBAAkB,oIAOrB,CAAC;AAEX;uDACuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,oBAAoB,qGAKvB,CAAC;AAEX,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,iBAAiB,YAC5B,KAAK,EACL,SAAS,EACT,MAAM,EACN,UAAU,EACV,YAAY,CACJ,CAAC;AAEX,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;6EAC6E;AAC7E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,sEAAsE;IACtE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oDAAoD;IACpD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB;6BACyB;IACzB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C;+BAC2B;IAC3B,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC/C;AAED;;;;6CAI6C;AAC7C,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEjD,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "daikin-local-control",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Unofficial Node.js and TypeScript client for controlling Daikin air conditioners over the local network (LAN), with no cloud. Supports classic (BRP069, BRP072) and DSIOT (BRP084) Wi-Fi adapters.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"daikin",
|
|
@@ -86,7 +86,7 @@ export function parseClassicCapabilities(
|
|
|
86
86
|
swingModes: swingModes(fields),
|
|
87
87
|
verticalPositions: threeD ? verticalPositions(fields) : [],
|
|
88
88
|
horizontalPositions: threeD ? horizontalPositions(fields) : [],
|
|
89
|
-
|
|
89
|
+
targetTemperaturesInC: {
|
|
90
90
|
// Only `subtype=qa` units report an auto range; the rest are fixed.
|
|
91
91
|
auto: offered(
|
|
92
92
|
"auto",
|
|
@@ -99,7 +99,7 @@ export function parseClassicCapabilities(
|
|
|
99
99
|
dehumidify: null,
|
|
100
100
|
fan: null,
|
|
101
101
|
},
|
|
102
|
-
|
|
102
|
+
targetHumidities: targetHumidities(fields, modern, offeredModes),
|
|
103
103
|
specialOutlet: cpv === "3" && fields.airoutlet_pv === "0",
|
|
104
104
|
energyMonitoring: fields.elec === "1",
|
|
105
105
|
demandControl: fields.adp_kind === "4" && fields.dmnd === "1",
|
|
@@ -157,7 +157,7 @@ export function takesClassicHumidity(fields: Record<string, string>): boolean {
|
|
|
157
157
|
return fields.subtype !== "qa";
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
function
|
|
160
|
+
function targetHumidities(
|
|
161
161
|
fields: Record<string, string>,
|
|
162
162
|
modern: boolean,
|
|
163
163
|
offeredModes: OperatingMode[],
|
|
@@ -211,13 +211,13 @@ export function takesClassicDirection(fields: Record<string, string>): boolean {
|
|
|
211
211
|
// fixed positions (only when `s_fdir_ud_step=5`). Stop is offered unless a
|
|
212
212
|
// fixed position is.
|
|
213
213
|
function verticalPositions(fields: Record<string, string>): VerticalPosition[] {
|
|
214
|
-
const
|
|
214
|
+
const stopAndSwing: VerticalPosition[] = ["swing", "stop"];
|
|
215
215
|
if (!present(fields, "s_fdir_ud")) {
|
|
216
|
-
return
|
|
216
|
+
return stopAndSwing;
|
|
217
217
|
}
|
|
218
218
|
const mask = Number.parseInt(fields.s_fdir_ud ?? "", 16);
|
|
219
219
|
if (!Number.isFinite(mask)) {
|
|
220
|
-
return
|
|
220
|
+
return stopAndSwing;
|
|
221
221
|
}
|
|
222
222
|
const positions: VerticalPosition[] = [];
|
|
223
223
|
if (mask & 0x01) {
|
|
@@ -229,7 +229,7 @@ function verticalPositions(fields: Record<string, string>): VerticalPosition[] {
|
|
|
229
229
|
if (mask & 0x80) {
|
|
230
230
|
const steps = Number.parseInt(fields.s_fdir_ud_step ?? "", 10);
|
|
231
231
|
if (!(steps >= 0 && steps <= 5)) {
|
|
232
|
-
return
|
|
232
|
+
return stopAndSwing;
|
|
233
233
|
}
|
|
234
234
|
if (steps === 5) {
|
|
235
235
|
positions.push(...FIXED_LOUVER_POSITIONS);
|
|
@@ -82,7 +82,7 @@ export function parseDsiotCapabilities(
|
|
|
82
82
|
horizontalPositions: horizontal
|
|
83
83
|
? horizontalPositions(louverMask(values, "horizontal"))
|
|
84
84
|
: [],
|
|
85
|
-
|
|
85
|
+
targetTemperaturesInC: {
|
|
86
86
|
auto: offered("auto", { min: 18, max: 30, step: 0.5 }),
|
|
87
87
|
cool: offered(
|
|
88
88
|
"cool",
|
|
@@ -95,7 +95,7 @@ export function parseDsiotCapabilities(
|
|
|
95
95
|
dehumidify: null,
|
|
96
96
|
fan: null,
|
|
97
97
|
},
|
|
98
|
-
|
|
98
|
+
targetHumidities: {
|
|
99
99
|
auto: humiditySettings("auto"),
|
|
100
100
|
// Dehumidify takes no off.
|
|
101
101
|
dehumidify: humiditySettings("dehumidify").filter(
|
|
@@ -35,12 +35,12 @@ export interface DaikinCapabilities {
|
|
|
35
35
|
horizontalPositions: readonly HorizontalPosition[];
|
|
36
36
|
/** Setpoint range per mode; `null` where the mode has no setpoint or the unit
|
|
37
37
|
* does not offer the mode. */
|
|
38
|
-
|
|
38
|
+
targetTemperaturesInC: Readonly<
|
|
39
39
|
Record<OperatingMode, TemperatureRange | null>
|
|
40
40
|
>;
|
|
41
41
|
/** Humidity settings per mode; empty where the mode has none or the unit does
|
|
42
42
|
* not offer it. A percentage is listed for no unit: see UNSUPPORTED.md. */
|
|
43
|
-
|
|
43
|
+
targetHumidities: Readonly<Record<OperatingMode, readonly TargetHumidity[]>>;
|
|
44
44
|
/** Whether the unit has the special air outlet, which heat can swing
|
|
45
45
|
* through. That swing is not modelled: see UNSUPPORTED.md. */
|
|
46
46
|
specialOutlet: boolean;
|
package/src/models/state.ts
CHANGED
|
@@ -75,7 +75,7 @@ export const HUMIDITY_SETTINGS = [
|
|
|
75
75
|
export type HumiditySetting = (typeof HUMIDITY_SETTINGS)[number];
|
|
76
76
|
|
|
77
77
|
/** A `HumiditySetting` or a percentage.
|
|
78
|
-
* `DaikinCapabilities.
|
|
78
|
+
* `DaikinCapabilities.targetHumidities` lists which of them a unit takes. */
|
|
79
79
|
export type TargetHumidity = HumiditySetting | { percent: number };
|
|
80
80
|
|
|
81
81
|
export interface DaikinState {
|