@mp-consulting/homebridge-daikin-cloud 1.5.2 → 1.6.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 (211) hide show
  1. package/README.md +40 -27
  2. package/config.schema.json +66 -12
  3. package/dist/src/accessories/air-conditioning-accessory.js +1 -1
  4. package/dist/src/accessories/air-conditioning-accessory.js.map +1 -1
  5. package/dist/src/accessories/altherma-accessory.js +1 -1
  6. package/dist/src/accessories/altherma-accessory.js.map +1 -1
  7. package/dist/src/accessories/base-accessory.d.ts +5 -4
  8. package/dist/src/accessories/base-accessory.d.ts.map +1 -1
  9. package/dist/src/accessories/base-accessory.js +9 -10
  10. package/dist/src/accessories/base-accessory.js.map +1 -1
  11. package/dist/src/api/daikin-api.d.ts +22 -6
  12. package/dist/src/api/daikin-api.d.ts.map +1 -1
  13. package/dist/src/api/daikin-api.js +49 -23
  14. package/dist/src/api/daikin-api.js.map +1 -1
  15. package/dist/src/api/daikin-controller.d.ts +4 -48
  16. package/dist/src/api/daikin-controller.d.ts.map +1 -1
  17. package/dist/src/api/daikin-controller.js +14 -84
  18. package/dist/src/api/daikin-controller.js.map +1 -1
  19. package/dist/src/api/daikin-mobile-oauth.d.ts +11 -40
  20. package/dist/src/api/daikin-mobile-oauth.d.ts.map +1 -1
  21. package/dist/src/api/daikin-mobile-oauth.js +36 -160
  22. package/dist/src/api/daikin-mobile-oauth.js.map +1 -1
  23. package/dist/src/api/daikin-oauth.d.ts +10 -37
  24. package/dist/src/api/daikin-oauth.d.ts.map +1 -1
  25. package/dist/src/api/daikin-oauth.js +36 -166
  26. package/dist/src/api/daikin-oauth.js.map +1 -1
  27. package/dist/src/api/daikin-schemas.d.ts +20 -22
  28. package/dist/src/api/daikin-schemas.d.ts.map +1 -1
  29. package/dist/src/api/daikin-schemas.js +17 -49
  30. package/dist/src/api/daikin-schemas.js.map +1 -1
  31. package/dist/src/api/daikin-types.d.ts +11 -23
  32. package/dist/src/api/daikin-types.d.ts.map +1 -1
  33. package/dist/src/api/daikin-types.js.map +1 -1
  34. package/dist/src/api/daikin-websocket.d.ts +4 -5
  35. package/dist/src/api/daikin-websocket.d.ts.map +1 -1
  36. package/dist/src/api/daikin-websocket.js +62 -34
  37. package/dist/src/api/daikin-websocket.js.map +1 -1
  38. package/dist/src/api/http-defaults.d.ts +3 -2
  39. package/dist/src/api/http-defaults.d.ts.map +1 -1
  40. package/dist/src/api/http-defaults.js.map +1 -1
  41. package/dist/src/api/http-transport.d.ts +14 -2
  42. package/dist/src/api/http-transport.d.ts.map +1 -1
  43. package/dist/src/api/http-transport.js +32 -9
  44. package/dist/src/api/http-transport.js.map +1 -1
  45. package/dist/src/api/token-client.d.ts +82 -0
  46. package/dist/src/api/token-client.d.ts.map +1 -0
  47. package/dist/src/api/token-client.js +188 -0
  48. package/dist/src/api/token-client.js.map +1 -0
  49. package/dist/src/api/token-storage.d.ts +6 -0
  50. package/dist/src/api/token-storage.d.ts.map +1 -1
  51. package/dist/src/api/token-storage.js +27 -1
  52. package/dist/src/api/token-storage.js.map +1 -1
  53. package/dist/src/config/config-manager.d.ts +69 -125
  54. package/dist/src/config/config-manager.d.ts.map +1 -1
  55. package/dist/src/config/config-manager.js +288 -225
  56. package/dist/src/config/config-manager.js.map +1 -1
  57. package/dist/src/constants/api.constants.d.ts +6 -0
  58. package/dist/src/constants/api.constants.d.ts.map +1 -1
  59. package/dist/src/constants/api.constants.js +7 -1
  60. package/dist/src/constants/api.constants.js.map +1 -1
  61. package/dist/src/constants/auth.constants.d.ts +11 -0
  62. package/dist/src/constants/auth.constants.d.ts.map +1 -1
  63. package/dist/src/constants/auth.constants.js +12 -1
  64. package/dist/src/constants/auth.constants.js.map +1 -1
  65. package/dist/src/constants/device.constants.d.ts +1 -7
  66. package/dist/src/constants/device.constants.d.ts.map +1 -1
  67. package/dist/src/constants/device.constants.js +2 -11
  68. package/dist/src/constants/device.constants.js.map +1 -1
  69. package/dist/src/constants/time.constants.d.ts +0 -2
  70. package/dist/src/constants/time.constants.d.ts.map +1 -1
  71. package/dist/src/constants/time.constants.js +1 -3
  72. package/dist/src/constants/time.constants.js.map +1 -1
  73. package/dist/src/device/accessory-factory.d.ts +0 -5
  74. package/dist/src/device/accessory-factory.d.ts.map +1 -1
  75. package/dist/src/device/accessory-factory.js +0 -7
  76. package/dist/src/device/accessory-factory.js.map +1 -1
  77. package/dist/src/device/capability-detector.d.ts +9 -1
  78. package/dist/src/device/capability-detector.d.ts.map +1 -1
  79. package/dist/src/device/capability-detector.js +32 -28
  80. package/dist/src/device/capability-detector.js.map +1 -1
  81. package/dist/src/device/capability-docs.d.ts.map +1 -1
  82. package/dist/src/device/capability-docs.js +3 -0
  83. package/dist/src/device/capability-docs.js.map +1 -1
  84. package/dist/src/device/data-paths.d.ts +18 -0
  85. package/dist/src/device/data-paths.d.ts.map +1 -0
  86. package/dist/src/device/data-paths.js +20 -0
  87. package/dist/src/device/data-paths.js.map +1 -0
  88. package/dist/src/device/profiles/device-profile.d.ts +0 -5
  89. package/dist/src/device/profiles/device-profile.d.ts.map +1 -1
  90. package/dist/src/device/profiles/device-profile.js +0 -21
  91. package/dist/src/device/profiles/device-profile.js.map +1 -1
  92. package/dist/src/features/base-feature.d.ts +53 -9
  93. package/dist/src/features/base-feature.d.ts.map +1 -1
  94. package/dist/src/features/base-feature.js +93 -40
  95. package/dist/src/features/base-feature.js.map +1 -1
  96. package/dist/src/features/feature-manager.d.ts +27 -15
  97. package/dist/src/features/feature-manager.d.ts.map +1 -1
  98. package/dist/src/features/feature-manager.js +27 -24
  99. package/dist/src/features/feature-manager.js.map +1 -1
  100. package/dist/src/features/index.d.ts +1 -0
  101. package/dist/src/features/index.d.ts.map +1 -1
  102. package/dist/src/features/index.js +1 -0
  103. package/dist/src/features/index.js.map +1 -1
  104. package/dist/src/features/modes/auto-fan-mode.feature.d.ts +16 -10
  105. package/dist/src/features/modes/auto-fan-mode.feature.d.ts.map +1 -1
  106. package/dist/src/features/modes/auto-fan-mode.feature.js +16 -40
  107. package/dist/src/features/modes/auto-fan-mode.feature.js.map +1 -1
  108. package/dist/src/features/modes/dry-operation-mode.feature.d.ts +12 -9
  109. package/dist/src/features/modes/dry-operation-mode.feature.d.ts.map +1 -1
  110. package/dist/src/features/modes/dry-operation-mode.feature.js +11 -30
  111. package/dist/src/features/modes/dry-operation-mode.feature.js.map +1 -1
  112. package/dist/src/features/modes/econo-mode.feature.d.ts +12 -9
  113. package/dist/src/features/modes/econo-mode.feature.d.ts.map +1 -1
  114. package/dist/src/features/modes/econo-mode.feature.js +11 -31
  115. package/dist/src/features/modes/econo-mode.feature.js.map +1 -1
  116. package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts +12 -9
  117. package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts.map +1 -1
  118. package/dist/src/features/modes/fan-only-operation-mode.feature.js +11 -30
  119. package/dist/src/features/modes/fan-only-operation-mode.feature.js.map +1 -1
  120. package/dist/src/features/modes/firmware-update.feature.d.ts +7 -6
  121. package/dist/src/features/modes/firmware-update.feature.d.ts.map +1 -1
  122. package/dist/src/features/modes/firmware-update.feature.js +15 -22
  123. package/dist/src/features/modes/firmware-update.feature.js.map +1 -1
  124. package/dist/src/features/modes/holiday-mode.feature.d.ts +2 -1
  125. package/dist/src/features/modes/holiday-mode.feature.d.ts.map +1 -1
  126. package/dist/src/features/modes/holiday-mode.feature.js +5 -15
  127. package/dist/src/features/modes/holiday-mode.feature.js.map +1 -1
  128. package/dist/src/features/modes/indoor-silent-mode.feature.d.ts +15 -12
  129. package/dist/src/features/modes/indoor-silent-mode.feature.d.ts.map +1 -1
  130. package/dist/src/features/modes/indoor-silent-mode.feature.js +15 -39
  131. package/dist/src/features/modes/indoor-silent-mode.feature.js.map +1 -1
  132. package/dist/src/features/modes/oscillation-mode.feature.d.ts +5 -6
  133. package/dist/src/features/modes/oscillation-mode.feature.d.ts.map +1 -1
  134. package/dist/src/features/modes/oscillation-mode.feature.js +14 -36
  135. package/dist/src/features/modes/oscillation-mode.feature.js.map +1 -1
  136. package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts +12 -9
  137. package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts.map +1 -1
  138. package/dist/src/features/modes/outdoor-silent-mode.feature.js +11 -31
  139. package/dist/src/features/modes/outdoor-silent-mode.feature.js.map +1 -1
  140. package/dist/src/features/modes/powerful-mode.feature.d.ts +14 -10
  141. package/dist/src/features/modes/powerful-mode.feature.d.ts.map +1 -1
  142. package/dist/src/features/modes/powerful-mode.feature.js +13 -32
  143. package/dist/src/features/modes/powerful-mode.feature.js.map +1 -1
  144. package/dist/src/features/modes/streamer-mode.feature.d.ts +12 -9
  145. package/dist/src/features/modes/streamer-mode.feature.d.ts.map +1 -1
  146. package/dist/src/features/modes/streamer-mode.feature.js +11 -31
  147. package/dist/src/features/modes/streamer-mode.feature.js.map +1 -1
  148. package/dist/src/features/on-off-data-point-feature.d.ts +43 -0
  149. package/dist/src/features/on-off-data-point-feature.d.ts.map +1 -0
  150. package/dist/src/features/on-off-data-point-feature.js +49 -0
  151. package/dist/src/features/on-off-data-point-feature.js.map +1 -0
  152. package/dist/src/platform.d.ts +56 -9
  153. package/dist/src/platform.d.ts.map +1 -1
  154. package/dist/src/platform.js +248 -128
  155. package/dist/src/platform.js.map +1 -1
  156. package/dist/src/services/climate-control/fan-speed.d.ts +45 -0
  157. package/dist/src/services/climate-control/fan-speed.d.ts.map +1 -0
  158. package/dist/src/services/climate-control/fan-speed.js +104 -0
  159. package/dist/src/services/climate-control/fan-speed.js.map +1 -0
  160. package/dist/src/services/climate-control/separate-fan.service.d.ts +45 -0
  161. package/dist/src/services/climate-control/separate-fan.service.d.ts.map +1 -0
  162. package/dist/src/services/climate-control/separate-fan.service.js +82 -0
  163. package/dist/src/services/climate-control/separate-fan.service.js.map +1 -0
  164. package/dist/src/services/climate-control/setpoint-resolver.d.ts +68 -0
  165. package/dist/src/services/climate-control/setpoint-resolver.d.ts.map +1 -0
  166. package/dist/src/services/climate-control/setpoint-resolver.js +170 -0
  167. package/dist/src/services/climate-control/setpoint-resolver.js.map +1 -0
  168. package/dist/src/services/climate-control/swing-controller.d.ts +28 -0
  169. package/dist/src/services/climate-control/swing-controller.d.ts.map +1 -0
  170. package/dist/src/services/climate-control/swing-controller.js +65 -0
  171. package/dist/src/services/climate-control/swing-controller.js.map +1 -0
  172. package/dist/src/services/climate-control.service.d.ts +39 -48
  173. package/dist/src/services/climate-control.service.d.ts.map +1 -1
  174. package/dist/src/services/climate-control.service.js +223 -554
  175. package/dist/src/services/climate-control.service.js.map +1 -1
  176. package/dist/src/services/hot-water-tank.service.d.ts +17 -8
  177. package/dist/src/services/hot-water-tank.service.d.ts.map +1 -1
  178. package/dist/src/services/hot-water-tank.service.js +102 -157
  179. package/dist/src/services/hot-water-tank.service.js.map +1 -1
  180. package/dist/src/types/daikin-enums.d.ts +0 -5
  181. package/dist/src/types/daikin-enums.d.ts.map +1 -1
  182. package/dist/src/types/daikin-enums.js +1 -7
  183. package/dist/src/types/daikin-enums.js.map +1 -1
  184. package/dist/src/types/device-capabilities.d.ts +1 -0
  185. package/dist/src/types/device-capabilities.d.ts.map +1 -1
  186. package/dist/src/utils/errors.d.ts +9 -0
  187. package/dist/src/utils/errors.d.ts.map +1 -0
  188. package/dist/src/utils/errors.js +25 -0
  189. package/dist/src/utils/errors.js.map +1 -0
  190. package/dist/src/utils/hap-write.d.ts +22 -0
  191. package/dist/src/utils/hap-write.d.ts.map +1 -0
  192. package/dist/src/utils/hap-write.js +33 -0
  193. package/dist/src/utils/hap-write.js.map +1 -0
  194. package/dist/src/utils/sleep.d.ts +5 -0
  195. package/dist/src/utils/sleep.d.ts.map +1 -0
  196. package/dist/src/utils/sleep.js +10 -0
  197. package/dist/src/utils/sleep.js.map +1 -0
  198. package/homebridge-ui/README.md +25 -2
  199. package/homebridge-ui/public/index.html +19 -17
  200. package/homebridge-ui/public/script.js +95 -32
  201. package/homebridge-ui/public/styles.css +109 -0
  202. package/homebridge-ui/server.js +321 -125
  203. package/package.json +2 -3
  204. package/dist/src/utils/log-context.d.ts +0 -105
  205. package/dist/src/utils/log-context.d.ts.map +0 -1
  206. package/dist/src/utils/log-context.js +0 -206
  207. package/dist/src/utils/log-context.js.map +0 -1
  208. package/dist/src/utils/update-mapper.d.ts +0 -59
  209. package/dist/src/utils/update-mapper.d.ts.map +0 -1
  210. package/dist/src/utils/update-mapper.js +0 -192
  211. package/dist/src/utils/update-mapper.js.map +0 -1
@@ -5,7 +5,7 @@
5
5
  * Constants related to API communication, rate limiting, and retries.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.DAIKIN_WEBSOCKET_URL = exports.WRITE_INTER_REQUEST_DELAY_MS = exports.HTTP_REQUEST_TIMEOUT_MS = exports.RETRY_MAX_DELAY_MS = exports.RETRY_BASE_DELAY_MS = exports.MAX_RETRY_ATTEMPTS = exports.RATE_LIMIT_WARNING_THRESHOLD = exports.MAX_RATE_LIMIT_BLOCK_SECONDS = exports.DEFAULT_RETRY_AFTER_SECONDS = exports.HTTP_STATUS = void 0;
8
+ exports.RATE_LIMIT_STATUS_FILE = exports.DAIKIN_WEBSOCKET_URL = exports.WRITE_INTER_REQUEST_DELAY_MS = exports.HTTP_REQUEST_TIMEOUT_MS = exports.RETRY_MAX_DELAY_MS = exports.RETRY_BASE_DELAY_MS = exports.MAX_RETRY_ATTEMPTS = exports.RATE_LIMIT_WARNING_THRESHOLD = exports.MAX_RATE_LIMIT_BLOCK_SECONDS = exports.DEFAULT_RETRY_AFTER_SECONDS = exports.HTTP_STATUS = void 0;
9
9
  /** HTTP Status Codes */
10
10
  exports.HTTP_STATUS = {
11
11
  OK: 200,
@@ -38,4 +38,10 @@ exports.HTTP_REQUEST_TIMEOUT_MS = 30000;
38
38
  exports.WRITE_INTER_REQUEST_DELAY_MS = 400;
39
39
  /** Daikin WebSocket URL for real-time updates */
40
40
  exports.DAIKIN_WEBSOCKET_URL = 'wss://wsapi.onecta.daikineurope.com';
41
+ /**
42
+ * File (in the Homebridge storage path) where the plugin records the last
43
+ * rate-limit headers it saw, so the settings UI can show them without
44
+ * spending an API call. Contents: RateLimitStatusFile.
45
+ */
46
+ exports.RATE_LIMIT_STATUS_FILE = '.daikin-rate-limit.json';
41
47
  //# sourceMappingURL=api.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.constants.js","sourceRoot":"","sources":["../../../src/constants/api.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,wBAAwB;AACX,QAAA,WAAW,GAAG;IACzB,EAAE,EAAE,GAAG;IACP,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,oBAAoB,EAAE,GAAG;IACzB,iBAAiB,EAAE,GAAG;IACtB,WAAW,EAAE,GAAG;IAChB,mBAAmB,EAAE,GAAG;IACxB,eAAe,EAAE,GAAG;CACZ,CAAC;AAEX,4DAA4D;AAC/C,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C,8DAA8D;AACjD,QAAA,4BAA4B,GAAG,KAAK,CAAC;AAElD,kFAAkF;AACrE,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C,wDAAwD;AAC3C,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEpC,wDAAwD;AAC3C,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAExC,2DAA2D;AAC9C,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAExC,0CAA0C;AAC7B,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAE7C,6GAA6G;AAChG,QAAA,4BAA4B,GAAG,GAAG,CAAC;AAEhD,iDAAiD;AACpC,QAAA,oBAAoB,GAAG,qCAAqC,CAAC"}
1
+ {"version":3,"file":"api.constants.js","sourceRoot":"","sources":["../../../src/constants/api.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,wBAAwB;AACX,QAAA,WAAW,GAAG;IACzB,EAAE,EAAE,GAAG;IACP,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,oBAAoB,EAAE,GAAG;IACzB,iBAAiB,EAAE,GAAG;IACtB,WAAW,EAAE,GAAG;IAChB,mBAAmB,EAAE,GAAG;IACxB,eAAe,EAAE,GAAG;CACZ,CAAC;AAEX,4DAA4D;AAC/C,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C,8DAA8D;AACjD,QAAA,4BAA4B,GAAG,KAAK,CAAC;AAElD,kFAAkF;AACrE,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C,wDAAwD;AAC3C,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEpC,wDAAwD;AAC3C,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAExC,2DAA2D;AAC9C,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAExC,0CAA0C;AAC7B,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAE7C,6GAA6G;AAChG,QAAA,4BAA4B,GAAG,GAAG,CAAC;AAEhD,iDAAiD;AACpC,QAAA,oBAAoB,GAAG,qCAAqC,CAAC;AAE1E;;;;GAIG;AACU,QAAA,sBAAsB,GAAG,yBAAyB,CAAC"}
@@ -5,4 +5,15 @@
5
5
  */
6
6
  /** Buffer time before token expiry to trigger refresh (seconds) */
7
7
  export declare const TOKEN_EXPIRY_BUFFER_SECONDS = 10;
8
+ /** Token file names (stored in the Homebridge storage path), per auth mode */
9
+ export declare const TOKEN_FILES: {
10
+ readonly developer_portal: ".daikin-controller-cloud-tokenset";
11
+ readonly mobile_app: ".daikin-mobile-tokenset";
12
+ };
13
+ /** Default port for the Developer Portal OAuth callback server */
14
+ export declare const DEFAULT_CALLBACK_PORT = 8582;
15
+ /** Default bind address for the OAuth callback server */
16
+ export declare const DEFAULT_CALLBACK_BIND_ADDR = "0.0.0.0";
17
+ /** Lifetime of a pending Developer Portal authorization (milliseconds) */
18
+ export declare const PENDING_AUTH_TTL_MS: number;
8
19
  //# sourceMappingURL=auth.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/auth.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,KAAK,CAAC"}
1
+ {"version":3,"file":"auth.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/auth.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,8EAA8E;AAC9E,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAEX,kEAAkE;AAClE,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,yDAAyD;AACzD,eAAO,MAAM,0BAA0B,YAAY,CAAC;AAEpD,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,QAAiB,CAAC"}
@@ -5,7 +5,18 @@
5
5
  * Constants related to OAuth and authentication.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.TOKEN_EXPIRY_BUFFER_SECONDS = void 0;
8
+ exports.PENDING_AUTH_TTL_MS = exports.DEFAULT_CALLBACK_BIND_ADDR = exports.DEFAULT_CALLBACK_PORT = exports.TOKEN_FILES = exports.TOKEN_EXPIRY_BUFFER_SECONDS = void 0;
9
9
  /** Buffer time before token expiry to trigger refresh (seconds) */
10
10
  exports.TOKEN_EXPIRY_BUFFER_SECONDS = 10;
11
+ /** Token file names (stored in the Homebridge storage path), per auth mode */
12
+ exports.TOKEN_FILES = {
13
+ developer_portal: '.daikin-controller-cloud-tokenset',
14
+ mobile_app: '.daikin-mobile-tokenset',
15
+ };
16
+ /** Default port for the Developer Portal OAuth callback server */
17
+ exports.DEFAULT_CALLBACK_PORT = 8582;
18
+ /** Default bind address for the OAuth callback server */
19
+ exports.DEFAULT_CALLBACK_BIND_ADDR = '0.0.0.0';
20
+ /** Lifetime of a pending Developer Portal authorization (milliseconds) */
21
+ exports.PENDING_AUTH_TTL_MS = 10 * 60 * 1000;
11
22
  //# sourceMappingURL=auth.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.constants.js","sourceRoot":"","sources":["../../../src/constants/auth.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mEAAmE;AACtD,QAAA,2BAA2B,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"auth.constants.js","sourceRoot":"","sources":["../../../src/constants/auth.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mEAAmE;AACtD,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C,8EAA8E;AACjE,QAAA,WAAW,GAAG;IACzB,gBAAgB,EAAE,mCAAmC;IACrD,UAAU,EAAE,yBAAyB;CAC7B,CAAC;AAEX,kEAAkE;AACrD,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAE1C,yDAAyD;AAC5C,QAAA,0BAA0B,GAAG,SAAS,CAAC;AAEpD,0EAA0E;AAC7D,QAAA,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Device Constants
3
3
  *
4
- * Constants related to device characteristics, temperatures, and fan speeds.
4
+ * Constants related to device characteristics and temperatures.
5
5
  */
6
6
  /** Default room temperature when sensor data is unavailable (°C) */
7
7
  export declare const DEFAULT_ROOM_TEMPERATURE = 20;
@@ -19,10 +19,4 @@ export declare const COOLING_TEMP_CLAMP_MAX = 35;
19
19
  export declare const HEATING_TEMP_CLAMP_MIN = 0;
20
20
  /** Heating temperature clamp maximum (°C) */
21
21
  export declare const HEATING_TEMP_CLAMP_MAX = 25;
22
- /** Fan speed levels (1-5) to HomeKit percentage multiplier */
23
- export declare const FAN_SPEED_TO_PERCENTAGE_MULTIPLIER = 20;
24
- /** Minimum fan speed level */
25
- export declare const FAN_SPEED_MIN = 1;
26
- /** Maximum fan speed level */
27
- export declare const FAN_SPEED_MAX = 5;
28
22
  //# sourceMappingURL=device.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/device.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,iEAAiE;AACjE,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAEvD,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAMzC,8DAA8D;AAC9D,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,8BAA8B;AAC9B,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,8BAA8B;AAC9B,eAAO,MAAM,aAAa,IAAI,CAAC"}
1
+ {"version":3,"file":"device.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/device.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,iEAAiE;AACjE,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAEvD,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,KAAK,CAAC"}
@@ -2,10 +2,10 @@
2
2
  /**
3
3
  * Device Constants
4
4
  *
5
- * Constants related to device characteristics, temperatures, and fan speeds.
5
+ * Constants related to device characteristics and temperatures.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.FAN_SPEED_MAX = exports.FAN_SPEED_MIN = exports.FAN_SPEED_TO_PERCENTAGE_MULTIPLIER = exports.HEATING_TEMP_CLAMP_MAX = exports.HEATING_TEMP_CLAMP_MIN = exports.COOLING_TEMP_CLAMP_MAX = exports.HOMEKIT_TEMP_MAX = exports.HOMEKIT_TEMP_MIN = exports.DEFAULT_HOT_WATER_TARGET_TEMPERATURE = exports.DEFAULT_HOT_WATER_TEMPERATURE = exports.DEFAULT_ROOM_TEMPERATURE = void 0;
8
+ exports.HEATING_TEMP_CLAMP_MAX = exports.HEATING_TEMP_CLAMP_MIN = exports.COOLING_TEMP_CLAMP_MAX = exports.HOMEKIT_TEMP_MAX = exports.HOMEKIT_TEMP_MIN = exports.DEFAULT_HOT_WATER_TARGET_TEMPERATURE = exports.DEFAULT_HOT_WATER_TEMPERATURE = exports.DEFAULT_ROOM_TEMPERATURE = void 0;
9
9
  // =============================================================================
10
10
  // Temperature Constants
11
11
  // =============================================================================
@@ -25,13 +25,4 @@ exports.COOLING_TEMP_CLAMP_MAX = 35;
25
25
  exports.HEATING_TEMP_CLAMP_MIN = 0;
26
26
  /** Heating temperature clamp maximum (°C) */
27
27
  exports.HEATING_TEMP_CLAMP_MAX = 25;
28
- // =============================================================================
29
- // Fan Speed Constants
30
- // =============================================================================
31
- /** Fan speed levels (1-5) to HomeKit percentage multiplier */
32
- exports.FAN_SPEED_TO_PERCENTAGE_MULTIPLIER = 20;
33
- /** Minimum fan speed level */
34
- exports.FAN_SPEED_MIN = 1;
35
- /** Maximum fan speed level */
36
- exports.FAN_SPEED_MAX = 5;
37
28
  //# sourceMappingURL=device.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.constants.js","sourceRoot":"","sources":["../../../src/constants/device.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,oEAAoE;AACvD,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C,yEAAyE;AAC5D,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEhD,iEAAiE;AACpD,QAAA,oCAAoC,GAAG,EAAE,CAAC;AAEvD,sDAAsD;AACzC,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,sDAAsD;AACzC,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,6CAA6C;AAChC,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,6CAA6C;AAChC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAExC,6CAA6C;AAChC,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,8DAA8D;AACjD,QAAA,kCAAkC,GAAG,EAAE,CAAC;AAErD,8BAA8B;AACjB,QAAA,aAAa,GAAG,CAAC,CAAC;AAE/B,8BAA8B;AACjB,QAAA,aAAa,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"device.constants.js","sourceRoot":"","sources":["../../../src/constants/device.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,oEAAoE;AACvD,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C,yEAAyE;AAC5D,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEhD,iEAAiE;AACpD,QAAA,oCAAoC,GAAG,EAAE,CAAC;AAEvD,sDAAsD;AACzC,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,sDAAsD;AACzC,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,6CAA6C;AAChC,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,6CAA6C;AAChC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAExC,6CAA6C;AAChC,QAAA,sBAAsB,GAAG,EAAE,CAAC"}
@@ -5,8 +5,6 @@
5
5
  */
6
6
  export declare const ONE_SECOND_MS = 1000;
7
7
  export declare const ONE_MINUTE_MS: number;
8
- export declare const ONE_HOUR_MS: number;
9
- export declare const ONE_DAY_MS: number;
10
8
  /** Milliseconds per second for timestamp conversions */
11
9
  export declare const MS_PER_SECOND = 1000;
12
10
  /** Default polling interval in minutes */
@@ -1 +1 @@
1
- {"version":3,"file":"time.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/time.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,aAAa,QAAqB,CAAC;AAChD,eAAO,MAAM,WAAW,QAAqB,CAAC;AAC9C,eAAO,MAAM,UAAU,QAAmB,CAAC;AAE3C,wDAAwD;AACxD,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,0CAA0C;AAC1C,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,QAAqB,CAAC"}
1
+ {"version":3,"file":"time.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/time.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,aAAa,QAAqB,CAAC;AAEhD,wDAAwD;AACxD,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,0CAA0C;AAC1C,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,QAAqB,CAAC"}
@@ -5,11 +5,9 @@
5
5
  * All time-related constants for consistency across the application.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.DEFAULT_FORCE_UPDATE_DELAY_MS = exports.DEFAULT_UPDATE_INTERVAL_MINUTES = exports.MS_PER_SECOND = exports.ONE_DAY_MS = exports.ONE_HOUR_MS = exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS = void 0;
8
+ exports.DEFAULT_FORCE_UPDATE_DELAY_MS = exports.DEFAULT_UPDATE_INTERVAL_MINUTES = exports.MS_PER_SECOND = exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS = void 0;
9
9
  exports.ONE_SECOND_MS = 1000;
10
10
  exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS * 60;
11
- exports.ONE_HOUR_MS = exports.ONE_MINUTE_MS * 60;
12
- exports.ONE_DAY_MS = exports.ONE_HOUR_MS * 24;
13
11
  /** Milliseconds per second for timestamp conversions */
14
12
  exports.MS_PER_SECOND = 1000;
15
13
  /** Default polling interval in minutes */
@@ -1 +1 @@
1
- {"version":3,"file":"time.constants.js","sourceRoot":"","sources":["../../../src/constants/time.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,aAAa,GAAG,qBAAa,GAAG,EAAE,CAAC;AACnC,QAAA,WAAW,GAAG,qBAAa,GAAG,EAAE,CAAC;AACjC,QAAA,UAAU,GAAG,mBAAW,GAAG,EAAE,CAAC;AAE3C,wDAAwD;AAC3C,QAAA,aAAa,GAAG,IAAI,CAAC;AAElC,0CAA0C;AAC7B,QAAA,+BAA+B,GAAG,EAAE,CAAC;AAElD,wDAAwD;AAC3C,QAAA,6BAA6B,GAAG,qBAAa,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"time.constants.js","sourceRoot":"","sources":["../../../src/constants/time.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,aAAa,GAAG,qBAAa,GAAG,EAAE,CAAC;AAEhD,wDAAwD;AAC3C,QAAA,aAAa,GAAG,IAAI,CAAC;AAElC,0CAA0C;AAC7B,QAAA,+BAA+B,GAAG,EAAE,CAAC;AAElD,wDAAwD;AAC3C,QAAA,6BAA6B,GAAG,qBAAa,GAAG,EAAE,CAAC"}
@@ -27,10 +27,5 @@ export declare class AccessoryFactory {
27
27
  * Uses the device profile to determine which accessory class to instantiate.
28
28
  */
29
29
  createAccessory(platformAccessory: PlatformAccessory<DaikinCloudAccessoryContext>): AccessoryFactoryResult;
30
- /**
31
- * Get the profile for a device without creating an accessory.
32
- * Useful for logging and diagnostics.
33
- */
34
- getDeviceProfile(platformAccessory: PlatformAccessory<DaikinCloudAccessoryContext>): DeviceProfile;
35
30
  }
36
31
  //# sourceMappingURL=accessory-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessory-factory.d.ts","sourceRoot":"","sources":["../../../src/device/accessory-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAU,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,QAAQ,EAAE,mBAAmB;IAKzC;;;SAGK;IACL,eAAe,CACb,iBAAiB,EAAE,iBAAiB,CAAC,2BAA2B,CAAC,GAChE,sBAAsB;IAmCzB;;;SAGK;IACL,gBAAgB,CACd,iBAAiB,EAAE,iBAAiB,CAAC,2BAA2B,CAAC,GAChE,aAAa;CAGjB"}
1
+ {"version":3,"file":"accessory-factory.d.ts","sourceRoot":"","sources":["../../../src/device/accessory-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAU,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,QAAQ,EAAE,mBAAmB;IAKzC;;;SAGK;IACL,eAAe,CACb,iBAAiB,EAAE,iBAAiB,CAAC,2BAA2B,CAAC,GAChE,sBAAsB;CAkC1B"}
@@ -49,13 +49,6 @@ class AccessoryFactory {
49
49
  }
50
50
  return { accessory, profile };
51
51
  }
52
- /**
53
- * Get the profile for a device without creating an accessory.
54
- * Useful for logging and diagnostics.
55
- */
56
- getDeviceProfile(platformAccessory) {
57
- return (0, device_profile_1.matchDeviceProfile)(platformAccessory.context.device);
58
- }
59
52
  }
60
53
  exports.AccessoryFactory = AccessoryFactory;
61
54
  //# sourceMappingURL=accessory-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessory-factory.js","sourceRoot":"","sources":["../../../src/device/accessory-factory.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH,8DAA2E;AAE3E,gDAA6E;AAU7E;;GAEG;AACH,MAAa,gBAAgB;IACV,QAAQ,CAAsB;IAC9B,GAAG,CAAS;IAE7B,YAAY,QAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED;;;SAGK;IACL,eAAe,CACb,iBAAiE;QAEjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,OAAO,GAAG,IAAA,mCAAkB,EAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,0DAA0D,OAAO,CAAC,IAAI,IAAI;YACpE,UAAU,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,IAAI;YACjD,iBAAiB,OAAO,CAAC,WAAW,EAAE,CAC7C,CAAC;QAEF,IAAI,SAAwB,CAAC;QAE7B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,2BAAU,CAAC,QAAQ;gBACtB,SAAS,GAAG,IAAI,+BAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM;YAER,KAAK,2BAAU,CAAC,gBAAgB,CAAC;YACjC,KAAK,2BAAU,CAAC,OAAO,CAAC;YACxB;gBACE,kEAAkE;gBAClE,IAAI,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;oBAC5C,SAAS,GAAG,IAAI,sCAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,IAAI;wBACvD,iDAAiD,CAC9D,CAAC;gBACJ,CAAC;gBACD,MAAM;QACV,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAChC,CAAC;IAED;;;SAGK;IACL,gBAAgB,CACd,iBAAiE;QAEjE,OAAO,IAAA,mCAAkB,EAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;CACF;AA3DD,4CA2DC"}
1
+ {"version":3,"file":"accessory-factory.js","sourceRoot":"","sources":["../../../src/device/accessory-factory.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH,8DAA2E;AAE3E,gDAA6E;AAU7E;;GAEG;AACH,MAAa,gBAAgB;IACV,QAAQ,CAAsB;IAC9B,GAAG,CAAS;IAE7B,YAAY,QAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED;;;SAGK;IACL,eAAe,CACb,iBAAiE;QAEjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,OAAO,GAAG,IAAA,mCAAkB,EAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,0DAA0D,OAAO,CAAC,IAAI,IAAI;YACpE,UAAU,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,IAAI;YACjD,iBAAiB,OAAO,CAAC,WAAW,EAAE,CAC7C,CAAC;QAEF,IAAI,SAAwB,CAAC;QAE7B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,2BAAU,CAAC,QAAQ;gBACtB,SAAS,GAAG,IAAI,+BAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM;YAER,KAAK,2BAAU,CAAC,gBAAgB,CAAC;YACjC,KAAK,2BAAU,CAAC,OAAO,CAAC;YACxB;gBACE,kEAAkE;gBAClE,IAAI,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;oBAC5C,SAAS,GAAG,IAAI,sCAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,IAAI;wBACvD,iDAAiD,CAC9D,CAAC;gBACJ,CAAC;gBACD,MAAM;QACV,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAChC,CAAC;CACF;AAjDD,4CAiDC"}
@@ -2,7 +2,7 @@
2
2
  * Device Capability Detector
3
3
  *
4
4
  * Centralized service for detecting device capabilities once and caching the results.
5
- * This replaces the scattered hasXxxFeature() methods in service classes.
5
+ * FeatureManager passes the result to every feature, so isSupported() reads one source.
6
6
  */
7
7
  import type { DaikinCloudDevice } from '../api';
8
8
  import type { DeviceCapabilities, DeviceTemperatureCapabilities } from '../types';
@@ -26,11 +26,19 @@ export declare class DeviceCapabilityDetector {
26
26
  clearCache(): void;
27
27
  private detectCapabilities;
28
28
  private hasManagementPoint;
29
+ /**
30
+ * getData() returns `{ value: undefined }` when a data point is missing, so the
31
+ * wrapper itself is always truthy — support means the inner value is set.
32
+ */
33
+ private hasValue;
29
34
  private hasFeature;
30
35
  private hasSwingMode;
36
+ private fanSpeedModes;
31
37
  private detectIndoorSilentMode;
38
+ /** Only meaningful when the device can toggle between 'auto' and a manual ('fixed') speed. */
32
39
  private detectAutoFanMode;
33
40
  private detectFanControl;
41
+ private detectHolidayMode;
34
42
  private getCurrentOperationMode;
35
43
  private detectTemperatureCapabilities;
36
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"capability-detector.d.ts","sourceRoot":"","sources":["../../../src/device/capability-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EACV,kBAAkB,EAClB,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAMlD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,6BAA6B,CAA8C;gBAEvE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM;IAKhE;;SAEK;IACL,eAAe,IAAI,kBAAkB;IASrC;;SAEK;IACL,0BAA0B,IAAI,6BAA6B;IAS3D;;SAEK;IACL,UAAU,IAAI,IAAI;IAKlB,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,6BAA6B;CAsCtC"}
1
+ {"version":3,"file":"capability-detector.d.ts","sourceRoot":"","sources":["../../../src/device/capability-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,KAAK,EACV,kBAAkB,EAClB,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAMlD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,6BAA6B,CAA8C;gBAEvE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM;IAKhE;;SAEK;IACL,eAAe,IAAI,kBAAkB;IASrC;;SAEK;IACL,0BAA0B,IAAI,6BAA6B;IAS3D;;SAEK;IACL,UAAU,IAAI,IAAI;IAKlB,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,kBAAkB;IAM1B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,sBAAsB;IAI9B,8FAA8F;IAC9F,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,6BAA6B;CAsCtC"}
@@ -3,10 +3,11 @@
3
3
  * Device Capability Detector
4
4
  *
5
5
  * Centralized service for detecting device capabilities once and caching the results.
6
- * This replaces the scattered hasXxxFeature() methods in service classes.
6
+ * FeatureManager passes the result to every feature, so isSupported() reads one source.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.DeviceCapabilityDetector = void 0;
10
+ const data_paths_1 = require("./data-paths");
10
11
  const types_1 = require("../types");
11
12
  class DeviceCapabilityDetector {
12
13
  device;
@@ -46,7 +47,7 @@ class DeviceCapabilityDetector {
46
47
  }
47
48
  detectCapabilities() {
48
49
  const operationModeData = this.device.getData(this.managementPointId, 'operationMode', undefined);
49
- const supportedModes = (operationModeData?.values || []);
50
+ const supportedModes = (operationModeData.values || []);
50
51
  return {
51
52
  // Management points
52
53
  hasClimateControl: this.hasManagementPoint('climateControl'),
@@ -62,6 +63,7 @@ class DeviceCapabilityDetector {
62
63
  hasSwingModeVertical: this.hasSwingMode('vertical'),
63
64
  hasSwingModeHorizontal: this.hasSwingMode('horizontal'),
64
65
  hasFanControl: this.detectFanControl(),
66
+ hasHolidayMode: this.detectHolidayMode(),
65
67
  // Operation modes
66
68
  supportedOperationModes: supportedModes,
67
69
  hasDryOperationMode: supportedModes.includes(types_1.DaikinOperationModes.DRY),
@@ -78,46 +80,48 @@ class DeviceCapabilityDetector {
78
80
  hasManagementPoint(type) {
79
81
  return this.device.desc.managementPoints.some((mp) => mp.managementPointType === type);
80
82
  }
83
+ /**
84
+ * getData() returns `{ value: undefined }` when a data point is missing, so the
85
+ * wrapper itself is always truthy — support means the inner value is set.
86
+ */
87
+ hasValue(dataPoint, path) {
88
+ return this.device.getData(this.managementPointId, dataPoint, path).value !== undefined;
89
+ }
81
90
  hasFeature(feature) {
82
- return Boolean(this.device.getData(this.managementPointId, feature, undefined));
91
+ return this.hasValue(feature);
83
92
  }
84
93
  hasSwingMode(direction) {
85
- const operationMode = this.getCurrentOperationMode();
86
- return Boolean(this.device.getData(this.managementPointId, 'fanControl', `/operationModes/${operationMode}/fanDirection/${direction}/currentMode`));
94
+ return this.hasValue('fanControl', data_paths_1.DataPaths.fanDirection(this.getCurrentOperationMode(), direction));
95
+ }
96
+ fanSpeedModes() {
97
+ const fanSpeedData = this.device.getData(this.managementPointId, 'fanControl', data_paths_1.DataPaths.fanSpeedCurrentMode(this.getCurrentOperationMode()));
98
+ return fanSpeedData.values || [];
87
99
  }
88
100
  detectIndoorSilentMode() {
89
- const operationMode = this.getCurrentOperationMode();
90
- const fanSpeedData = this.device.getData(this.managementPointId, 'fanControl', `/operationModes/${operationMode}/fanSpeed/currentMode`);
91
- if (!fanSpeedData) {
92
- return false;
93
- }
94
- const fanSpeedValues = (fanSpeedData.values || []);
95
- return fanSpeedValues.includes(types_1.DaikinFanSpeedModes.QUIET);
101
+ return this.fanSpeedModes().includes(types_1.DaikinFanSpeedModes.QUIET);
96
102
  }
103
+ /** Only meaningful when the device can toggle between 'auto' and a manual ('fixed') speed. */
97
104
  detectAutoFanMode() {
98
- const operationMode = this.getCurrentOperationMode();
99
- const fanSpeedData = this.device.getData(this.managementPointId, 'fanControl', `/operationModes/${operationMode}/fanSpeed/currentMode`);
100
- if (!fanSpeedData) {
101
- return false;
102
- }
103
- const fanSpeedValues = (fanSpeedData.values || []);
104
- return (fanSpeedValues.includes(types_1.DaikinFanSpeedModes.AUTO) &&
105
- fanSpeedValues.includes(types_1.DaikinFanSpeedModes.FIXED));
105
+ const fanSpeedValues = this.fanSpeedModes();
106
+ return fanSpeedValues.includes(types_1.DaikinFanSpeedModes.AUTO) && fanSpeedValues.includes(types_1.DaikinFanSpeedModes.FIXED);
106
107
  }
107
108
  detectFanControl() {
108
- const operationMode = this.getCurrentOperationMode();
109
- return Boolean(this.device.getData(this.managementPointId, 'fanControl', `/operationModes/${operationMode}/fanSpeed/modes/fixed`));
109
+ return this.hasValue('fanControl', data_paths_1.DataPaths.fanSpeedFixed(this.getCurrentOperationMode()));
110
+ }
111
+ detectHolidayMode() {
112
+ const holidayMode = this.device.getData(this.managementPointId, 'holidayMode', undefined).value;
113
+ return holidayMode?.enabled !== undefined;
110
114
  }
111
115
  getCurrentOperationMode() {
112
- const operationModeData = this.device.getData(this.managementPointId, 'operationMode', undefined);
113
- return operationModeData?.value || 'auto';
116
+ const operationMode = this.device.getData(this.managementPointId, 'operationMode', undefined).value;
117
+ return typeof operationMode === 'string' && operationMode ? operationMode : types_1.DaikinOperationModes.AUTO;
114
118
  }
115
119
  detectTemperatureCapabilities() {
116
120
  const capabilities = {};
117
121
  const modes = ['cooling', 'heating', 'auto'];
118
122
  for (const mode of modes) {
119
- const data = this.device.getData(this.managementPointId, 'temperatureControl', `/operationModes/${mode}/setpoints/roomTemperature`);
120
- if (data && data.minValue !== undefined && data.maxValue !== undefined && data.stepValue !== undefined) {
123
+ const data = this.device.getData(this.managementPointId, 'temperatureControl', data_paths_1.DataPaths.setpoint(mode, 'roomTemperature'));
124
+ if (data.minValue !== undefined && data.maxValue !== undefined && data.stepValue !== undefined) {
121
125
  capabilities[mode] = {
122
126
  minValue: data.minValue,
123
127
  maxValue: data.maxValue,
@@ -126,8 +130,8 @@ class DeviceCapabilityDetector {
126
130
  }
127
131
  }
128
132
  // Check for domestic hot water temperature
129
- const hotWaterData = this.device.getData(this.managementPointId, 'temperatureControl', '/operationModes/heating/setpoints/domesticHotWaterTemperature');
130
- if (hotWaterData && hotWaterData.minValue !== undefined && hotWaterData.maxValue !== undefined && hotWaterData.stepValue !== undefined) {
133
+ const hotWaterData = this.device.getData(this.managementPointId, 'temperatureControl', data_paths_1.DataPaths.setpoint('heating', 'domesticHotWaterTemperature'));
134
+ if (hotWaterData.minValue !== undefined && hotWaterData.maxValue !== undefined && hotWaterData.stepValue !== undefined) {
131
135
  capabilities.domesticHotWater = {
132
136
  minValue: hotWaterData.minValue,
133
137
  maxValue: hotWaterData.maxValue,
@@ -1 +1 @@
1
- {"version":3,"file":"capability-detector.js","sourceRoot":"","sources":["../../../src/device/capability-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-detector.js","sourceRoot":"","sources":["../../../src/device/capability-detector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"capability-docs.d.ts","sourceRoot":"","sources":["../../../src/device/capability-docs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,kBAAkB,GAAG,MAAM,CAmC7E"}
1
+ {"version":3,"file":"capability-docs.d.ts","sourceRoot":"","sources":["../../../src/device/capability-docs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,kBAAkB,GAAG,MAAM,CAsC7E"}
@@ -42,6 +42,9 @@ function getCapabilitySummary(capabilities) {
42
42
  if (capabilities.hasFanOnlyOperationMode) {
43
43
  features.push('fan-only');
44
44
  }
45
+ if (capabilities.hasHolidayMode) {
46
+ features.push('holiday');
47
+ }
45
48
  return features.length > 0 ? features.join(', ') : 'basic';
46
49
  }
47
50
  //# sourceMappingURL=capability-docs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-docs.js","sourceRoot":"","sources":["../../../src/device/capability-docs.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAOH,oDAmCC;AAtCD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,YAAgC;IACnE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,oBAAoB,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,YAAY,CAAC,oBAAoB,IAAI,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"capability-docs.js","sourceRoot":"","sources":["../../../src/device/capability-docs.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAOH,oDAsCC;AAzCD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,YAAgC;IACnE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,oBAAoB,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,YAAY,CAAC,oBAAoB,IAAI,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Daikin data-point paths
3
+ *
4
+ * Builders for the `/operationModes/<mode>/...` paths used with
5
+ * DaikinCloudDevice.getData / setData, so the string shapes live in one place.
6
+ */
7
+ export type FanAxis = 'vertical' | 'horizontal';
8
+ export declare const DataPaths: {
9
+ /** fanControl: the active fan speed mode ('auto' | 'quiet' | 'fixed') for an operation mode. */
10
+ readonly fanSpeedCurrentMode: (operationMode: string) => string;
11
+ /** fanControl: the fixed fan speed value (1..maxValue) for an operation mode. */
12
+ readonly fanSpeedFixed: (operationMode: string) => string;
13
+ /** fanControl: the swing mode of one fan axis for an operation mode. */
14
+ readonly fanDirection: (operationMode: string, axis: FanAxis) => string;
15
+ /** temperatureControl: a setpoint for an operation mode. */
16
+ readonly setpoint: (operationMode: string, setpoint: string) => string;
17
+ };
18
+ //# sourceMappingURL=data-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-paths.d.ts","sourceRoot":"","sources":["../../../src/device/data-paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;AAEhD,eAAO,MAAM,SAAS;IACpB,gGAAgG;kDAC3D,MAAM,KAAG,MAAM;IAGpD,iFAAiF;4CAClD,MAAM,KAAG,MAAM;IAG9C,wEAAwE;2CAC1C,MAAM,QAAQ,OAAO,KAAG,MAAM;IAG5D,4DAA4D;uCAClC,MAAM,YAAY,MAAM,KAAG,MAAM;CAEnD,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /**
3
+ * Daikin data-point paths
4
+ *
5
+ * Builders for the `/operationModes/<mode>/...` paths used with
6
+ * DaikinCloudDevice.getData / setData, so the string shapes live in one place.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DataPaths = void 0;
10
+ exports.DataPaths = {
11
+ /** fanControl: the active fan speed mode ('auto' | 'quiet' | 'fixed') for an operation mode. */
12
+ fanSpeedCurrentMode: (operationMode) => `/operationModes/${operationMode}/fanSpeed/currentMode`,
13
+ /** fanControl: the fixed fan speed value (1..maxValue) for an operation mode. */
14
+ fanSpeedFixed: (operationMode) => `/operationModes/${operationMode}/fanSpeed/modes/fixed`,
15
+ /** fanControl: the swing mode of one fan axis for an operation mode. */
16
+ fanDirection: (operationMode, axis) => `/operationModes/${operationMode}/fanDirection/${axis}/currentMode`,
17
+ /** temperatureControl: a setpoint for an operation mode. */
18
+ setpoint: (operationMode, setpoint) => `/operationModes/${operationMode}/setpoints/${setpoint}`,
19
+ };
20
+ //# sourceMappingURL=data-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-paths.js","sourceRoot":"","sources":["../../../src/device/data-paths.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIU,QAAA,SAAS,GAAG;IACvB,gGAAgG;IAChG,mBAAmB,EAAE,CAAC,aAAqB,EAAU,EAAE,CACrD,mBAAmB,aAAa,uBAAuB;IAEzD,iFAAiF;IACjF,aAAa,EAAE,CAAC,aAAqB,EAAU,EAAE,CAC/C,mBAAmB,aAAa,uBAAuB;IAEzD,wEAAwE;IACxE,YAAY,EAAE,CAAC,aAAqB,EAAE,IAAa,EAAU,EAAE,CAC7D,mBAAmB,aAAa,iBAAiB,IAAI,cAAc;IAErE,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,aAAqB,EAAE,QAAgB,EAAU,EAAE,CAC5D,mBAAmB,aAAa,cAAc,QAAQ,EAAE;CAClD,CAAC"}
@@ -23,7 +23,6 @@ export interface DeviceProfile {
23
23
  climateControl: boolean;
24
24
  domesticHotWaterTank: boolean;
25
25
  };
26
- typicalFeatures: string[];
27
26
  matcher: (device: DaikinCloudDevice) => boolean;
28
27
  }
29
28
  /**
@@ -35,8 +34,4 @@ export declare const DEVICE_PROFILES: DeviceProfile[];
35
34
  * Returns the first matching profile or an unknown profile as fallback.
36
35
  */
37
36
  export declare function matchDeviceProfile(device: DaikinCloudDevice): DeviceProfile;
38
- /**
39
- * Get device profile by type
40
- */
41
- export declare function getProfileByType(type: DeviceType): DeviceProfile | undefined;
42
37
  //# sourceMappingURL=device-profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-profile.d.ts","sourceRoot":"","sources":["../../../../src/device/profiles/device-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD;;GAEG;AACH,oBAAY,UAAU;IAClB,gBAAgB,qBAAqB;IACrC,QAAQ,aAAa;IACrB,OAAO,YAAY;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE;QACd,cAAc,EAAE,OAAO,CAAC;QACxB,oBAAoB,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC;CACnD;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EA8C1C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAS3E;AA2BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAE5E"}
1
+ {"version":3,"file":"device-profile.d.ts","sourceRoot":"","sources":["../../../../src/device/profiles/device-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD;;GAEG;AACH,oBAAY,UAAU;IAClB,gBAAgB,qBAAqB;IACrC,QAAQ,aAAa;IACrB,OAAO,YAAY;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE;QACd,cAAc,EAAE,OAAO,CAAC;QACxB,oBAAoB,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,OAAO,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC;CACnD;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EAiC1C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAS3E"}
@@ -8,7 +8,6 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.DEVICE_PROFILES = exports.DeviceType = void 0;
10
10
  exports.matchDeviceProfile = matchDeviceProfile;
11
- exports.getProfileByType = getProfileByType;
12
11
  /**
13
12
  * Supported device types
14
13
  */
@@ -29,11 +28,6 @@ exports.DEVICE_PROFILES = [
29
28
  climateControl: true,
30
29
  domesticHotWaterTank: true,
31
30
  },
32
- typicalFeatures: [
33
- 'powerfulMode',
34
- 'controlMode',
35
- 'setpointMode',
36
- ],
37
31
  matcher: (device) => {
38
32
  const deviceModel = device.getDescription().deviceModel;
39
33
  return deviceModel === 'Altherma';
@@ -46,14 +40,6 @@ exports.DEVICE_PROFILES = [
46
40
  climateControl: true,
47
41
  domesticHotWaterTank: false,
48
42
  },
49
- typicalFeatures: [
50
- 'powerfulMode',
51
- 'econoMode',
52
- 'streamerMode',
53
- 'outdoorSilentMode',
54
- 'fanControl',
55
- 'swingMode',
56
- ],
57
43
  matcher: (device) => {
58
44
  const deviceModel = device.getDescription().deviceModel;
59
45
  // Match devices that are not Altherma and have climate control
@@ -90,14 +76,7 @@ function createUnknownProfile(device) {
90
76
  climateControl: hasClimateControl,
91
77
  domesticHotWaterTank: hasDomesticHotWaterTank,
92
78
  },
93
- typicalFeatures: [],
94
79
  matcher: () => true,
95
80
  };
96
81
  }
97
- /**
98
- * Get device profile by type
99
- */
100
- function getProfileByType(type) {
101
- return exports.DEVICE_PROFILES.find(profile => profile.type === type);
102
- }
103
82
  //# sourceMappingURL=device-profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-profile.js","sourceRoot":"","sources":["../../../../src/device/profiles/device-profile.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkFH,gDASC;AA8BD,4CAEC;AAvHD;;GAEG;AACH,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,mDAAqC,CAAA;IACrC,mCAAqB,CAAA;IACrB,iCAAmB,CAAA;AACvB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAgBD;;GAEG;AACU,QAAA,eAAe,GAAoB;IAC9C;QACE,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,WAAW,EAAE,2BAA2B;QACxC,gBAAgB,EAAE;YAChB,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,eAAe,EAAE;YACf,cAAc;YACd,aAAa;YACb,cAAc;SACf;QACD,OAAO,EAAE,CAAC,MAAyB,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC;YACxD,OAAO,WAAW,KAAK,UAAU,CAAC;QACpC,CAAC;KACF;IACD;QACE,IAAI,EAAE,UAAU,CAAC,gBAAgB;QACjC,WAAW,EAAE,yBAAyB;QACtC,gBAAgB,EAAE;YAChB,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,KAAK;SAC5B;QACD,eAAe,EAAE;YACf,cAAc;YACd,WAAW;YACX,cAAc;YACd,mBAAmB;YACnB,YAAY;YACZ,WAAW;SACZ;QACD,OAAO,EAAE,CAAC,MAAyB,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC;YACxD,+DAA+D;YAC/D,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,uDAAuD;YACvD,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACtC,CAAC,EAAmC,EAAE,EAAE,CACtC,EAAE,CAAC,mBAAmB,KAAK,gBAAgB,CAC9C,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,MAAyB;IAC1D,MAAM,OAAO,GAAG,uBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,qCAAqC;IACrC,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAyB;IACrD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzD,CAAC,EAAmC,EAAE,EAAE,CACtC,EAAE,CAAC,mBAAmB,KAAK,gBAAgB,CAC9C,CAAC;IACF,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC/D,CAAC,EAAmC,EAAE,EAAE,CACtC,EAAE,CAAC,mBAAmB,KAAK,sBAAsB,CACpD,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,OAAO;QACxB,WAAW,EAAE,eAAe;QAC5B,gBAAgB,EAAE;YAChB,cAAc,EAAE,iBAAiB;YACjC,oBAAoB,EAAE,uBAAuB;SAC9C;QACD,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAgB;IAC/C,OAAO,uBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"device-profile.js","sourceRoot":"","sources":["../../../../src/device/profiles/device-profile.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAoEH,gDASC;AAzED;;GAEG;AACH,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,mDAAqC,CAAA;IACrC,mCAAqB,CAAA;IACrB,iCAAmB,CAAA;AACvB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAeD;;GAEG;AACU,QAAA,eAAe,GAAoB;IAC9C;QACE,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,WAAW,EAAE,2BAA2B;QACxC,gBAAgB,EAAE;YAChB,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,OAAO,EAAE,CAAC,MAAyB,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC;YACxD,OAAO,WAAW,KAAK,UAAU,CAAC;QACpC,CAAC;KACF;IACD;QACE,IAAI,EAAE,UAAU,CAAC,gBAAgB;QACjC,WAAW,EAAE,yBAAyB;QACtC,gBAAgB,EAAE;YAChB,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE,CAAC,MAAyB,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC;YACxD,+DAA+D;YAC/D,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,uDAAuD;YACvD,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACtC,CAAC,EAAmC,EAAE,EAAE,CACtC,EAAE,CAAC,mBAAmB,KAAK,gBAAgB,CAC9C,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,MAAyB;IAC1D,MAAM,OAAO,GAAG,uBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,qCAAqC;IACrC,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAyB;IACrD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzD,CAAC,EAAmC,EAAE,EAAE,CACtC,EAAE,CAAC,mBAAmB,KAAK,gBAAgB,CAC9C,CAAC;IACF,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC/D,CAAC,EAAmC,EAAE,EAAE,CACtC,EAAE,CAAC,mBAAmB,KAAK,sBAAsB,CACpD,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,OAAO;QACxB,WAAW,EAAE,eAAe;QAC5B,gBAAgB,EAAE;YAChB,cAAc,EAAE,iBAAiB;YACjC,oBAAoB,EAAE,uBAAuB;SAC9C;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACpB,CAAC;AACJ,CAAC"}