daikin-local-control 0.3.1 → 0.5.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 (150) hide show
  1. package/DESIGN.md +156 -2
  2. package/README.md +274 -48
  3. package/UNSUPPORTED.md +66 -3
  4. package/dist/clients/airbase.d.ts +64 -0
  5. package/dist/clients/airbase.d.ts.map +1 -0
  6. package/dist/clients/airbase.js +175 -0
  7. package/dist/clients/airbase.js.map +1 -0
  8. package/dist/clients/classic.d.ts +2 -2
  9. package/dist/clients/classic.d.ts.map +1 -1
  10. package/dist/clients/classic.js +4 -4
  11. package/dist/clients/classic.js.map +1 -1
  12. package/dist/clients/client.d.ts +7 -2
  13. package/dist/clients/client.d.ts.map +1 -1
  14. package/dist/clients/dsiot.d.ts +3 -1
  15. package/dist/clients/dsiot.d.ts.map +1 -1
  16. package/dist/clients/dsiot.js +7 -2
  17. package/dist/clients/dsiot.js.map +1 -1
  18. package/dist/codecs/airbase/capabilities.d.ts +23 -0
  19. package/dist/codecs/airbase/capabilities.d.ts.map +1 -0
  20. package/dist/codecs/airbase/capabilities.js +108 -0
  21. package/dist/codecs/airbase/capabilities.js.map +1 -0
  22. package/dist/codecs/airbase/state.d.ts +29 -0
  23. package/dist/codecs/airbase/state.d.ts.map +1 -0
  24. package/dist/codecs/airbase/state.js +166 -0
  25. package/dist/codecs/airbase/state.js.map +1 -0
  26. package/dist/codecs/airbase/tables.d.ts +7 -0
  27. package/dist/codecs/airbase/tables.d.ts.map +1 -0
  28. package/dist/codecs/airbase/tables.js +27 -0
  29. package/dist/codecs/airbase/tables.js.map +1 -0
  30. package/dist/codecs/airbase/zone.d.ts +12 -0
  31. package/dist/codecs/airbase/zone.d.ts.map +1 -0
  32. package/dist/codecs/airbase/zone.js +50 -0
  33. package/dist/codecs/airbase/zone.js.map +1 -0
  34. package/dist/codecs/classic/capabilities.d.ts.map +1 -1
  35. package/dist/codecs/classic/capabilities.js +5 -11
  36. package/dist/codecs/classic/capabilities.js.map +1 -1
  37. package/dist/codecs/classic/extendedControl.d.ts.map +1 -1
  38. package/dist/codecs/classic/extendedControl.js +10 -19
  39. package/dist/codecs/classic/extendedControl.js.map +1 -1
  40. package/dist/codecs/classic/state.d.ts.map +1 -1
  41. package/dist/codecs/classic/state.js +36 -95
  42. package/dist/codecs/classic/state.js.map +1 -1
  43. package/dist/codecs/classic/tables.d.ts +34 -0
  44. package/dist/codecs/classic/tables.d.ts.map +1 -0
  45. package/dist/codecs/classic/tables.js +96 -0
  46. package/dist/codecs/classic/tables.js.map +1 -0
  47. package/dist/codecs/credentials.d.ts +3 -2
  48. package/dist/codecs/credentials.d.ts.map +1 -1
  49. package/dist/codecs/credentials.js +8 -3
  50. package/dist/codecs/credentials.js.map +1 -1
  51. package/dist/codecs/device.d.ts +7 -1
  52. package/dist/codecs/device.d.ts.map +1 -1
  53. package/dist/codecs/device.js +15 -3
  54. package/dist/codecs/device.js.map +1 -1
  55. package/dist/codecs/dsiot/capabilities.d.ts.map +1 -1
  56. package/dist/codecs/dsiot/capabilities.js +8 -15
  57. package/dist/codecs/dsiot/capabilities.js.map +1 -1
  58. package/dist/codecs/dsiot/device.d.ts.map +1 -1
  59. package/dist/codecs/dsiot/device.js +4 -8
  60. package/dist/codecs/dsiot/device.js.map +1 -1
  61. package/dist/codecs/dsiot/multireq.d.ts +0 -19
  62. package/dist/codecs/dsiot/multireq.d.ts.map +1 -1
  63. package/dist/codecs/dsiot/multireq.js +2 -25
  64. package/dist/codecs/dsiot/multireq.js.map +1 -1
  65. package/dist/codecs/dsiot/state.d.ts +6 -62
  66. package/dist/codecs/dsiot/state.d.ts.map +1 -1
  67. package/dist/codecs/dsiot/state.js +29 -148
  68. package/dist/codecs/dsiot/state.js.map +1 -1
  69. package/dist/codecs/dsiot/tables.d.ts +119 -0
  70. package/dist/codecs/dsiot/tables.d.ts.map +1 -0
  71. package/dist/codecs/dsiot/tables.js +188 -0
  72. package/dist/codecs/dsiot/tables.js.map +1 -0
  73. package/dist/discovery.d.ts +20 -9
  74. package/dist/discovery.d.ts.map +1 -1
  75. package/dist/discovery.js +102 -32
  76. package/dist/discovery.js.map +1 -1
  77. package/dist/factory.d.ts +13 -7
  78. package/dist/factory.d.ts.map +1 -1
  79. package/dist/factory.js +16 -4
  80. package/dist/factory.js.map +1 -1
  81. package/dist/index.d.ts +8 -0
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +8 -0
  84. package/dist/index.js.map +1 -1
  85. package/dist/models/device.d.ts +3 -2
  86. package/dist/models/device.d.ts.map +1 -1
  87. package/dist/models/device.js +1 -1
  88. package/dist/models/device.js.map +1 -1
  89. package/dist/models/state.d.ts +2 -3
  90. package/dist/models/state.d.ts.map +1 -1
  91. package/dist/models/zone.d.ts +9 -0
  92. package/dist/models/zone.d.ts.map +1 -0
  93. package/dist/models/zone.js +2 -0
  94. package/dist/models/zone.js.map +1 -0
  95. package/dist/simulators/airbase.d.ts +82 -0
  96. package/dist/simulators/airbase.d.ts.map +1 -0
  97. package/dist/simulators/airbase.js +352 -0
  98. package/dist/simulators/airbase.js.map +1 -0
  99. package/dist/simulators/classic.d.ts +61 -0
  100. package/dist/simulators/classic.d.ts.map +1 -0
  101. package/dist/simulators/classic.js +473 -0
  102. package/dist/simulators/classic.js.map +1 -0
  103. package/dist/simulators/dsiot.d.ts +49 -0
  104. package/dist/simulators/dsiot.d.ts.map +1 -0
  105. package/dist/simulators/dsiot.js +519 -0
  106. package/dist/simulators/dsiot.js.map +1 -0
  107. package/dist/simulators/index.d.ts +5 -0
  108. package/dist/simulators/index.d.ts.map +1 -0
  109. package/dist/simulators/index.js +4 -0
  110. package/dist/simulators/index.js.map +1 -0
  111. package/dist/simulators/simulator.d.ts +117 -0
  112. package/dist/simulators/simulator.d.ts.map +1 -0
  113. package/dist/simulators/simulator.js +141 -0
  114. package/dist/simulators/simulator.js.map +1 -0
  115. package/dist/transport.d.ts +8 -3
  116. package/dist/transport.d.ts.map +1 -1
  117. package/dist/transport.js +10 -2
  118. package/dist/transport.js.map +1 -1
  119. package/package.json +11 -4
  120. package/src/clients/airbase.ts +274 -0
  121. package/src/clients/classic.ts +8 -8
  122. package/src/clients/client.ts +8 -1
  123. package/src/clients/dsiot.ts +8 -1
  124. package/src/codecs/airbase/capabilities.ts +150 -0
  125. package/src/codecs/airbase/state.ts +223 -0
  126. package/src/codecs/airbase/tables.ts +32 -0
  127. package/src/codecs/airbase/zone.ts +62 -0
  128. package/src/codecs/classic/capabilities.ts +8 -11
  129. package/src/codecs/classic/extendedControl.ts +14 -25
  130. package/src/codecs/classic/state.ts +49 -101
  131. package/src/codecs/classic/tables.ts +126 -0
  132. package/src/codecs/credentials.ts +11 -3
  133. package/src/codecs/device.ts +19 -3
  134. package/src/codecs/dsiot/capabilities.ts +10 -17
  135. package/src/codecs/dsiot/device.ts +4 -9
  136. package/src/codecs/dsiot/multireq.ts +2 -25
  137. package/src/codecs/dsiot/state.ts +57 -193
  138. package/src/codecs/dsiot/tables.ts +253 -0
  139. package/src/discovery.ts +107 -34
  140. package/src/factory.ts +26 -7
  141. package/src/index.ts +8 -0
  142. package/src/models/device.ts +3 -2
  143. package/src/models/state.ts +2 -3
  144. package/src/models/zone.ts +8 -0
  145. package/src/simulators/airbase.ts +495 -0
  146. package/src/simulators/classic.ts +636 -0
  147. package/src/simulators/dsiot.ts +736 -0
  148. package/src/simulators/index.ts +10 -0
  149. package/src/simulators/simulator.ts +282 -0
  150. package/src/transport.ts +15 -4
@@ -1 +1 @@
1
- {"version":3,"file":"extendedControl.js","sourceRoot":"","sources":["../../../src/codecs/classic/extendedControl.ts"],"names":[],"mappings":"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"}
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;AA+H/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,CAiGxB"}
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 FAN_SPEED_CODES = {
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 SWING_MODE_CODES = {
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
- // `f_dir_ud` and `f_dir_lr` carry a digit for stop and each fixed position, and
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 HUMIDITY_SETTING_CODES = {
79
- off: "0",
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
- // `adv` holds one code for each special mode that is on, separated by `/`.
90
- const SPECIAL_MODE_ADV_CODES = {
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
- : OPERATING_MODE_CODES[heldMode];
76
+ : CLASSIC_OPERATING_MODE_CODES[heldMode];
141
77
  const mode = control.mode === undefined
142
78
  ? currentMode
143
- : OPERATING_MODE_CODES[control.mode];
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 === OPERATING_MODE_CODES.fan;
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
- ? NO_SETPOINT
90
+ ? CLASSIC_NO_SETPOINT
155
91
  : control.targetTemperatureInC != null &&
156
- mode !== OPERATING_MODE_CODES.dehumidify
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
- ? NO_SETPOINT
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 === OPERATING_MODE_CODES.dehumidify
109
+ mode === CLASSIC_OPERATING_MODE_CODES.dehumidify
174
110
  ? DEHUMIDIFY_FAN_SPEED
175
111
  : control.fanSpeed === undefined
176
112
  ? remembered("f_rate", "dfr")
177
- : FAN_SPEED_CODES[control.fanSpeed];
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) || current.f_dir_ud || LOUVER_STOP;
183
- let horizontal = rememberedLouver(louverMemory, 1) || current.f_dir_lr || LOUVER_STOP;
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
- ? LOUVER_SWING
189
- : vertical === LOUVER_SWING
190
- ? LOUVER_STOP
128
+ ? CLASSIC_LOUVER_SWING
129
+ : vertical === CLASSIC_LOUVER_SWING
130
+ ? CLASSIC_LOUVER_STOP
191
131
  : vertical;
192
132
  horizontal = swingsHorizontally
193
- ? LOUVER_SWING
194
- : horizontal === LOUVER_SWING
195
- ? LOUVER_STOP
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 = VERTICAL_POSITION_CODES[control.verticalPosition];
139
+ vertical = CLASSIC_VERTICAL_POSITION_CODES[control.verticalPosition];
200
140
  }
201
141
  if (control.horizontalPosition != null) {
202
- horizontal = HORIZONTAL_POSITION_CODES[control.horizontalPosition];
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 === LOUVER_SWING ? 1 : 0) |
208
- (horizontal === LOUVER_SWING ? 2 : 0));
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
- : SWING_MODE_CODES[control.swingMode];
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(SPECIAL_MODE_ADV_CODES[mode]));
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
- ? HUMIDITY_SETTING_CODES[targetHumidity]
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":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/codecs/classic/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
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 a discovery reply from an air conditioner's classic adapter. */
23
+ export declare const CLASSIC_ADAPTER_TYPE = "aircon";
24
+ /** `type` in `get_model_info` on a unit that only cools. */
25
+ export declare const CLASSIC_COOLING_ONLY_TYPE = "C";
26
+ /** `type` in `unregister_terminal`. */
27
+ export declare const CLASSIC_TERMINAL_SCOPE_CODES: Record<TerminalScope, string>;
28
+ /** `method`: the adapter is reached from outside the home network while it
29
+ * polls, and from inside only otherwise. */
30
+ export declare const CLASSIC_REMOTE_METHODS: {
31
+ readonly polling: "polling";
32
+ readonly homeOnly: "home only";
33
+ };
34
+ //# 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,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,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,96 @@
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 a discovery reply from an air conditioner's classic adapter. */
81
+ export const CLASSIC_ADAPTER_TYPE = "aircon";
82
+ /** `type` in `get_model_info` on a unit that only cools. */
83
+ export const CLASSIC_COOLING_ONLY_TYPE = "C";
84
+ /** `type` in `unregister_terminal`. */
85
+ export const CLASSIC_TERMINAL_SCOPE_CODES = {
86
+ self: "0",
87
+ others: "1",
88
+ all: "2",
89
+ };
90
+ /** `method`: the adapter is reached from outside the home network while it
91
+ * polls, and from inside only otherwise. */
92
+ export const CLASSIC_REMOTE_METHODS = {
93
+ polling: "polling",
94
+ homeOnly: "home only",
95
+ };
96
+ //# 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,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAE7C,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. The adapter takes
2
- * the uuid without its dashes. */
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":"AAAA;kCACkC;AAClC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEvE;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
+ {"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
- /** The header that carries the terminal uuid on every call. The adapter takes
2
- * the uuid without its dashes. */
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
- return { "X-Daikin-uuid": uuid.replaceAll("-", "") };
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/codecs/credentials.ts"],"names":[],"mappings":"AAAA;kCACkC;AAClC,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,0BAA0B,CACxC,aAAqB;IAErB,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAChC,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CACtC,aAAqB;IAErB,OAAO,EAAE,aAAa,EAAE,SAAS,aAAa,EAAE,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/codecs/credentials.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAE/C;;0EAE0E;AAC1E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,0BAA0B,CACxC,aAAqB;IAErB,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAChC,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CACtC,aAAqB;IAErB,OAAO,EAAE,aAAa,EAAE,SAAS,aAAa,EAAE,EAAE,CAAC;AACrD,CAAC"}
@@ -1,7 +1,13 @@
1
1
  import type { DaikinDevice, DaikinDeviceInfo } from "../models/device.js";
2
+ /** Whether a `basic_info` reply comes from the adapter of an air conditioner:
3
+ * `type=aircon`, or `type=GPF` with a `cdev` that is not an air cleaner's. The
4
+ * adapter of another appliance answers the discovery probe as well, such as
5
+ * an air cleaner (`type=cleaner`) or a water heater (`type=Water Heater`). */
6
+ export declare function isAirConditioner(basicInfo: Record<string, string>): boolean;
2
7
  /** Turns a `basic_info` reply into a `DaikinDevice`: `type=GPF` marks a DSIOT
3
8
  * adapter, and `api_port`, when present, is the HTTP port and is appended to
4
- * `host`, the address the reply came from. */
9
+ * `host`, the address the reply came from. It reads any reply as an air
10
+ * conditioner's: check the reply with `isAirConditioner` first. */
5
11
  export declare function parseDevice(host: string, basicInfo: Record<string, string>): DaikinDevice;
6
12
  /** Reads what a `basic_info` reply says to identify the adapter. The name
7
13
  * arrives form-encoded. */
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/codecs/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAM1E;;8CAE8C;AAC9C,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,YAAY,CAiBd;AAED;2BAC2B;AAC3B,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,gBAAgB,CASlB;AAED;kBACkB;AAClB,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAEpB;AAED;;+DAE+D;AAC/D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAOpB"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/codecs/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAU1E;;;8EAG8E;AAC9E,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAK3E;AAED;;;mEAGmE;AACnE,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,YAAY,CAiBd;AAED;2BAC2B;AAC3B,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,gBAAgB,CASlB;AAED;kBACkB;AAClB,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAEpB;AAED;;+DAE+D;AAC/D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAOpB"}
@@ -1,11 +1,23 @@
1
1
  import { decodeClassicText } from "./classic/keyValue.js";
2
- const DSIOT_TYPE = "GPF";
2
+ import { CLASSIC_ADAPTER_TYPE } from "./classic/tables.js";
3
+ import { DSIOT_ADAPTER_TYPE, DSIOT_AIR_CLEANER_DEVICES, } from "./dsiot/tables.js";
3
4
  const MARVELL_ADP_KIND = "3";
5
+ /** Whether a `basic_info` reply comes from the adapter of an air conditioner:
6
+ * `type=aircon`, or `type=GPF` with a `cdev` that is not an air cleaner's. The
7
+ * adapter of another appliance answers the discovery probe as well, such as
8
+ * an air cleaner (`type=cleaner`) or a water heater (`type=Water Heater`). */
9
+ export function isAirConditioner(basicInfo) {
10
+ if (basicInfo.type === DSIOT_ADAPTER_TYPE) {
11
+ return !DSIOT_AIR_CLEANER_DEVICES.includes(basicInfo.cdev ?? "");
12
+ }
13
+ return basicInfo.type === CLASSIC_ADAPTER_TYPE;
14
+ }
4
15
  /** Turns a `basic_info` reply into a `DaikinDevice`: `type=GPF` marks a DSIOT
5
16
  * adapter, and `api_port`, when present, is the HTTP port and is appended to
6
- * `host`, the address the reply came from. */
17
+ * `host`, the address the reply came from. It reads any reply as an air
18
+ * conditioner's: check the reply with `isAirConditioner` first. */
7
19
  export function parseDevice(host, basicInfo) {
8
- const protocol = basicInfo.type === DSIOT_TYPE ? "dsiot" : "classic";
20
+ const protocol = basicInfo.type === DSIOT_ADAPTER_TYPE ? "dsiot" : "classic";
9
21
  const secure = basicInfo.en_secure === "1";
10
22
  return {
11
23
  host: basicInfo.api_port ? `${host}:${basicInfo.api_port}` : host,
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/codecs/device.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;8CAE8C;AAC9C,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,SAAiC;IAEjC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,KAAK,GAAG,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;QACjE,QAAQ;QACR,4CAA4C;QAC5C,oBAAoB,EAAE,MAAM,IAAI,QAAQ,KAAK,SAAS;QACtD,yEAAyE;QACzE,2DAA2D;QAC3D,SAAS,EACP,MAAM;YACN,QAAQ,KAAK,SAAS;YACtB,SAAS,CAAC,QAAQ,KAAK,gBAAgB;QACzC,qBAAqB,EAAE,SAAS,CAAC,QAAQ,KAAK,GAAG;QACjD,GAAG,eAAe,CAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED;2BAC2B;AAC3B,MAAM,UAAU,eAAe,CAC7B,SAAiC;IAEjC,OAAO;QACL,IAAI,EACF,SAAS,CAAC,IAAI,KAAK,SAAS;YAC1B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC;QACvC,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC;QAC3C,eAAe,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC;KACtD,CAAC;AACJ,CAAC;AAED;kBACkB;AAClB,MAAM,UAAU,gBAAgB,CAC9B,KAAyB;IAEzB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED;;+DAE+D;AAC/D,MAAM,UAAU,qBAAqB,CACnC,KAAyB;IAEzB,MAAM,KAAK,GAAG,kCAAkC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACnE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/codecs/device.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;8EAG8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,SAAiC;IAChE,IAAI,SAAS,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC1C,OAAO,CAAC,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,KAAK,oBAAoB,CAAC;AACjD,CAAC;AAED;;;mEAGmE;AACnE,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,SAAiC;IAEjC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,KAAK,GAAG,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;QACjE,QAAQ;QACR,4CAA4C;QAC5C,oBAAoB,EAAE,MAAM,IAAI,QAAQ,KAAK,SAAS;QACtD,yEAAyE;QACzE,2DAA2D;QAC3D,SAAS,EACP,MAAM;YACN,QAAQ,KAAK,SAAS;YACtB,SAAS,CAAC,QAAQ,KAAK,gBAAgB;QACzC,qBAAqB,EAAE,SAAS,CAAC,QAAQ,KAAK,GAAG;QACjD,GAAG,eAAe,CAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED;2BAC2B;AAC3B,MAAM,UAAU,eAAe,CAC7B,SAAiC;IAEjC,OAAO;QACL,IAAI,EACF,SAAS,CAAC,IAAI,KAAK,SAAS;YAC1B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC;QACvC,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC;QAC3C,eAAe,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC;KACtD,CAAC;AACJ,CAAC;AAED;kBACkB;AAClB,MAAM,UAAU,gBAAgB,CAC9B,KAAyB;IAEzB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED;;+DAE+D;AAC/D,MAAM,UAAU,qBAAqB,CACnC,KAAyB;IAEzB,MAAM,KAAK,GAAG,kCAAkC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACnE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/codecs/dsiot/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AAoDtC;;;4DAG4D;AAC5D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,kBAAkB,CAoFpB"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/codecs/dsiot/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AA6CtC;;;4DAG4D;AAC5D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,kBAAkB,CAoFpB"}
@@ -1,16 +1,9 @@
1
1
  import { FAN_SPEEDS, FIXED_LOUVER_POSITIONS, HORIZONTAL_POSITIONS, HUMIDITY_SETTINGS, OPERATING_MODES, SPECIAL_MODES, SWING_MODES, VERTICAL_POSITIONS, } from "../../models/state.js";
2
- import { DSIOT_HORIZONTAL_POSITION_VALUES, DSIOT_MODE_PATHS, DSIOT_PATHS, DSIOT_SPECIAL_MODE_PATHS, DSIOT_VERTICAL_POSITION_VALUES, decodeDsiotLittleEndian, } from "./state.js";
2
+ import { decodeDsiotLittleEndian } from "./state.js";
3
+ import { DSIOT_ADAPTER_PATHS, DSIOT_COOLING_ONLY_MODEL_TYPE, DSIOT_HORIZONTAL_POSITION_VALUES, DSIOT_MODE_PATHS, DSIOT_PATHS, DSIOT_SPECIAL_MODE_PATHS, DSIOT_VERTICAL_POSITION_VALUES, } from "./tables.js";
3
4
  const MODE_PATHS = Object.values(DSIOT_MODE_PATHS);
4
- const ADAPTER_PATHS = {
5
- region: "adp_i.reg",
6
- kind: "adp_i.kind",
7
- energyMonitoring: "adp_i.func.en_ipower",
8
- demandControl: "adp_i.func.en_demand",
9
- scheduleTimer: "adp_i.func.en_scdltmr",
10
- };
11
5
  // The `pt` of a special mode's leaf on a unit that takes the mode.
12
6
  const SPECIAL_MODE_OFFERED_TYPE = "2";
13
- const COOLING_ONLY_MODEL_TYPE = "01";
14
7
  const COOLING_ONLY_MODES = [
15
8
  "dehumidify",
16
9
  "cool",
@@ -24,7 +17,7 @@ const FIXED_POSITIONS = FIXED_LOUVER_POSITIONS;
24
17
  * degrees. Without the outdoor tree, `specialModes` lists no `powerful`. It
25
18
  * lists econo in every mode but fan: see UNSUPPORTED.md. */
26
19
  export function parseDsiotCapabilities(values) {
27
- const modes = values[DSIOT_PATHS.modelType] === COOLING_ONLY_MODEL_TYPE
20
+ const modes = values[DSIOT_PATHS.modelType] === DSIOT_COOLING_ONLY_MODEL_TYPE
28
21
  ? [...COOLING_ONLY_MODES]
29
22
  : [...OPERATING_MODES];
30
23
  const offered = (mode, range) => modes.includes(mode) ? range : null;
@@ -42,7 +35,7 @@ export function parseDsiotCapabilities(values) {
42
35
  : [];
43
36
  const vertical = hasLouver(values, "vertical");
44
37
  const horizontal = hasLouver(values, "horizontal");
45
- const energyMonitoring = values[ADAPTER_PATHS.energyMonitoring] === "1" &&
38
+ const energyMonitoring = values[DSIOT_ADAPTER_PATHS.energyMonitoring] === "1" &&
46
39
  values[DSIOT_PATHS.energyMonitoring] === "01";
47
40
  return {
48
41
  modes,
@@ -81,9 +74,9 @@ export function parseDsiotCapabilities(values) {
81
74
  specialOutlet: false,
82
75
  energyMonitoring,
83
76
  demandControl: energyMonitoring &&
84
- values[ADAPTER_PATHS.kind] === "4" &&
85
- values[ADAPTER_PATHS.demandControl] === "1",
86
- scheduleTimer: ["1", "2"].includes(values[ADAPTER_PATHS.scheduleTimer] ?? ""),
77
+ values[DSIOT_ADAPTER_PATHS.kind] === "4" &&
78
+ values[DSIOT_ADAPTER_PATHS.demandControl] === "1",
79
+ scheduleTimer: ["1", "2"].includes(values[DSIOT_ADAPTER_PATHS.scheduleTimer] ?? ""),
87
80
  model: values[DSIOT_PATHS.model],
88
81
  };
89
82
  }
@@ -99,7 +92,7 @@ function takes(mask, value) {
99
92
  }
100
93
  // Japanese units (`jp`) follow other rules: see UNSUPPORTED.md.
101
94
  function fanSpeeds(values) {
102
- const region = values[ADAPTER_PATHS.region];
95
+ const region = values[DSIOT_ADAPTER_PATHS.region];
103
96
  if (!region || region === "jp") {
104
97
  return [];
105
98
  }