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.
Files changed (114) hide show
  1. package/DESIGN.md +113 -2
  2. package/README.md +131 -13
  3. package/UNSUPPORTED.md +42 -4
  4. package/dist/clients/classic.d.ts +2 -2
  5. package/dist/clients/classic.d.ts.map +1 -1
  6. package/dist/clients/classic.js +4 -4
  7. package/dist/clients/classic.js.map +1 -1
  8. package/dist/clients/client.d.ts +6 -2
  9. package/dist/clients/client.d.ts.map +1 -1
  10. package/dist/clients/dsiot.d.ts +3 -1
  11. package/dist/clients/dsiot.d.ts.map +1 -1
  12. package/dist/clients/dsiot.js +11 -3
  13. package/dist/clients/dsiot.js.map +1 -1
  14. package/dist/codecs/classic/capabilities.d.ts.map +1 -1
  15. package/dist/codecs/classic/capabilities.js +5 -11
  16. package/dist/codecs/classic/capabilities.js.map +1 -1
  17. package/dist/codecs/classic/extendedControl.d.ts.map +1 -1
  18. package/dist/codecs/classic/extendedControl.js +10 -19
  19. package/dist/codecs/classic/extendedControl.js.map +1 -1
  20. package/dist/codecs/classic/state.d.ts.map +1 -1
  21. package/dist/codecs/classic/state.js +36 -95
  22. package/dist/codecs/classic/state.js.map +1 -1
  23. package/dist/codecs/classic/tables.d.ts +32 -0
  24. package/dist/codecs/classic/tables.d.ts.map +1 -0
  25. package/dist/codecs/classic/tables.js +94 -0
  26. package/dist/codecs/classic/tables.js.map +1 -0
  27. package/dist/codecs/credentials.d.ts +3 -2
  28. package/dist/codecs/credentials.d.ts.map +1 -1
  29. package/dist/codecs/credentials.js +8 -3
  30. package/dist/codecs/credentials.js.map +1 -1
  31. package/dist/codecs/device.d.ts +2 -1
  32. package/dist/codecs/device.d.ts.map +1 -1
  33. package/dist/codecs/device.js +7 -6
  34. package/dist/codecs/device.js.map +1 -1
  35. package/dist/codecs/dsiot/capabilities.d.ts.map +1 -1
  36. package/dist/codecs/dsiot/capabilities.js +8 -15
  37. package/dist/codecs/dsiot/capabilities.js.map +1 -1
  38. package/dist/codecs/dsiot/device.d.ts +4 -2
  39. package/dist/codecs/dsiot/device.d.ts.map +1 -1
  40. package/dist/codecs/dsiot/device.js +8 -8
  41. package/dist/codecs/dsiot/device.js.map +1 -1
  42. package/dist/codecs/dsiot/multireq.d.ts +0 -18
  43. package/dist/codecs/dsiot/multireq.d.ts.map +1 -1
  44. package/dist/codecs/dsiot/multireq.js +2 -24
  45. package/dist/codecs/dsiot/multireq.js.map +1 -1
  46. package/dist/codecs/dsiot/state.d.ts +6 -62
  47. package/dist/codecs/dsiot/state.d.ts.map +1 -1
  48. package/dist/codecs/dsiot/state.js +29 -148
  49. package/dist/codecs/dsiot/state.js.map +1 -1
  50. package/dist/codecs/dsiot/tables.d.ts +116 -0
  51. package/dist/codecs/dsiot/tables.d.ts.map +1 -0
  52. package/dist/codecs/dsiot/tables.js +185 -0
  53. package/dist/codecs/dsiot/tables.js.map +1 -0
  54. package/dist/discovery.d.ts +2 -1
  55. package/dist/discovery.d.ts.map +1 -1
  56. package/dist/discovery.js +9 -5
  57. package/dist/discovery.js.map +1 -1
  58. package/dist/factory.d.ts +7 -4
  59. package/dist/factory.d.ts.map +1 -1
  60. package/dist/factory.js +4 -2
  61. package/dist/factory.js.map +1 -1
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/models/device.d.ts +3 -1
  67. package/dist/models/device.d.ts.map +1 -1
  68. package/dist/models/state.d.ts +2 -3
  69. package/dist/models/state.d.ts.map +1 -1
  70. package/dist/simulators/classic.d.ts +61 -0
  71. package/dist/simulators/classic.d.ts.map +1 -0
  72. package/dist/simulators/classic.js +473 -0
  73. package/dist/simulators/classic.js.map +1 -0
  74. package/dist/simulators/dsiot.d.ts +49 -0
  75. package/dist/simulators/dsiot.d.ts.map +1 -0
  76. package/dist/simulators/dsiot.js +519 -0
  77. package/dist/simulators/dsiot.js.map +1 -0
  78. package/dist/simulators/index.d.ts +4 -0
  79. package/dist/simulators/index.d.ts.map +1 -0
  80. package/dist/simulators/index.js +3 -0
  81. package/dist/simulators/index.js.map +1 -0
  82. package/dist/simulators/simulator.d.ts +116 -0
  83. package/dist/simulators/simulator.d.ts.map +1 -0
  84. package/dist/simulators/simulator.js +141 -0
  85. package/dist/simulators/simulator.js.map +1 -0
  86. package/dist/transport.d.ts +6 -2
  87. package/dist/transport.d.ts.map +1 -1
  88. package/dist/transport.js +7 -2
  89. package/dist/transport.js.map +1 -1
  90. package/package.json +5 -2
  91. package/src/clients/classic.ts +8 -8
  92. package/src/clients/client.ts +7 -1
  93. package/src/clients/dsiot.ts +12 -2
  94. package/src/codecs/classic/capabilities.ts +8 -11
  95. package/src/codecs/classic/extendedControl.ts +14 -25
  96. package/src/codecs/classic/state.ts +49 -101
  97. package/src/codecs/classic/tables.ts +123 -0
  98. package/src/codecs/credentials.ts +11 -3
  99. package/src/codecs/device.ts +8 -7
  100. package/src/codecs/dsiot/capabilities.ts +10 -17
  101. package/src/codecs/dsiot/device.ts +8 -9
  102. package/src/codecs/dsiot/multireq.ts +2 -24
  103. package/src/codecs/dsiot/state.ts +57 -193
  104. package/src/codecs/dsiot/tables.ts +249 -0
  105. package/src/discovery.ts +9 -5
  106. package/src/factory.ts +7 -4
  107. package/src/index.ts +2 -0
  108. package/src/models/device.ts +3 -1
  109. package/src/models/state.ts +2 -3
  110. package/src/simulators/classic.ts +635 -0
  111. package/src/simulators/dsiot.ts +736 -0
  112. package/src/simulators/index.ts +9 -0
  113. package/src/simulators/simulator.ts +281 -0
  114. package/src/transport.ts +10 -3
@@ -1,91 +1,22 @@
1
1
  import { FIXED_LOUVER_POSITIONS, HORIZONTAL_POSITIONS, SPECIAL_MODES, VERTICAL_POSITIONS, } from "../../models/state.js";
2
- /** Full dotted paths into the `dgc_status` trees. `e_1002` lives on the indoor
3
- * edge and `e_1003` on the outdoor edge. */
4
- export const DSIOT_PATHS = {
5
- power: "dgc_status.e_1002.e_A002.p_01",
6
- /** Sent with every control. */
7
- powerTransition: "dgc_status.e_1002.e_3003.p_2D",
8
- mode: "dgc_status.e_1002.e_3001.p_01",
9
- indoorTemperature: "dgc_status.e_1002.e_A00B.p_01",
10
- indoorHumidity: "dgc_status.e_1002.e_A00B.p_02",
11
- outdoorTemperature: "dgc_status.e_1003.e_A00D.p_01",
12
- model: "dgc_status.e_1002.e_A001.p_0D",
13
- modelType: "dgc_status.e_1002.e_A001.p_07",
14
- energyMonitoring: "dgc_status.e_1002.e_A011.p_01",
15
- };
16
- /** Each leaf holds `01` while its mode is on. Powerful is on the outdoor
17
- * edge. */
18
- export const DSIOT_SPECIAL_MODE_PATHS = {
19
- powerful: "dgc_status.e_1003.e_3002.p_44",
20
- econo: "dgc_status.e_1002.e_3003.p_24",
21
- streamer: "dgc_status.e_1002.e_3003.p_20",
22
- };
23
- const SPECIAL_MODE_ON = "01";
24
- export const DSIOT_MODE_NODE = "dgc_status.e_1002.e_3001";
25
- export const DSIOT_MODE_PATHS = {
26
- auto: {
27
- setpoint: { path: `${DSIOT_MODE_NODE}.p_1D`, signed: true, writable: true },
28
- humidity: {
29
- value: `${DSIOT_MODE_NODE}.p_2E`,
30
- flag: `${DSIOT_MODE_NODE}.p_2F`,
31
- },
32
- fanSpeed: `${DSIOT_MODE_NODE}.p_26`,
33
- vertical: `${DSIOT_MODE_NODE}.p_20`,
34
- horizontal: `${DSIOT_MODE_NODE}.p_21`,
35
- },
36
- dehumidify: {
37
- setpoint: {
38
- path: `${DSIOT_MODE_NODE}.p_1E`,
39
- signed: true,
40
- writable: false,
41
- },
42
- humidity: {
43
- value: `${DSIOT_MODE_NODE}.p_30`,
44
- flag: `${DSIOT_MODE_NODE}.p_31`,
45
- },
46
- fanSpeed: `${DSIOT_MODE_NODE}.p_27`,
47
- vertical: `${DSIOT_MODE_NODE}.p_22`,
48
- horizontal: `${DSIOT_MODE_NODE}.p_23`,
49
- },
50
- cool: {
51
- setpoint: {
52
- path: `${DSIOT_MODE_NODE}.p_02`,
53
- signed: false,
54
- writable: true,
55
- },
56
- humidity: {
57
- value: `${DSIOT_MODE_NODE}.p_0B`,
58
- flag: `${DSIOT_MODE_NODE}.p_0C`,
59
- },
60
- fanSpeed: `${DSIOT_MODE_NODE}.p_09`,
61
- vertical: `${DSIOT_MODE_NODE}.p_05`,
62
- horizontal: `${DSIOT_MODE_NODE}.p_06`,
63
- },
64
- heat: {
65
- setpoint: {
66
- path: `${DSIOT_MODE_NODE}.p_03`,
67
- signed: false,
68
- writable: true,
69
- },
70
- humidity: {
71
- value: `${DSIOT_MODE_NODE}.p_2C`,
72
- flag: `${DSIOT_MODE_NODE}.p_2D`,
2
+ import { buildDsiotMultireqUpdate } from "./multireq.js";
3
+ import { DSIOT_EDGES, DSIOT_FAN_SPEED_CODES, DSIOT_FIXED_LOUVER_VALUES, DSIOT_HORIZONTAL_POSITION_VALUES, DSIOT_HUMIDITY_OFF, DSIOT_HUMIDITY_OFF_KEPT, DSIOT_HUMIDITY_PERCENTAGE, DSIOT_HUMIDITY_SETTING_FLAGS, DSIOT_LOUVER_STOP, DSIOT_LOUVER_SWING, DSIOT_LOUVER_VALUES, DSIOT_MODE_PATHS, DSIOT_OFF, DSIOT_ON, DSIOT_OPERATING_MODE_CODES, DSIOT_PATHS, DSIOT_SPECIAL_MODE_PATHS, DSIOT_VERTICAL_POSITION_VALUES, } from "./tables.js";
4
+ /** Builds the body of the multireq write that turns a special mode on or off:
5
+ * its one leaf, on the outdoor edge for powerful and on the indoor edge for
6
+ * the rest. */
7
+ export function buildDsiotSpecialModeUpdate(mode, enabled) {
8
+ return buildDsiotMultireqUpdate([
9
+ {
10
+ path: DSIOT_SPECIAL_MODE_PATHS[mode],
11
+ value: encodeDsiotBoolean(enabled),
73
12
  },
74
- fanSpeed: `${DSIOT_MODE_NODE}.p_0A`,
75
- vertical: `${DSIOT_MODE_NODE}.p_07`,
76
- horizontal: `${DSIOT_MODE_NODE}.p_08`,
77
- },
78
- fan: {
79
- fanSpeed: `${DSIOT_MODE_NODE}.p_28`,
80
- vertical: `${DSIOT_MODE_NODE}.p_24`,
81
- horizontal: `${DSIOT_MODE_NODE}.p_25`,
82
- },
83
- };
13
+ ], mode === "powerful" ? DSIOT_EDGES.outdoor : DSIOT_EDGES.indoor);
14
+ }
84
15
  // --- value encodings -------------------------------------------------------
85
16
  // Leaf values are hex strings. Multi-byte values are little-endian, and
86
17
  // temperatures count half degrees.
87
18
  export function encodeDsiotBoolean(on) {
88
- return on ? "01" : "00";
19
+ return on ? DSIOT_ON : DSIOT_OFF;
89
20
  }
90
21
  export function decodeDsiotBoolean(pv) {
91
22
  return pv !== undefined && Number.parseInt(pv, 16) > 0;
@@ -128,13 +59,6 @@ function signedByte(pv) {
128
59
  function nullIfNaN(value) {
129
60
  return Number.isFinite(value) ? value : null;
130
61
  }
131
- const OPERATING_MODE_CODES = {
132
- fan: "0000",
133
- heat: "0100",
134
- cool: "0200",
135
- auto: "0300",
136
- dehumidify: "0500",
137
- };
138
62
  const OPERATING_MODES_BY_CODE = {
139
63
  "0000": "fan",
140
64
  "0100": "heat",
@@ -145,62 +69,25 @@ const OPERATING_MODES_BY_CODE = {
145
69
  "0A00": "heat",
146
70
  };
147
71
  export function encodeDsiotMode(mode) {
148
- return OPERATING_MODE_CODES[mode];
72
+ return DSIOT_OPERATING_MODE_CODES[mode];
149
73
  }
150
74
  export function decodeDsiotMode(pv) {
151
75
  return OPERATING_MODES_BY_CODE[(pv ?? "").toUpperCase()];
152
76
  }
153
- const FAN_SPEED_CODES = {
154
- auto: "0A00",
155
- silent: "0B00",
156
- level1: "0300",
157
- level2: "0400",
158
- level3: "0500",
159
- level4: "0600",
160
- level5: "0700",
161
- };
162
- const FAN_SPEEDS_BY_CODE = Object.fromEntries(Object.entries(FAN_SPEED_CODES).map(([speed, code]) => [
77
+ const FAN_SPEEDS_BY_CODE = Object.fromEntries(Object.entries(DSIOT_FAN_SPEED_CODES).map(([speed, code]) => [
163
78
  code,
164
79
  speed,
165
80
  ]));
166
81
  export function encodeDsiotFanSpeed(speed) {
167
- return FAN_SPEED_CODES[speed];
82
+ return DSIOT_FAN_SPEED_CODES[speed];
168
83
  }
169
84
  export function decodeDsiotFanSpeed(pv) {
170
85
  return FAN_SPEEDS_BY_CODE[(pv ?? "").toUpperCase()];
171
86
  }
172
- /** The values a louver leaf holds besides a fixed position, which is 1-14.
173
- * The leaf is three bytes, little-endian, and bit n of its `md.mx` is set
174
- * when the unit takes value n. */
175
- export const DSIOT_LOUVER_VALUES = {
176
- stop: 0,
177
- swing: 15,
178
- auto: 16,
179
- naturalWind: 19,
180
- floorWarming: 25,
181
- };
182
- const FIXED_LOUVER_VALUES = Array.from({ length: 14 }, (_, index) => index + 1);
183
- export const DSIOT_LOUVER_STOP = "000000";
184
- export const DSIOT_LOUVER_SWING = "0F0000";
185
87
  export function isDsiotLouverSwinging(pv) {
186
88
  return (pv ?? "").toUpperCase() === DSIOT_LOUVER_SWING;
187
89
  }
188
- /** The value each `VerticalPosition` is held as. A fixed position has none: it
189
- * is held as the value at its rank among the fixed values the unit takes. */
190
- export const DSIOT_VERTICAL_POSITION_VALUES = {
191
- stop: DSIOT_LOUVER_VALUES.stop,
192
- swing: DSIOT_LOUVER_VALUES.swing,
193
- naturalWind: DSIOT_LOUVER_VALUES.naturalWind,
194
- auto: DSIOT_LOUVER_VALUES.auto,
195
- floorWarming: DSIOT_LOUVER_VALUES.floorWarming,
196
- };
197
90
  const FIXED_VERTICAL_POSITIONS = FIXED_LOUVER_POSITIONS;
198
- /** The value each `HorizontalPosition` is held as. `stop` and a fixed position
199
- * have none: see UNSUPPORTED.md. */
200
- export const DSIOT_HORIZONTAL_POSITION_VALUES = {
201
- swing: DSIOT_LOUVER_VALUES.swing,
202
- auto: DSIOT_LOUVER_VALUES.auto,
203
- };
204
91
  function positionOf(positions, held, value) {
205
92
  return positions.find((position) => held[position] === value) ?? null;
206
93
  }
@@ -209,7 +96,7 @@ function isFixedLouverValue(value) {
209
96
  }
210
97
  function fixedLouverValues(values, path) {
211
98
  const mask = decodeDsiotLittleEndian(values[`${path}.md.mx`] ?? "");
212
- return FIXED_LOUVER_VALUES.filter((value) => mask & (1 << value));
99
+ return DSIOT_FIXED_LOUVER_VALUES.filter((value) => mask & (1 << value));
213
100
  }
214
101
  function encodeLouver(value) {
215
102
  return `${value.toString(16).toUpperCase().padStart(2, "0")}0000`;
@@ -259,17 +146,7 @@ function encodeHorizontalPosition(position, current) {
259
146
  const value = DSIOT_HORIZONTAL_POSITION_VALUES[position];
260
147
  return value === undefined ? undefined : encodeLouver(value);
261
148
  }
262
- const HUMIDITY_OFF = "00";
263
- const HUMIDITY_ON = "01";
264
- // Also reads as off, and a control that switches humidity off leaves it.
265
- const HUMIDITY_OFF_KEPT = "05";
266
- const HUMIDITY_SETTING_FLAGS = {
267
- auto: "02",
268
- autoHigh: "03",
269
- autoLow: "04",
270
- continuous: "06",
271
- };
272
- const HUMIDITY_SETTINGS_BY_FLAG = Object.fromEntries(Object.entries(HUMIDITY_SETTING_FLAGS).map(([setting, flag]) => [
149
+ const HUMIDITY_SETTINGS_BY_FLAG = Object.fromEntries(Object.entries(DSIOT_HUMIDITY_SETTING_FLAGS).map(([setting, flag]) => [
273
150
  flag,
274
151
  setting,
275
152
  ]));
@@ -286,10 +163,10 @@ function decodeStep(st) {
286
163
  }
287
164
  function parseTargetHumidity(values, humidity) {
288
165
  const flag = humidity && values[humidity.flag];
289
- if (flag === HUMIDITY_OFF || flag === HUMIDITY_OFF_KEPT) {
166
+ if (flag === DSIOT_HUMIDITY_OFF || flag === DSIOT_HUMIDITY_OFF_KEPT) {
290
167
  return "off";
291
168
  }
292
- if (humidity === undefined || flag !== HUMIDITY_ON) {
169
+ if (humidity === undefined || flag !== DSIOT_HUMIDITY_PERCENTAGE) {
293
170
  return HUMIDITY_SETTINGS_BY_FLAG[flag ?? ""] ?? null;
294
171
  }
295
172
  const count = Number.parseInt(values[humidity.value] ?? "", 16);
@@ -304,16 +181,20 @@ function applyTargetHumidity(values, { value, flag }, targetHumidity) {
304
181
  return [
305
182
  {
306
183
  path: flag,
307
- value: values[flag] === HUMIDITY_OFF_KEPT ? HUMIDITY_OFF_KEPT : HUMIDITY_OFF,
184
+ value: values[flag] === DSIOT_HUMIDITY_OFF_KEPT
185
+ ? DSIOT_HUMIDITY_OFF_KEPT
186
+ : DSIOT_HUMIDITY_OFF,
308
187
  },
309
188
  ];
310
189
  }
311
190
  if (typeof targetHumidity === "string") {
312
- return [{ path: flag, value: HUMIDITY_SETTING_FLAGS[targetHumidity] }];
191
+ return [
192
+ { path: flag, value: DSIOT_HUMIDITY_SETTING_FLAGS[targetHumidity] },
193
+ ];
313
194
  }
314
195
  const count = Math.trunc(targetHumidity.percent / decodeStep(values[`${value}.md.st`]));
315
196
  return [
316
- { path: flag, value: HUMIDITY_ON },
197
+ { path: flag, value: DSIOT_HUMIDITY_PERCENTAGE },
317
198
  { path: value, value: count.toString(16).toUpperCase().padStart(2, "0") },
318
199
  ];
319
200
  }
@@ -324,7 +205,7 @@ function isHumidityOn(values, humidity, targetHumidity) {
324
205
  return false;
325
206
  }
326
207
  return targetHumidity == null
327
- ? flag !== HUMIDITY_OFF && flag !== HUMIDITY_OFF_KEPT
208
+ ? flag !== DSIOT_HUMIDITY_OFF && flag !== DSIOT_HUMIDITY_OFF_KEPT
328
209
  : targetHumidity !== "off";
329
210
  }
330
211
  const POWER_TRANSITIONS = {
@@ -351,7 +232,7 @@ export function parseDsiotState(values) {
351
232
  swingMode: decodeSwing(values[paths.vertical], values[paths.horizontal]),
352
233
  verticalPosition: parseVerticalPosition(values, paths.vertical),
353
234
  horizontalPosition: parseHorizontalPosition(values[paths.horizontal]),
354
- specialModes: SPECIAL_MODES.filter((mode) => values[DSIOT_SPECIAL_MODE_PATHS[mode]] === SPECIAL_MODE_ON),
235
+ specialModes: SPECIAL_MODES.filter((mode) => values[DSIOT_SPECIAL_MODE_PATHS[mode]] === DSIOT_ON),
355
236
  };
356
237
  }
357
238
  /** Turns `values`, the flattened indoor `dgc_status` tree read with `md`, and
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/codecs/dsiot/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/codecs/dsiot/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import type { FanSpeed, HorizontalPosition, HumiditySetting, OperatingMode, SpecialMode, VerticalPosition } from "../../models/state.js";
2
+ export declare const DSIOT_OPERATIONS: {
3
+ readonly get: 2;
4
+ readonly update: 3;
5
+ readonly delete: 4;
6
+ };
7
+ /** The indoor and the outdoor unit are separate edges on the adapter. */
8
+ export declare const DSIOT_EDGES: {
9
+ readonly indoor: "adr_0100";
10
+ readonly outdoor: "adr_0200";
11
+ };
12
+ /** What the `to` of a request starts with: an adapter resource follows as
13
+ * `.adp_i`, and a unit's as `/adr_0100.dgc_status`. */
14
+ export declare const DSIOT_EDGE_ROOT = "/dsiot/edge";
15
+ /** What a read fetches, as the `to` of a request: whole trees, never single
16
+ * leaves. The status trees come with `pt`, which `parseDsiotCapabilities`
17
+ * reads. */
18
+ export declare const DSIOT_TARGETS: {
19
+ readonly adapterInfo: "/dsiot/edge.adp_i?filter=pv";
20
+ readonly adapterSettings: "/dsiot/edge.adp_d?filter=pv";
21
+ readonly indoorStatus: "/dsiot/edge/adr_0100.dgc_status?filter=pv,pt,md";
22
+ readonly outdoorStatus: "/dsiot/edge/adr_0200.dgc_status?filter=pv,pt,md";
23
+ };
24
+ /** `type` in a discovery reply from a DSIOT adapter. */
25
+ export declare const DSIOT_ADAPTER_TYPE = "GPF";
26
+ /** Dotted paths into the `adp_i` and `adp_d` trees. The MAC address and the
27
+ * version hold the value a classic adapter sends in `basic_info`, and the
28
+ * name is plain text, where a classic adapter form-encodes it. */
29
+ export declare const DSIOT_ADAPTER_PATHS: {
30
+ readonly name: "adp_d.name";
31
+ readonly macAddress: "adp_i.mac";
32
+ readonly firmwareVersion: "adp_i.ver";
33
+ readonly region: "adp_i.reg";
34
+ readonly kind: "adp_i.kind";
35
+ readonly energyMonitoring: "adp_i.func.en_ipower";
36
+ readonly demandControl: "adp_i.func.en_demand";
37
+ readonly scheduleTimer: "adp_i.func.en_scdltmr";
38
+ };
39
+ /** Full dotted paths into the `dgc_status` trees. `e_1002` lives on the indoor
40
+ * edge and `e_1003` on the outdoor edge. */
41
+ export declare const DSIOT_PATHS: {
42
+ readonly power: "dgc_status.e_1002.e_A002.p_01";
43
+ /** Sent with every control. */
44
+ readonly powerTransition: "dgc_status.e_1002.e_3003.p_2D";
45
+ readonly mode: "dgc_status.e_1002.e_3001.p_01";
46
+ readonly indoorTemperature: "dgc_status.e_1002.e_A00B.p_01";
47
+ readonly indoorHumidity: "dgc_status.e_1002.e_A00B.p_02";
48
+ readonly outdoorTemperature: "dgc_status.e_1003.e_A00D.p_01";
49
+ readonly model: "dgc_status.e_1002.e_A001.p_0D";
50
+ readonly modelType: "dgc_status.e_1002.e_A001.p_07";
51
+ readonly energyMonitoring: "dgc_status.e_1002.e_A011.p_01";
52
+ };
53
+ /** What a leaf that is on or off holds, such as the power. */
54
+ export declare const DSIOT_ON = "01";
55
+ export declare const DSIOT_OFF = "00";
56
+ /** `DSIOT_PATHS.modelType` on a unit that only cools. */
57
+ export declare const DSIOT_COOLING_ONLY_MODEL_TYPE = "01";
58
+ /** Each leaf holds `01` while its mode is on. Powerful is on the outdoor
59
+ * edge. */
60
+ export declare const DSIOT_SPECIAL_MODE_PATHS: Record<SpecialMode, string>;
61
+ export interface DsiotSetpoint {
62
+ path: string;
63
+ /** Auto and dehumidify are a signed byte; cool and heat are little-endian. */
64
+ signed: boolean;
65
+ /** The dehumidify setpoint is read-only. */
66
+ writable: boolean;
67
+ }
68
+ export interface DsiotHumidity {
69
+ /** Counted in steps of the leaf's `md.st`. */
70
+ value: string;
71
+ /** The setting: `00` or `05` off, `01` the percentage in `value`, and one
72
+ * value for each `HumiditySetting`. */
73
+ flag: string;
74
+ }
75
+ export interface DsiotModePaths {
76
+ /** Absent in fan mode. */
77
+ setpoint?: DsiotSetpoint;
78
+ /** Absent in fan mode. */
79
+ humidity?: DsiotHumidity;
80
+ fanSpeed: string;
81
+ vertical: string;
82
+ horizontal: string;
83
+ }
84
+ export declare const DSIOT_MODE_NODE = "dgc_status.e_1002.e_3001";
85
+ export declare const DSIOT_MODE_PATHS: Record<OperatingMode, DsiotModePaths>;
86
+ export declare const DSIOT_OPERATING_MODE_CODES: Record<OperatingMode, string>;
87
+ export declare const DSIOT_FAN_SPEED_CODES: Record<FanSpeed, string>;
88
+ /** The values a louver leaf holds besides a fixed position, which is 1-14.
89
+ * The leaf is three bytes, little-endian, and bit n of its `md.mx` is set
90
+ * when the unit takes value n. */
91
+ export declare const DSIOT_LOUVER_VALUES: {
92
+ readonly stop: 0;
93
+ readonly swing: 15;
94
+ readonly auto: 16;
95
+ readonly naturalWind: 19;
96
+ readonly floorWarming: 25;
97
+ };
98
+ /** The values that are fixed positions: 1 to 14. */
99
+ export declare const DSIOT_FIXED_LOUVER_VALUES: number[];
100
+ export declare const DSIOT_LOUVER_STOP = "000000";
101
+ export declare const DSIOT_LOUVER_SWING = "0F0000";
102
+ /** The value each `VerticalPosition` is held as. A fixed position has none: it
103
+ * is held as the value at its rank among the fixed values the unit takes. */
104
+ export declare const DSIOT_VERTICAL_POSITION_VALUES: Partial<Record<VerticalPosition, number>>;
105
+ /** The value each `HorizontalPosition` is held as. `stop` and a fixed position
106
+ * have none: see UNSUPPORTED.md. */
107
+ export declare const DSIOT_HORIZONTAL_POSITION_VALUES: Partial<Record<HorizontalPosition, number>>;
108
+ /** What a humidity flag holds while the setting is off. */
109
+ export declare const DSIOT_HUMIDITY_OFF = "00";
110
+ /** What a humidity flag holds while the setting is a percentage, held in the
111
+ * mode's `value` leaf. */
112
+ export declare const DSIOT_HUMIDITY_PERCENTAGE = "01";
113
+ /** Also reads as off, and a control that switches humidity off leaves it. */
114
+ export declare const DSIOT_HUMIDITY_OFF_KEPT = "05";
115
+ export declare const DSIOT_HUMIDITY_SETTING_FLAGS: Record<Exclude<HumiditySetting, "off">, string>;
116
+ //# sourceMappingURL=tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/codecs/dsiot/tables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ // The resources, leaves and codes a DSIOT adapter holds each value of a model
2
+ // as. The codecs and the simulators both read them from here: see
3
+ // DESIGN.md#simulators.
4
+ export const DSIOT_OPERATIONS = {
5
+ get: 2,
6
+ update: 3,
7
+ delete: 4,
8
+ };
9
+ /** The indoor and the outdoor unit are separate edges on the adapter. */
10
+ export const DSIOT_EDGES = {
11
+ indoor: "adr_0100",
12
+ outdoor: "adr_0200",
13
+ };
14
+ /** What the `to` of a request starts with: an adapter resource follows as
15
+ * `.adp_i`, and a unit's as `/adr_0100.dgc_status`. */
16
+ export const DSIOT_EDGE_ROOT = "/dsiot/edge";
17
+ /** What a read fetches, as the `to` of a request: whole trees, never single
18
+ * leaves. The status trees come with `pt`, which `parseDsiotCapabilities`
19
+ * reads. */
20
+ export const DSIOT_TARGETS = {
21
+ adapterInfo: `${DSIOT_EDGE_ROOT}.adp_i?filter=pv`,
22
+ adapterSettings: `${DSIOT_EDGE_ROOT}.adp_d?filter=pv`,
23
+ indoorStatus: `${DSIOT_EDGE_ROOT}/${DSIOT_EDGES.indoor}.dgc_status?filter=pv,pt,md`,
24
+ outdoorStatus: `${DSIOT_EDGE_ROOT}/${DSIOT_EDGES.outdoor}.dgc_status?filter=pv,pt,md`,
25
+ };
26
+ /** `type` in a discovery reply from a DSIOT adapter. */
27
+ export const DSIOT_ADAPTER_TYPE = "GPF";
28
+ /** Dotted paths into the `adp_i` and `adp_d` trees. The MAC address and the
29
+ * version hold the value a classic adapter sends in `basic_info`, and the
30
+ * name is plain text, where a classic adapter form-encodes it. */
31
+ export const DSIOT_ADAPTER_PATHS = {
32
+ name: "adp_d.name",
33
+ macAddress: "adp_i.mac",
34
+ firmwareVersion: "adp_i.ver",
35
+ region: "adp_i.reg",
36
+ kind: "adp_i.kind",
37
+ energyMonitoring: "adp_i.func.en_ipower",
38
+ demandControl: "adp_i.func.en_demand",
39
+ scheduleTimer: "adp_i.func.en_scdltmr",
40
+ };
41
+ /** Full dotted paths into the `dgc_status` trees. `e_1002` lives on the indoor
42
+ * edge and `e_1003` on the outdoor edge. */
43
+ export const DSIOT_PATHS = {
44
+ power: "dgc_status.e_1002.e_A002.p_01",
45
+ /** Sent with every control. */
46
+ powerTransition: "dgc_status.e_1002.e_3003.p_2D",
47
+ mode: "dgc_status.e_1002.e_3001.p_01",
48
+ indoorTemperature: "dgc_status.e_1002.e_A00B.p_01",
49
+ indoorHumidity: "dgc_status.e_1002.e_A00B.p_02",
50
+ outdoorTemperature: "dgc_status.e_1003.e_A00D.p_01",
51
+ model: "dgc_status.e_1002.e_A001.p_0D",
52
+ modelType: "dgc_status.e_1002.e_A001.p_07",
53
+ energyMonitoring: "dgc_status.e_1002.e_A011.p_01",
54
+ };
55
+ /** What a leaf that is on or off holds, such as the power. */
56
+ export const DSIOT_ON = "01";
57
+ export const DSIOT_OFF = "00";
58
+ /** `DSIOT_PATHS.modelType` on a unit that only cools. */
59
+ export const DSIOT_COOLING_ONLY_MODEL_TYPE = "01";
60
+ /** Each leaf holds `01` while its mode is on. Powerful is on the outdoor
61
+ * edge. */
62
+ export const DSIOT_SPECIAL_MODE_PATHS = {
63
+ powerful: "dgc_status.e_1003.e_3002.p_44",
64
+ econo: "dgc_status.e_1002.e_3003.p_24",
65
+ streamer: "dgc_status.e_1002.e_3003.p_20",
66
+ };
67
+ export const DSIOT_MODE_NODE = "dgc_status.e_1002.e_3001";
68
+ export const DSIOT_MODE_PATHS = {
69
+ auto: {
70
+ setpoint: { path: `${DSIOT_MODE_NODE}.p_1D`, signed: true, writable: true },
71
+ humidity: {
72
+ value: `${DSIOT_MODE_NODE}.p_2E`,
73
+ flag: `${DSIOT_MODE_NODE}.p_2F`,
74
+ },
75
+ fanSpeed: `${DSIOT_MODE_NODE}.p_26`,
76
+ vertical: `${DSIOT_MODE_NODE}.p_20`,
77
+ horizontal: `${DSIOT_MODE_NODE}.p_21`,
78
+ },
79
+ dehumidify: {
80
+ setpoint: {
81
+ path: `${DSIOT_MODE_NODE}.p_1E`,
82
+ signed: true,
83
+ writable: false,
84
+ },
85
+ humidity: {
86
+ value: `${DSIOT_MODE_NODE}.p_30`,
87
+ flag: `${DSIOT_MODE_NODE}.p_31`,
88
+ },
89
+ fanSpeed: `${DSIOT_MODE_NODE}.p_27`,
90
+ vertical: `${DSIOT_MODE_NODE}.p_22`,
91
+ horizontal: `${DSIOT_MODE_NODE}.p_23`,
92
+ },
93
+ cool: {
94
+ setpoint: {
95
+ path: `${DSIOT_MODE_NODE}.p_02`,
96
+ signed: false,
97
+ writable: true,
98
+ },
99
+ humidity: {
100
+ value: `${DSIOT_MODE_NODE}.p_0B`,
101
+ flag: `${DSIOT_MODE_NODE}.p_0C`,
102
+ },
103
+ fanSpeed: `${DSIOT_MODE_NODE}.p_09`,
104
+ vertical: `${DSIOT_MODE_NODE}.p_05`,
105
+ horizontal: `${DSIOT_MODE_NODE}.p_06`,
106
+ },
107
+ heat: {
108
+ setpoint: {
109
+ path: `${DSIOT_MODE_NODE}.p_03`,
110
+ signed: false,
111
+ writable: true,
112
+ },
113
+ humidity: {
114
+ value: `${DSIOT_MODE_NODE}.p_2C`,
115
+ flag: `${DSIOT_MODE_NODE}.p_2D`,
116
+ },
117
+ fanSpeed: `${DSIOT_MODE_NODE}.p_0A`,
118
+ vertical: `${DSIOT_MODE_NODE}.p_07`,
119
+ horizontal: `${DSIOT_MODE_NODE}.p_08`,
120
+ },
121
+ fan: {
122
+ fanSpeed: `${DSIOT_MODE_NODE}.p_28`,
123
+ vertical: `${DSIOT_MODE_NODE}.p_24`,
124
+ horizontal: `${DSIOT_MODE_NODE}.p_25`,
125
+ },
126
+ };
127
+ export const DSIOT_OPERATING_MODE_CODES = {
128
+ fan: "0000",
129
+ heat: "0100",
130
+ cool: "0200",
131
+ auto: "0300",
132
+ dehumidify: "0500",
133
+ };
134
+ export const DSIOT_FAN_SPEED_CODES = {
135
+ auto: "0A00",
136
+ silent: "0B00",
137
+ level1: "0300",
138
+ level2: "0400",
139
+ level3: "0500",
140
+ level4: "0600",
141
+ level5: "0700",
142
+ };
143
+ /** The values a louver leaf holds besides a fixed position, which is 1-14.
144
+ * The leaf is three bytes, little-endian, and bit n of its `md.mx` is set
145
+ * when the unit takes value n. */
146
+ export const DSIOT_LOUVER_VALUES = {
147
+ stop: 0,
148
+ swing: 15,
149
+ auto: 16,
150
+ naturalWind: 19,
151
+ floorWarming: 25,
152
+ };
153
+ /** The values that are fixed positions: 1 to 14. */
154
+ export const DSIOT_FIXED_LOUVER_VALUES = Array.from({ length: 14 }, (_, index) => index + 1);
155
+ export const DSIOT_LOUVER_STOP = "000000";
156
+ export const DSIOT_LOUVER_SWING = "0F0000";
157
+ /** The value each `VerticalPosition` is held as. A fixed position has none: it
158
+ * is held as the value at its rank among the fixed values the unit takes. */
159
+ export const DSIOT_VERTICAL_POSITION_VALUES = {
160
+ stop: DSIOT_LOUVER_VALUES.stop,
161
+ swing: DSIOT_LOUVER_VALUES.swing,
162
+ naturalWind: DSIOT_LOUVER_VALUES.naturalWind,
163
+ auto: DSIOT_LOUVER_VALUES.auto,
164
+ floorWarming: DSIOT_LOUVER_VALUES.floorWarming,
165
+ };
166
+ /** The value each `HorizontalPosition` is held as. `stop` and a fixed position
167
+ * have none: see UNSUPPORTED.md. */
168
+ export const DSIOT_HORIZONTAL_POSITION_VALUES = {
169
+ swing: DSIOT_LOUVER_VALUES.swing,
170
+ auto: DSIOT_LOUVER_VALUES.auto,
171
+ };
172
+ /** What a humidity flag holds while the setting is off. */
173
+ export const DSIOT_HUMIDITY_OFF = "00";
174
+ /** What a humidity flag holds while the setting is a percentage, held in the
175
+ * mode's `value` leaf. */
176
+ export const DSIOT_HUMIDITY_PERCENTAGE = "01";
177
+ /** Also reads as off, and a control that switches humidity off leaves it. */
178
+ export const DSIOT_HUMIDITY_OFF_KEPT = "05";
179
+ export const DSIOT_HUMIDITY_SETTING_FLAGS = {
180
+ auto: "02",
181
+ autoHigh: "03",
182
+ autoLow: "04",
183
+ continuous: "06",
184
+ };
185
+ //# sourceMappingURL=tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/codecs/dsiot/tables.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@ export interface DiscoverDevicesOptions {
11
11
  * datagram whose `ret` is not `OK`.
12
12
  *
13
13
  * It resolves once `timeoutInMs` has passed, never earlier, with one device
14
- * per replying address. It binds UDP port 30000, and rejects with the socket's
14
+ * for each `host` that replied: the address a reply came from, with the port
15
+ * the reply announces. It binds UDP port 30000, and rejects with the socket's
15
16
  * error when the socket fails. */
16
17
  export declare function discoverDevices(options?: DiscoverDevicesOptions): Promise<DaikinDevice[]>;
17
18
  //# sourceMappingURL=discovery.d.ts.map