@mp-consulting/homebridge-daikin-cloud 1.0.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 (202) hide show
  1. package/.claude/settings.json +3 -0
  2. package/.claude/settings.local.json +8 -0
  3. package/CLAUDE.md +34 -0
  4. package/LICENSE +176 -0
  5. package/README.md +180 -0
  6. package/changelog.md +217 -0
  7. package/config.md +2 -0
  8. package/config.schema.json +146 -0
  9. package/dist/src/accessories/air-conditioning-accessory.d.ts +9 -0
  10. package/dist/src/accessories/air-conditioning-accessory.d.ts.map +1 -0
  11. package/dist/src/accessories/air-conditioning-accessory.js +19 -0
  12. package/dist/src/accessories/air-conditioning-accessory.js.map +1 -0
  13. package/dist/src/accessories/altherma-accessory.d.ts +11 -0
  14. package/dist/src/accessories/altherma-accessory.d.ts.map +1 -0
  15. package/dist/src/accessories/altherma-accessory.js +31 -0
  16. package/dist/src/accessories/altherma-accessory.js.map +1 -0
  17. package/dist/src/accessories/base-accessory.d.ts +16 -0
  18. package/dist/src/accessories/base-accessory.d.ts.map +1 -0
  19. package/dist/src/accessories/base-accessory.js +56 -0
  20. package/dist/src/accessories/base-accessory.js.map +1 -0
  21. package/dist/src/accessories/index.d.ts +4 -0
  22. package/dist/src/accessories/index.d.ts.map +1 -0
  23. package/dist/src/accessories/index.js +20 -0
  24. package/dist/src/accessories/index.js.map +1 -0
  25. package/dist/src/api/daikin-cloud.repository.d.ts +4 -0
  26. package/dist/src/api/daikin-cloud.repository.d.ts.map +1 -0
  27. package/dist/src/api/daikin-cloud.repository.js +31 -0
  28. package/dist/src/api/daikin-cloud.repository.js.map +1 -0
  29. package/dist/src/api/index.d.ts +2 -0
  30. package/dist/src/api/index.d.ts.map +1 -0
  31. package/dist/src/api/index.js +18 -0
  32. package/dist/src/api/index.js.map +1 -0
  33. package/dist/src/device/accessory-factory.d.ts +36 -0
  34. package/dist/src/device/accessory-factory.d.ts.map +1 -0
  35. package/dist/src/device/accessory-factory.js +61 -0
  36. package/dist/src/device/accessory-factory.js.map +1 -0
  37. package/dist/src/device/capability-detector.d.ts +36 -0
  38. package/dist/src/device/capability-detector.d.ts.map +1 -0
  39. package/dist/src/device/capability-detector.js +130 -0
  40. package/dist/src/device/capability-detector.js.map +1 -0
  41. package/dist/src/device/capability-docs.d.ts +20 -0
  42. package/dist/src/device/capability-docs.d.ts.map +1 -0
  43. package/dist/src/device/capability-docs.js +98 -0
  44. package/dist/src/device/capability-docs.js.map +1 -0
  45. package/dist/src/device/index.d.ts +5 -0
  46. package/dist/src/device/index.d.ts.map +1 -0
  47. package/dist/src/device/index.js +21 -0
  48. package/dist/src/device/index.js.map +1 -0
  49. package/dist/src/device/profiles/device-profile.d.ts +42 -0
  50. package/dist/src/device/profiles/device-profile.d.ts.map +1 -0
  51. package/dist/src/device/profiles/device-profile.js +103 -0
  52. package/dist/src/device/profiles/device-profile.js.map +1 -0
  53. package/dist/src/device/profiles/index.d.ts +2 -0
  54. package/dist/src/device/profiles/index.d.ts.map +1 -0
  55. package/dist/src/device/profiles/index.js +18 -0
  56. package/dist/src/device/profiles/index.js.map +1 -0
  57. package/dist/src/features/base-feature.d.ts +65 -0
  58. package/dist/src/features/base-feature.d.ts.map +1 -0
  59. package/dist/src/features/base-feature.js +99 -0
  60. package/dist/src/features/base-feature.js.map +1 -0
  61. package/dist/src/features/feature-manager.d.ts +37 -0
  62. package/dist/src/features/feature-manager.d.ts.map +1 -0
  63. package/dist/src/features/feature-manager.js +68 -0
  64. package/dist/src/features/feature-manager.js.map +1 -0
  65. package/dist/src/features/index.d.ts +4 -0
  66. package/dist/src/features/index.d.ts.map +1 -0
  67. package/dist/src/features/index.js +20 -0
  68. package/dist/src/features/index.js.map +1 -0
  69. package/dist/src/features/modes/dry-operation-mode.feature.d.ts +16 -0
  70. package/dist/src/features/modes/dry-operation-mode.feature.d.ts.map +1 -0
  71. package/dist/src/features/modes/dry-operation-mode.feature.js +40 -0
  72. package/dist/src/features/modes/dry-operation-mode.feature.js.map +1 -0
  73. package/dist/src/features/modes/econo-mode.feature.d.ts +15 -0
  74. package/dist/src/features/modes/econo-mode.feature.d.ts.map +1 -0
  75. package/dist/src/features/modes/econo-mode.feature.js +37 -0
  76. package/dist/src/features/modes/econo-mode.feature.js.map +1 -0
  77. package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts +16 -0
  78. package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts.map +1 -0
  79. package/dist/src/features/modes/fan-only-operation-mode.feature.js +40 -0
  80. package/dist/src/features/modes/fan-only-operation-mode.feature.js.map +1 -0
  81. package/dist/src/features/modes/index.d.ts +8 -0
  82. package/dist/src/features/modes/index.d.ts.map +1 -0
  83. package/dist/src/features/modes/index.js +24 -0
  84. package/dist/src/features/modes/index.js.map +1 -0
  85. package/dist/src/features/modes/indoor-silent-mode.feature.d.ts +17 -0
  86. package/dist/src/features/modes/indoor-silent-mode.feature.d.ts.map +1 -0
  87. package/dist/src/features/modes/indoor-silent-mode.feature.js +47 -0
  88. package/dist/src/features/modes/indoor-silent-mode.feature.js.map +1 -0
  89. package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts +15 -0
  90. package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts.map +1 -0
  91. package/dist/src/features/modes/outdoor-silent-mode.feature.js +37 -0
  92. package/dist/src/features/modes/outdoor-silent-mode.feature.js.map +1 -0
  93. package/dist/src/features/modes/powerful-mode.feature.d.ts +15 -0
  94. package/dist/src/features/modes/powerful-mode.feature.d.ts.map +1 -0
  95. package/dist/src/features/modes/powerful-mode.feature.js +37 -0
  96. package/dist/src/features/modes/powerful-mode.feature.js.map +1 -0
  97. package/dist/src/features/modes/streamer-mode.feature.d.ts +15 -0
  98. package/dist/src/features/modes/streamer-mode.feature.d.ts.map +1 -0
  99. package/dist/src/features/modes/streamer-mode.feature.js +37 -0
  100. package/dist/src/features/modes/streamer-mode.feature.js.map +1 -0
  101. package/dist/src/index.d.ts +7 -0
  102. package/dist/src/index.d.ts.map +1 -0
  103. package/dist/src/index.js +7 -0
  104. package/dist/src/index.js.map +1 -0
  105. package/dist/src/platform.d.ts +33 -0
  106. package/dist/src/platform.d.ts.map +1 -0
  107. package/dist/src/platform.js +209 -0
  108. package/dist/src/platform.js.map +1 -0
  109. package/dist/src/services/climate-control.service.d.ts +43 -0
  110. package/dist/src/services/climate-control.service.d.ts.map +1 -0
  111. package/dist/src/services/climate-control.service.js +366 -0
  112. package/dist/src/services/climate-control.service.js.map +1 -0
  113. package/dist/src/services/hot-water-tank.service.d.ts +23 -0
  114. package/dist/src/services/hot-water-tank.service.d.ts.map +1 -0
  115. package/dist/src/services/hot-water-tank.service.js +214 -0
  116. package/dist/src/services/hot-water-tank.service.js.map +1 -0
  117. package/dist/src/services/index.d.ts +3 -0
  118. package/dist/src/services/index.d.ts.map +1 -0
  119. package/dist/src/services/index.js +19 -0
  120. package/dist/src/services/index.js.map +1 -0
  121. package/dist/src/settings.d.ts +9 -0
  122. package/dist/src/settings.d.ts.map +1 -0
  123. package/dist/src/settings.js +12 -0
  124. package/dist/src/settings.js.map +1 -0
  125. package/dist/src/types/daikin-enums.d.ts +61 -0
  126. package/dist/src/types/daikin-enums.d.ts.map +1 -0
  127. package/dist/src/types/daikin-enums.js +76 -0
  128. package/dist/src/types/daikin-enums.js.map +1 -0
  129. package/dist/src/types/device-capabilities.d.ts +47 -0
  130. package/dist/src/types/device-capabilities.d.ts.map +1 -0
  131. package/dist/src/types/device-capabilities.js +7 -0
  132. package/dist/src/types/device-capabilities.js.map +1 -0
  133. package/dist/src/types/index.d.ts +3 -0
  134. package/dist/src/types/index.d.ts.map +1 -0
  135. package/dist/src/types/index.js +19 -0
  136. package/dist/src/types/index.js.map +1 -0
  137. package/dist/src/utils/strings.d.ts +5 -0
  138. package/dist/src/utils/strings.d.ts.map +1 -0
  139. package/dist/src/utils/strings.js +22 -0
  140. package/dist/src/utils/strings.js.map +1 -0
  141. package/docs/Screenshot 2024-07-04 at 18.41.28.png +0 -0
  142. package/docs/api-response-for-BRP069A8x.json +520 -0
  143. package/docs/api-response-for-BRP069C4x-2.json +881 -0
  144. package/docs/api-response-for-BRP069C4x.json +916 -0
  145. package/docs/api-response-for-altherma.json +759 -0
  146. package/docs/api-response-for-altherma2.json +2735 -0
  147. package/docs/api-response-with-multiple-devices-incl-heatpump.json +2544 -0
  148. package/docs/cr-insance-altherma-id-0.json +834 -0
  149. package/docs/mock-air-to-air-dx23.json +759 -0
  150. package/docs/mock-air-to-air-dx4.json +1134 -0
  151. package/docs/mock-airpurifier-with-humidifier.json +732 -0
  152. package/docs/mock-airpurifier.json +450 -0
  153. package/docs/mock-altherma-air-to-water-lan.json +845 -0
  154. package/docs/mock-altherma-air-to-water-wlan.json +845 -0
  155. package/docs/mock-d2cnd-gas-boiler.json +649 -0
  156. package/docs/setpointmode-vs-controlmode-vs-setpoints-vs-sensorydata.txt +6 -0
  157. package/homebridge-ui/README.md +35 -0
  158. package/homebridge-ui/public/index.html +222 -0
  159. package/homebridge-ui/public/script.js +796 -0
  160. package/homebridge-ui/public/styles.css +456 -0
  161. package/homebridge-ui/server.js +909 -0
  162. package/jest.config.ts +13 -0
  163. package/package.json +63 -0
  164. package/test/fixtures/altherma-crSense-2.ts +834 -0
  165. package/test/fixtures/altherma-fraction.ts +719 -0
  166. package/test/fixtures/altherma-heat-pump-2.ts +479 -0
  167. package/test/fixtures/altherma-heat-pump.ts +758 -0
  168. package/test/fixtures/altherma-miladcerkic-off.ts +524 -0
  169. package/test/fixtures/altherma-miladcerkic.ts +524 -0
  170. package/test/fixtures/altherma-v1ckoeln.ts +645 -0
  171. package/test/fixtures/altherma-with-embedded-id-zero.ts +834 -0
  172. package/test/fixtures/dx23-airco-2.ts +343 -0
  173. package/test/fixtures/dx23-airco.ts +519 -0
  174. package/test/fixtures/dx4-airco.ts +915 -0
  175. package/test/fixtures/unknown-jan.ts +489 -0
  176. package/test/fixtures/unknown-kitchen-guests.ts +489 -0
  177. package/test/hbConfig/.daikin-controller-cloud-tokenset +8 -0
  178. package/test/hbConfig/.uix-dashboard.json +1 -0
  179. package/test/hbConfig/.uix-secrets +1 -0
  180. package/test/hbConfig/accessories/.cachedAccessories.bak +1 -0
  181. package/test/hbConfig/accessories/cachedAccessories +1 -0
  182. package/test/hbConfig/accessories/uiAccessoriesLayout.json +1 -0
  183. package/test/hbConfig/auth.json +10 -0
  184. package/test/hbConfig/backups/config-backups/config.json.1767953686461 +25 -0
  185. package/test/hbConfig/backups/config-backups/config.json.1767953695236 +29 -0
  186. package/test/hbConfig/backups/config-backups/config.json.1767953814763 +29 -0
  187. package/test/hbConfig/backups/config-backups/config.json.1767953823101 +29 -0
  188. package/test/hbConfig/backups/config-backups/config.json.1767954822835 +29 -0
  189. package/test/hbConfig/backups/config-backups/config.json.1767954859218 +29 -0
  190. package/test/hbConfig/config.json +33 -0
  191. package/test/hbConfig/daikin-cloud-certs/server.crt +22 -0
  192. package/test/hbConfig/daikin-cloud-certs/server.key +28 -0
  193. package/test/hbConfig/persist/AccessoryInfo.1E4A432551BA.json +1 -0
  194. package/test/hbConfig/persist/IdentifierCache.1E4A432551BA.json +1 -0
  195. package/test/integration/air-conditioning.test.ts +396 -0
  196. package/test/integration/altherma.test.ts +288 -0
  197. package/test/integration/platform.test.ts +101 -0
  198. package/test/mocks/index.ts +27 -0
  199. package/test/unit/api/__snapshots__/daikinCloud.test.ts.snap +1323 -0
  200. package/test/unit/api/daikinCloud.test.ts +12 -0
  201. package/test/unit/device/daikin-device.test.ts +29 -0
  202. package/test/unit/services/hot-water-tank.service.test.ts +107 -0
@@ -0,0 +1,881 @@
1
+ [
2
+ {
3
+ "_id": "*******************************",
4
+ "isCloudConnectionUp": {
5
+ "settable": false,
6
+ "value": true
7
+ },
8
+ "type": "dx4",
9
+ "deviceModel": "dx4",
10
+ "managementPoints": [
11
+ {
12
+ "embeddedId": "gateway",
13
+ "managementPointType": "gateway",
14
+ "managementPointCategory": "secondary",
15
+ "modelInfo": {
16
+ "settable": false,
17
+ "value": "BRP069C4x"
18
+ },
19
+ "macAddress": {
20
+ "settable": false,
21
+ "value": "**:**:**:**:**"
22
+ },
23
+ "firmwareVersion": {
24
+ "settable": false,
25
+ "value": "1_12_51"
26
+ },
27
+ "serialNumber": {
28
+ "settable": false,
29
+ "value": "000000000********"
30
+ },
31
+ "errorCode": {
32
+ "settable": false,
33
+ "value": ""
34
+ },
35
+ "isInErrorState": {
36
+ "settable": false,
37
+ "value": false
38
+ },
39
+ "ssid": {
40
+ "settable": false,
41
+ "value": "DaikinAP*******"
42
+ },
43
+ "regionCode": {
44
+ "settable": false,
45
+ "value": "eu"
46
+ },
47
+ "ledEnabled": {
48
+ "settable": true,
49
+ "value": true
50
+ },
51
+ "timeZone": {
52
+ "settable": true,
53
+ "value": "Europe"
54
+ },
55
+ "daylightSavingTimeEnabled": {
56
+ "settable": true,
57
+ "value": true
58
+ },
59
+ "wifiConnectionSSID": {
60
+ "settable": false,
61
+ "value": "************"
62
+ },
63
+ "wifiConnectionStrength": {
64
+ "settable": false,
65
+ "value": -40,
66
+ "maxValue": 0,
67
+ "minValue": -90,
68
+ "stepValue": 1
69
+ }
70
+ },
71
+ {
72
+ "embeddedId": "climateControl",
73
+ "managementPointType": "climateControl",
74
+ "managementPointSubType": "mainZone",
75
+ "managementPointCategory": "primary",
76
+ "onOffMode": {
77
+ "settable": true,
78
+ "values": [
79
+ "on",
80
+ "off"
81
+ ],
82
+ "value": "off"
83
+ },
84
+ "name": {
85
+ "settable": true,
86
+ "maxLength": 20,
87
+ "value": "Mark's Room Aircon"
88
+ },
89
+ "iconId": {
90
+ "settable": true,
91
+ "maxValue": 255,
92
+ "minValue": 0,
93
+ "value": 16
94
+ },
95
+ "isHolidayModeActive": {
96
+ "settable": false,
97
+ "value": false
98
+ },
99
+ "isInErrorState": {
100
+ "settable": false,
101
+ "value": false
102
+ },
103
+ "isInWarningState": {
104
+ "settable": false,
105
+ "value": false
106
+ },
107
+ "isInCautionState": {
108
+ "settable": false,
109
+ "value": false
110
+ },
111
+ "errorCode": {
112
+ "settable": false,
113
+ "value": "00-"
114
+ },
115
+ "operationMode": {
116
+ "settable": true,
117
+ "value": "cooling",
118
+ "values": [
119
+ "fanOnly",
120
+ "heating",
121
+ "cooling",
122
+ "auto",
123
+ "dry"
124
+ ]
125
+ },
126
+ "temperatureControl": {
127
+ "ref": "#temperatureControl",
128
+ "settable": true,
129
+ "value": {
130
+ "operationModes": {
131
+ "heating": {
132
+ "setpoints": {
133
+ "roomTemperature": {
134
+ "settable": true,
135
+ "value": 21,
136
+ "stepValue": 0.5,
137
+ "minValue": 10,
138
+ "maxValue": 31
139
+ }
140
+ }
141
+ },
142
+ "cooling": {
143
+ "setpoints": {
144
+ "roomTemperature": {
145
+ "settable": true,
146
+ "value": 25,
147
+ "stepValue": 0.5,
148
+ "minValue": 18,
149
+ "maxValue": 33
150
+ }
151
+ }
152
+ },
153
+ "auto": {
154
+ "setpoints": {
155
+ "roomTemperature": {
156
+ "settable": true,
157
+ "value": 25,
158
+ "stepValue": 0.5,
159
+ "minValue": 18,
160
+ "maxValue": 30
161
+ }
162
+ }
163
+ }
164
+ }
165
+ }
166
+ },
167
+ "sensoryData": {
168
+ "ref": "#sensoryData",
169
+ "settable": false,
170
+ "value": {
171
+ "roomTemperature": {
172
+ "settable": false,
173
+ "value": 22,
174
+ "stepValue": 1,
175
+ "minValue": -25,
176
+ "maxValue": 50
177
+ },
178
+ "outdoorTemperature": {
179
+ "settable": false,
180
+ "value": 19.5,
181
+ "stepValue": 0.5,
182
+ "minValue": -25,
183
+ "maxValue": 50
184
+ }
185
+ }
186
+ },
187
+ "fanControl": {
188
+ "ref": "#fanControl",
189
+ "settable": true,
190
+ "value": {
191
+ "operationModes": {
192
+ "heating": {
193
+ "fanSpeed": {
194
+ "currentMode": {
195
+ "value": "quiet",
196
+ "settable": true,
197
+ "values": [
198
+ "auto",
199
+ "quiet",
200
+ "fixed"
201
+ ]
202
+ },
203
+ "modes": {
204
+ "fixed": {
205
+ "value": 1,
206
+ "stepValue": 1,
207
+ "minValue": 1,
208
+ "maxValue": 5,
209
+ "settable": true
210
+ }
211
+ }
212
+ },
213
+ "fanDirection": {
214
+ "horizontal": {
215
+ "currentMode": {
216
+ "value": "stop",
217
+ "settable": true,
218
+ "values": [
219
+ "stop",
220
+ "swing"
221
+ ]
222
+ }
223
+ },
224
+ "vertical": {
225
+ "currentMode": {
226
+ "value": "stop",
227
+ "settable": true,
228
+ "values": [
229
+ "stop",
230
+ "swing",
231
+ "windNice"
232
+ ]
233
+ }
234
+ }
235
+ }
236
+ },
237
+ "cooling": {
238
+ "fanSpeed": {
239
+ "currentMode": {
240
+ "value": "quiet",
241
+ "settable": true,
242
+ "values": [
243
+ "auto",
244
+ "quiet",
245
+ "fixed"
246
+ ]
247
+ },
248
+ "modes": {
249
+ "fixed": {
250
+ "value": 1,
251
+ "stepValue": 1,
252
+ "minValue": 1,
253
+ "maxValue": 5,
254
+ "settable": true
255
+ }
256
+ }
257
+ },
258
+ "fanDirection": {
259
+ "horizontal": {
260
+ "currentMode": {
261
+ "value": "stop",
262
+ "settable": true,
263
+ "values": [
264
+ "stop",
265
+ "swing"
266
+ ]
267
+ }
268
+ },
269
+ "vertical": {
270
+ "currentMode": {
271
+ "value": "stop",
272
+ "settable": true,
273
+ "values": [
274
+ "stop",
275
+ "swing",
276
+ "windNice"
277
+ ]
278
+ }
279
+ }
280
+ }
281
+ },
282
+ "auto": {
283
+ "fanSpeed": {
284
+ "currentMode": {
285
+ "value": "fixed",
286
+ "settable": true,
287
+ "values": [
288
+ "auto",
289
+ "quiet",
290
+ "fixed"
291
+ ]
292
+ },
293
+ "modes": {
294
+ "fixed": {
295
+ "value": 5,
296
+ "stepValue": 1,
297
+ "minValue": 1,
298
+ "maxValue": 5,
299
+ "settable": true
300
+ }
301
+ }
302
+ },
303
+ "fanDirection": {
304
+ "horizontal": {
305
+ "currentMode": {
306
+ "value": "stop",
307
+ "settable": true,
308
+ "values": [
309
+ "stop",
310
+ "swing"
311
+ ]
312
+ }
313
+ },
314
+ "vertical": {
315
+ "currentMode": {
316
+ "value": "stop",
317
+ "settable": true,
318
+ "values": [
319
+ "stop",
320
+ "swing",
321
+ "windNice"
322
+ ]
323
+ }
324
+ }
325
+ }
326
+ },
327
+ "dry": {
328
+ "fanSpeed": {
329
+ "currentMode": {
330
+ "value": "auto",
331
+ "settable": true,
332
+ "values": [
333
+ "auto"
334
+ ]
335
+ }
336
+ },
337
+ "fanDirection": {
338
+ "horizontal": {
339
+ "currentMode": {
340
+ "value": "stop",
341
+ "settable": true,
342
+ "values": [
343
+ "stop",
344
+ "swing"
345
+ ]
346
+ }
347
+ },
348
+ "vertical": {
349
+ "currentMode": {
350
+ "value": "stop",
351
+ "settable": true,
352
+ "values": [
353
+ "stop",
354
+ "swing",
355
+ "windNice"
356
+ ]
357
+ }
358
+ }
359
+ }
360
+ },
361
+ "fanOnly": {
362
+ "fanSpeed": {
363
+ "currentMode": {
364
+ "value": "quiet",
365
+ "settable": true,
366
+ "values": [
367
+ "auto",
368
+ "quiet",
369
+ "fixed"
370
+ ]
371
+ },
372
+ "modes": {
373
+ "fixed": {
374
+ "value": 1,
375
+ "stepValue": 1,
376
+ "minValue": 1,
377
+ "maxValue": 5,
378
+ "settable": true
379
+ }
380
+ }
381
+ },
382
+ "fanDirection": {
383
+ "horizontal": {
384
+ "currentMode": {
385
+ "value": "stop",
386
+ "settable": true,
387
+ "values": [
388
+ "stop",
389
+ "swing"
390
+ ]
391
+ }
392
+ },
393
+ "vertical": {
394
+ "currentMode": {
395
+ "value": "stop",
396
+ "settable": true,
397
+ "values": [
398
+ "stop",
399
+ "swing"
400
+ ]
401
+ }
402
+ }
403
+ }
404
+ }
405
+ }
406
+ }
407
+ },
408
+ "schedule": {
409
+ "ref": "#schedule",
410
+ "settable": true,
411
+ "value": {
412
+ "currentMode": {
413
+ "value": "any",
414
+ "settable": true,
415
+ "values": [
416
+ "any"
417
+ ]
418
+ },
419
+ "nextAction": {},
420
+ "modes": {
421
+ "any": {
422
+ "currentSchedule": {
423
+ "value": "0",
424
+ "settable": true,
425
+ "values": [
426
+ "0",
427
+ "1",
428
+ "2"
429
+ ]
430
+ },
431
+ "enabled": {
432
+ "value": false,
433
+ "settable": true
434
+ },
435
+ "meta": {
436
+ "minIntervalBetweenActions": "00:01:00",
437
+ "maxSchedules": 1,
438
+ "maxActionsPerActionPeriod": 6,
439
+ "consecutiveActionsAllowed": true,
440
+ "actionTypes": {
441
+ "operationMode": {
442
+ "settable": false,
443
+ "values": [
444
+ "fanOnly",
445
+ "heating",
446
+ "cooling",
447
+ "auto",
448
+ "dry",
449
+ "off"
450
+ ]
451
+ },
452
+ "roomTemperature": {
453
+ "heating": {
454
+ "settable": false,
455
+ "stepValue": 0.5,
456
+ "minValue": 10,
457
+ "maxValue": 31
458
+ },
459
+ "cooling": {
460
+ "settable": false,
461
+ "stepValue": 0.5,
462
+ "minValue": 18,
463
+ "maxValue": 33
464
+ },
465
+ "auto": {
466
+ "settable": false,
467
+ "stepValue": 0.5,
468
+ "minValue": 18,
469
+ "maxValue": 30
470
+ }
471
+ },
472
+ "fanSpeed": {
473
+ "heating": {
474
+ "currentMode": {
475
+ "settable": false,
476
+ "values": [
477
+ "auto",
478
+ "quiet",
479
+ "fixed"
480
+ ]
481
+ },
482
+ "modes": {
483
+ "fixed": {
484
+ "stepValue": 1,
485
+ "minValue": 1,
486
+ "maxValue": 5,
487
+ "settable": false
488
+ }
489
+ }
490
+ },
491
+ "cooling": {
492
+ "currentMode": {
493
+ "settable": false,
494
+ "values": [
495
+ "auto",
496
+ "quiet",
497
+ "fixed"
498
+ ]
499
+ },
500
+ "modes": {
501
+ "fixed": {
502
+ "stepValue": 1,
503
+ "minValue": 1,
504
+ "maxValue": 5,
505
+ "settable": false
506
+ }
507
+ }
508
+ },
509
+ "auto": {
510
+ "currentMode": {
511
+ "settable": false,
512
+ "values": [
513
+ "auto",
514
+ "quiet",
515
+ "fixed"
516
+ ]
517
+ },
518
+ "modes": {
519
+ "fixed": {
520
+ "stepValue": 1,
521
+ "minValue": 1,
522
+ "maxValue": 5,
523
+ "settable": false
524
+ }
525
+ }
526
+ },
527
+ "dry": {
528
+ "currentMode": {
529
+ "settable": false,
530
+ "values": [
531
+ "auto"
532
+ ]
533
+ }
534
+ },
535
+ "fanOnly": {
536
+ "currentMode": {
537
+ "settable": false,
538
+ "values": [
539
+ "auto",
540
+ "quiet",
541
+ "fixed"
542
+ ]
543
+ },
544
+ "modes": {
545
+ "fixed": {
546
+ "stepValue": 1,
547
+ "minValue": 1,
548
+ "maxValue": 5,
549
+ "settable": false
550
+ }
551
+ }
552
+ }
553
+ },
554
+ "econoMode": {
555
+ "settable": false,
556
+ "values": [
557
+ "on",
558
+ "off"
559
+ ]
560
+ }
561
+ }
562
+ },
563
+ "schedules": {
564
+ "0": {
565
+ "name": {
566
+ "settable": true,
567
+ "value": "",
568
+ "maxLength": 32
569
+ },
570
+ "meta": {
571
+ "isReadOnly": false,
572
+ "actionPeriods": [
573
+ "monday",
574
+ "tuesday",
575
+ "wednesday",
576
+ "thursday",
577
+ "friday",
578
+ "saturday",
579
+ "sunday"
580
+ ]
581
+ },
582
+ "actions": {},
583
+ "settable": true
584
+ },
585
+ "1": {
586
+ "name": {
587
+ "settable": true,
588
+ "value": "",
589
+ "maxLength": 32
590
+ },
591
+ "meta": {
592
+ "isReadOnly": false,
593
+ "actionPeriods": [
594
+ "monday",
595
+ "tuesday",
596
+ "wednesday",
597
+ "thursday",
598
+ "friday",
599
+ "saturday",
600
+ "sunday"
601
+ ]
602
+ },
603
+ "actions": {},
604
+ "settable": true
605
+ },
606
+ "2": {
607
+ "name": {
608
+ "settable": true,
609
+ "value": "",
610
+ "maxLength": 32
611
+ },
612
+ "meta": {
613
+ "isReadOnly": false,
614
+ "actionPeriods": [
615
+ "monday",
616
+ "tuesday",
617
+ "wednesday",
618
+ "thursday",
619
+ "friday",
620
+ "saturday",
621
+ "sunday"
622
+ ]
623
+ },
624
+ "actions": {},
625
+ "settable": true
626
+ }
627
+ }
628
+ }
629
+ }
630
+ }
631
+ },
632
+ "econoMode": {
633
+ "settable": true,
634
+ "values": [
635
+ "on",
636
+ "off"
637
+ ],
638
+ "value": "off"
639
+ },
640
+ "powerfulMode": {
641
+ "settable": true,
642
+ "values": [
643
+ "on",
644
+ "off"
645
+ ],
646
+ "value": "off"
647
+ },
648
+ "isPowerfulModeActive": {
649
+ "settable": false,
650
+ "value": false
651
+ },
652
+ "streamerMode": {
653
+ "settable": true,
654
+ "values": [
655
+ "on",
656
+ "off"
657
+ ],
658
+ "value": "off"
659
+ },
660
+ "consumptionData": {
661
+ "ref": "#consumptionData",
662
+ "settable": false,
663
+ "value": {
664
+ "electrical": {
665
+ "unit": "kWh",
666
+ "heating": {
667
+ "d": [
668
+ 0,
669
+ 0,
670
+ 0,
671
+ 0,
672
+ 0,
673
+ 0,
674
+ 0,
675
+ 0,
676
+ 0,
677
+ 0,
678
+ 0,
679
+ 0,
680
+ 0,
681
+ 0,
682
+ 0,
683
+ 0,
684
+ 0,
685
+ 0,
686
+ 0,
687
+ 0,
688
+ 0,
689
+ 0,
690
+ 0,
691
+ 0
692
+ ],
693
+ "w": [
694
+ 0,
695
+ 0,
696
+ 0,
697
+ 0,
698
+ 0,
699
+ 0,
700
+ 0,
701
+ 0,
702
+ 0,
703
+ 0.1,
704
+ 0,
705
+ 0,
706
+ 0,
707
+ null
708
+ ],
709
+ "m": [
710
+ 0,
711
+ 0,
712
+ 0,
713
+ 0,
714
+ 0,
715
+ 0,
716
+ 0,
717
+ 0,
718
+ 0,
719
+ 0,
720
+ 0,
721
+ 0,
722
+ 0,
723
+ 0,
724
+ 0,
725
+ 0,
726
+ 0.1,
727
+ 0,
728
+ 0,
729
+ 0,
730
+ 0,
731
+ 0,
732
+ 0,
733
+ 0
734
+ ]
735
+ },
736
+ "cooling": {
737
+ "d": [
738
+ 0,
739
+ 0,
740
+ 0,
741
+ 0,
742
+ 0.1,
743
+ 0,
744
+ 0,
745
+ 0,
746
+ 0,
747
+ 0,
748
+ 0,
749
+ 0,
750
+ 0,
751
+ 0,
752
+ 0.1,
753
+ 0,
754
+ 0,
755
+ 0,
756
+ 0,
757
+ 0,
758
+ 0,
759
+ 0,
760
+ 0,
761
+ 0
762
+ ],
763
+ "w": [
764
+ 1.1,
765
+ 0.7,
766
+ 0.1,
767
+ 0.1,
768
+ 0.2,
769
+ 0.1,
770
+ 0.1,
771
+ 0.1,
772
+ 0.1,
773
+ 0,
774
+ 0.1,
775
+ 0.1,
776
+ 0.1,
777
+ null
778
+ ],
779
+ "m": [
780
+ 0,
781
+ 0,
782
+ 0,
783
+ 0,
784
+ 0,
785
+ 0,
786
+ 0,
787
+ 0,
788
+ 0,
789
+ 0,
790
+ 0,
791
+ 0,
792
+ 0,
793
+ 0,
794
+ 0,
795
+ 3.5,
796
+ 0.6,
797
+ 0,
798
+ 0,
799
+ 0,
800
+ 0,
801
+ 0,
802
+ 0,
803
+ 0
804
+ ]
805
+ }
806
+ }
807
+ }
808
+ },
809
+ "holidayMode": {
810
+ "ref": "#holidayMode",
811
+ "settable": true,
812
+ "value": {
813
+ "enabled": false
814
+ }
815
+ },
816
+ "isCoolHeatMaster": {
817
+ "settable": false,
818
+ "value": true
819
+ },
820
+ "isLockFunctionEnabled": {
821
+ "settable": false,
822
+ "value": false
823
+ },
824
+ "outdoorSilentMode": {
825
+ "settable": false,
826
+ "values": [
827
+ "on",
828
+ "off"
829
+ ],
830
+ "value": "off"
831
+ }
832
+ },
833
+ {
834
+ "embeddedId": "indoorUnit",
835
+ "managementPointType": "indoorUnit",
836
+ "managementPointCategory": "secondary",
837
+ "softwareVersion": {
838
+ "settable": false,
839
+ "value": "20003002"
840
+ },
841
+ "eepromVersion": {
842
+ "settable": false,
843
+ "value": "12FD"
844
+ },
845
+ "dryKeepSetting": {
846
+ "settable": false,
847
+ "values": [
848
+ "on",
849
+ "off"
850
+ ],
851
+ "value": "on"
852
+ }
853
+ },
854
+ {
855
+ "embeddedId": "outdoorUnit",
856
+ "managementPointType": "outdoorUnit",
857
+ "managementPointCategory": "secondary",
858
+ "errorCode": {
859
+ "settable": false,
860
+ "value": "00-"
861
+ },
862
+ "isInErrorState": {
863
+ "settable": false,
864
+ "value": false
865
+ },
866
+ "isInWarningState": {
867
+ "settable": false,
868
+ "value": false
869
+ },
870
+ "isInCautionState": {
871
+ "settable": false,
872
+ "value": false
873
+ }
874
+ }
875
+ ],
876
+ "embeddedId": "433342",
877
+ "timestamp": "2022-05-07T08:04:14.786Z",
878
+ "id": "********************************************",
879
+ "lastUpdateReceived": "2022-05-07T08:04:14.786Z"
880
+ }
881
+ ]