@mp-consulting/homebridge-daikin-cloud 1.5.1 → 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.
- package/README.md +40 -27
- package/config.schema.json +66 -12
- package/dist/src/accessories/air-conditioning-accessory.js +1 -1
- package/dist/src/accessories/air-conditioning-accessory.js.map +1 -1
- package/dist/src/accessories/altherma-accessory.js +1 -1
- package/dist/src/accessories/altherma-accessory.js.map +1 -1
- package/dist/src/accessories/base-accessory.d.ts +5 -4
- package/dist/src/accessories/base-accessory.d.ts.map +1 -1
- package/dist/src/accessories/base-accessory.js +9 -10
- package/dist/src/accessories/base-accessory.js.map +1 -1
- package/dist/src/api/daikin-api.d.ts +22 -6
- package/dist/src/api/daikin-api.d.ts.map +1 -1
- package/dist/src/api/daikin-api.js +49 -23
- package/dist/src/api/daikin-api.js.map +1 -1
- package/dist/src/api/daikin-controller.d.ts +4 -48
- package/dist/src/api/daikin-controller.d.ts.map +1 -1
- package/dist/src/api/daikin-controller.js +14 -84
- package/dist/src/api/daikin-controller.js.map +1 -1
- package/dist/src/api/daikin-mobile-oauth.d.ts +11 -40
- package/dist/src/api/daikin-mobile-oauth.d.ts.map +1 -1
- package/dist/src/api/daikin-mobile-oauth.js +36 -160
- package/dist/src/api/daikin-mobile-oauth.js.map +1 -1
- package/dist/src/api/daikin-oauth.d.ts +10 -37
- package/dist/src/api/daikin-oauth.d.ts.map +1 -1
- package/dist/src/api/daikin-oauth.js +36 -166
- package/dist/src/api/daikin-oauth.js.map +1 -1
- package/dist/src/api/daikin-schemas.d.ts +20 -22
- package/dist/src/api/daikin-schemas.d.ts.map +1 -1
- package/dist/src/api/daikin-schemas.js +17 -49
- package/dist/src/api/daikin-schemas.js.map +1 -1
- package/dist/src/api/daikin-types.d.ts +11 -23
- package/dist/src/api/daikin-types.d.ts.map +1 -1
- package/dist/src/api/daikin-types.js.map +1 -1
- package/dist/src/api/daikin-websocket.d.ts +4 -5
- package/dist/src/api/daikin-websocket.d.ts.map +1 -1
- package/dist/src/api/daikin-websocket.js +62 -34
- package/dist/src/api/daikin-websocket.js.map +1 -1
- package/dist/src/api/http-defaults.d.ts +3 -2
- package/dist/src/api/http-defaults.d.ts.map +1 -1
- package/dist/src/api/http-defaults.js.map +1 -1
- package/dist/src/api/http-transport.d.ts +14 -2
- package/dist/src/api/http-transport.d.ts.map +1 -1
- package/dist/src/api/http-transport.js +32 -9
- package/dist/src/api/http-transport.js.map +1 -1
- package/dist/src/api/token-client.d.ts +82 -0
- package/dist/src/api/token-client.d.ts.map +1 -0
- package/dist/src/api/token-client.js +188 -0
- package/dist/src/api/token-client.js.map +1 -0
- package/dist/src/api/token-storage.d.ts +6 -0
- package/dist/src/api/token-storage.d.ts.map +1 -1
- package/dist/src/api/token-storage.js +27 -1
- package/dist/src/api/token-storage.js.map +1 -1
- package/dist/src/config/config-manager.d.ts +69 -125
- package/dist/src/config/config-manager.d.ts.map +1 -1
- package/dist/src/config/config-manager.js +288 -225
- package/dist/src/config/config-manager.js.map +1 -1
- package/dist/src/constants/api.constants.d.ts +6 -0
- package/dist/src/constants/api.constants.d.ts.map +1 -1
- package/dist/src/constants/api.constants.js +7 -1
- package/dist/src/constants/api.constants.js.map +1 -1
- package/dist/src/constants/auth.constants.d.ts +11 -0
- package/dist/src/constants/auth.constants.d.ts.map +1 -1
- package/dist/src/constants/auth.constants.js +12 -1
- package/dist/src/constants/auth.constants.js.map +1 -1
- package/dist/src/constants/device.constants.d.ts +1 -7
- package/dist/src/constants/device.constants.d.ts.map +1 -1
- package/dist/src/constants/device.constants.js +2 -11
- package/dist/src/constants/device.constants.js.map +1 -1
- package/dist/src/constants/time.constants.d.ts +0 -2
- package/dist/src/constants/time.constants.d.ts.map +1 -1
- package/dist/src/constants/time.constants.js +1 -3
- package/dist/src/constants/time.constants.js.map +1 -1
- package/dist/src/device/accessory-factory.d.ts +0 -5
- package/dist/src/device/accessory-factory.d.ts.map +1 -1
- package/dist/src/device/accessory-factory.js +0 -7
- package/dist/src/device/accessory-factory.js.map +1 -1
- package/dist/src/device/capability-detector.d.ts +9 -1
- package/dist/src/device/capability-detector.d.ts.map +1 -1
- package/dist/src/device/capability-detector.js +32 -28
- package/dist/src/device/capability-detector.js.map +1 -1
- package/dist/src/device/capability-docs.d.ts.map +1 -1
- package/dist/src/device/capability-docs.js +3 -0
- package/dist/src/device/capability-docs.js.map +1 -1
- package/dist/src/device/data-paths.d.ts +18 -0
- package/dist/src/device/data-paths.d.ts.map +1 -0
- package/dist/src/device/data-paths.js +20 -0
- package/dist/src/device/data-paths.js.map +1 -0
- package/dist/src/device/profiles/device-profile.d.ts +0 -5
- package/dist/src/device/profiles/device-profile.d.ts.map +1 -1
- package/dist/src/device/profiles/device-profile.js +0 -21
- package/dist/src/device/profiles/device-profile.js.map +1 -1
- package/dist/src/features/base-feature.d.ts +53 -9
- package/dist/src/features/base-feature.d.ts.map +1 -1
- package/dist/src/features/base-feature.js +93 -40
- package/dist/src/features/base-feature.js.map +1 -1
- package/dist/src/features/feature-manager.d.ts +27 -15
- package/dist/src/features/feature-manager.d.ts.map +1 -1
- package/dist/src/features/feature-manager.js +27 -24
- package/dist/src/features/feature-manager.js.map +1 -1
- package/dist/src/features/index.d.ts +1 -0
- package/dist/src/features/index.d.ts.map +1 -1
- package/dist/src/features/index.js +1 -0
- package/dist/src/features/index.js.map +1 -1
- package/dist/src/features/modes/auto-fan-mode.feature.d.ts +16 -10
- package/dist/src/features/modes/auto-fan-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/auto-fan-mode.feature.js +16 -40
- package/dist/src/features/modes/auto-fan-mode.feature.js.map +1 -1
- package/dist/src/features/modes/dry-operation-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/dry-operation-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/dry-operation-mode.feature.js +11 -30
- package/dist/src/features/modes/dry-operation-mode.feature.js.map +1 -1
- package/dist/src/features/modes/econo-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/econo-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/econo-mode.feature.js +11 -31
- package/dist/src/features/modes/econo-mode.feature.js.map +1 -1
- package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/fan-only-operation-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/fan-only-operation-mode.feature.js +11 -30
- package/dist/src/features/modes/fan-only-operation-mode.feature.js.map +1 -1
- package/dist/src/features/modes/firmware-update.feature.d.ts +7 -6
- package/dist/src/features/modes/firmware-update.feature.d.ts.map +1 -1
- package/dist/src/features/modes/firmware-update.feature.js +15 -22
- package/dist/src/features/modes/firmware-update.feature.js.map +1 -1
- package/dist/src/features/modes/holiday-mode.feature.d.ts +2 -1
- package/dist/src/features/modes/holiday-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/holiday-mode.feature.js +5 -15
- package/dist/src/features/modes/holiday-mode.feature.js.map +1 -1
- package/dist/src/features/modes/indoor-silent-mode.feature.d.ts +15 -12
- package/dist/src/features/modes/indoor-silent-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/indoor-silent-mode.feature.js +15 -39
- package/dist/src/features/modes/indoor-silent-mode.feature.js.map +1 -1
- package/dist/src/features/modes/oscillation-mode.feature.d.ts +5 -6
- package/dist/src/features/modes/oscillation-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/oscillation-mode.feature.js +14 -36
- package/dist/src/features/modes/oscillation-mode.feature.js.map +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.js +11 -31
- package/dist/src/features/modes/outdoor-silent-mode.feature.js.map +1 -1
- package/dist/src/features/modes/powerful-mode.feature.d.ts +14 -10
- package/dist/src/features/modes/powerful-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/powerful-mode.feature.js +13 -32
- package/dist/src/features/modes/powerful-mode.feature.js.map +1 -1
- package/dist/src/features/modes/streamer-mode.feature.d.ts +12 -9
- package/dist/src/features/modes/streamer-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/streamer-mode.feature.js +11 -31
- package/dist/src/features/modes/streamer-mode.feature.js.map +1 -1
- package/dist/src/features/on-off-data-point-feature.d.ts +43 -0
- package/dist/src/features/on-off-data-point-feature.d.ts.map +1 -0
- package/dist/src/features/on-off-data-point-feature.js +49 -0
- package/dist/src/features/on-off-data-point-feature.js.map +1 -0
- package/dist/src/platform.d.ts +56 -9
- package/dist/src/platform.d.ts.map +1 -1
- package/dist/src/platform.js +248 -128
- package/dist/src/platform.js.map +1 -1
- package/dist/src/services/climate-control/fan-speed.d.ts +45 -0
- package/dist/src/services/climate-control/fan-speed.d.ts.map +1 -0
- package/dist/src/services/climate-control/fan-speed.js +104 -0
- package/dist/src/services/climate-control/fan-speed.js.map +1 -0
- package/dist/src/services/climate-control/separate-fan.service.d.ts +45 -0
- package/dist/src/services/climate-control/separate-fan.service.d.ts.map +1 -0
- package/dist/src/services/climate-control/separate-fan.service.js +82 -0
- package/dist/src/services/climate-control/separate-fan.service.js.map +1 -0
- package/dist/src/services/climate-control/setpoint-resolver.d.ts +68 -0
- package/dist/src/services/climate-control/setpoint-resolver.d.ts.map +1 -0
- package/dist/src/services/climate-control/setpoint-resolver.js +170 -0
- package/dist/src/services/climate-control/setpoint-resolver.js.map +1 -0
- package/dist/src/services/climate-control/swing-controller.d.ts +28 -0
- package/dist/src/services/climate-control/swing-controller.d.ts.map +1 -0
- package/dist/src/services/climate-control/swing-controller.js +65 -0
- package/dist/src/services/climate-control/swing-controller.js.map +1 -0
- package/dist/src/services/climate-control.service.d.ts +39 -48
- package/dist/src/services/climate-control.service.d.ts.map +1 -1
- package/dist/src/services/climate-control.service.js +223 -554
- package/dist/src/services/climate-control.service.js.map +1 -1
- package/dist/src/services/hot-water-tank.service.d.ts +17 -8
- package/dist/src/services/hot-water-tank.service.d.ts.map +1 -1
- package/dist/src/services/hot-water-tank.service.js +102 -157
- package/dist/src/services/hot-water-tank.service.js.map +1 -1
- package/dist/src/types/daikin-enums.d.ts +0 -5
- package/dist/src/types/daikin-enums.d.ts.map +1 -1
- package/dist/src/types/daikin-enums.js +1 -7
- package/dist/src/types/daikin-enums.js.map +1 -1
- package/dist/src/types/device-capabilities.d.ts +1 -0
- package/dist/src/types/device-capabilities.d.ts.map +1 -1
- package/dist/src/utils/errors.d.ts +9 -0
- package/dist/src/utils/errors.d.ts.map +1 -0
- package/dist/src/utils/errors.js +25 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/hap-write.d.ts +22 -0
- package/dist/src/utils/hap-write.d.ts.map +1 -0
- package/dist/src/utils/hap-write.js +33 -0
- package/dist/src/utils/hap-write.js.map +1 -0
- package/dist/src/utils/sleep.d.ts +5 -0
- package/dist/src/utils/sleep.d.ts.map +1 -0
- package/dist/src/utils/sleep.js +10 -0
- package/dist/src/utils/sleep.js.map +1 -0
- package/homebridge-ui/README.md +25 -2
- package/homebridge-ui/public/index.html +19 -17
- package/homebridge-ui/public/lib/kit.css +1 -1
- package/homebridge-ui/public/script.js +95 -32
- package/homebridge-ui/public/styles.css +109 -0
- package/homebridge-ui/server.js +321 -125
- package/package.json +14 -15
- package/dist/src/utils/log-context.d.ts +0 -105
- package/dist/src/utils/log-context.d.ts.map +0 -1
- package/dist/src/utils/log-context.js +0 -206
- package/dist/src/utils/log-context.js.map +0 -1
- package/dist/src/utils/update-mapper.d.ts +0 -59
- package/dist/src/utils/update-mapper.d.ts.map +0 -1
- package/dist/src/utils/update-mapper.js +0 -192
- 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
|
|
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
|
|
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
|
|
5
|
+
* Constants related to device characteristics and temperatures.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
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
|
|
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;
|
|
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.
|
|
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;
|
|
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;
|
|
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;
|
|
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
|
-
*
|
|
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;
|
|
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
|
-
*
|
|
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
|
|
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
|
|
91
|
+
return this.hasValue(feature);
|
|
83
92
|
}
|
|
84
93
|
hasSwingMode(direction) {
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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
|
|
99
|
-
|
|
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
|
-
|
|
109
|
-
|
|
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
|
|
113
|
-
return
|
|
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',
|
|
120
|
-
if (data
|
|
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', '
|
|
130
|
-
if (hotWaterData
|
|
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":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"capability-detector.js","sourceRoot":"","sources":["../../../src/device/capability-detector.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,6CAAyC;AAIzC,oCAGkB;AAElB,MAAa,wBAAwB;IAClB,MAAM,CAAoB;IAC1B,iBAAiB,CAAS;IACnC,kBAAkB,GAA8B,IAAI,CAAC;IACrD,6BAA6B,GAAyC,IAAI,CAAC;IAEnF,YAAY,MAAyB,EAAE,iBAAyB;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED;;SAEK;IACL,eAAe;QACb,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;SAEK;IACL,0BAA0B;QACxB,IAAI,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,6BAA6B,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC,6BAA6B,CAAC;IAC5C,CAAC;IAED;;SAEK;IACL,UAAU;QACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;IAC5C,CAAC;IAEO,kBAAkB;QACxB,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAC3C,IAAI,CAAC,iBAAiB,EACtB,eAAe,EACf,SAAS,CACV,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,iBAAiB,CAAC,MAAM,IAAI,EAAE,CAA2B,CAAC;QAElF,OAAO;YACL,oBAAoB;YACpB,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YAC5D,uBAAuB,EAAE,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC;YACxE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YAE9C,2BAA2B;YAC3B,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAC1C,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAChD,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAC1D,mBAAmB,EAAE,IAAI,CAAC,sBAAsB,EAAE;YAClD,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACxC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YACnD,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACvD,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACtC,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;YAExC,kBAAkB;YAClB,uBAAuB,EAAE,cAAc;YACvC,mBAAmB,EAAE,cAAc,CAAC,QAAQ,CAAC,4BAAoB,CAAC,GAAG,CAAC;YACtE,uBAAuB,EAAE,cAAc,CAAC,QAAQ,CAAC,4BAAoB,CAAC,QAAQ,CAAC;YAE/E,sBAAsB;YACtB,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,4BAAoB,CAAC,OAAO,CAAC;YACrE,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,4BAAoB,CAAC,OAAO,CAAC;YACrE,WAAW,EAAE,cAAc,CAAC,QAAQ,CAAC,4BAAoB,CAAC,IAAI,CAAC;YAE/D,oBAAoB;YACpB,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAC9C,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;SACjD,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC3C,CAAC,EAAmC,EAAE,EAAE,CAAC,EAAE,CAAC,mBAAmB,KAAK,IAAI,CACzE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,SAAiB,EAAE,IAAa;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;IAC1F,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,sBAAS,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IACxG,CAAC;IAEO,aAAa;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CACtC,IAAI,CAAC,iBAAiB,EACtB,YAAY,EACZ,sBAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAC9D,CAAC;QACF,OAAO,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC;IACnC,CAAC;IAEO,sBAAsB;QAC5B,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,2BAAmB,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,8FAA8F;IACtF,iBAAiB;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5C,OAAO,cAAc,CAAC,QAAQ,CAAC,2BAAmB,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,2BAAmB,CAAC,KAAK,CAAC,CAAC;IACjH,CAAC;IAEO,gBAAgB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,sBAAS,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAEO,iBAAiB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,KAA0C,CAAC;QACrI,OAAO,WAAW,EAAE,OAAO,KAAK,SAAS,CAAC;IAC5C,CAAC;IAEO,uBAAuB;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;QACpG,OAAO,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,4BAAoB,CAAC,IAAI,CAAC;IACxG,CAAC;IAEO,6BAA6B;QACnC,MAAM,YAAY,GAAkC,EAAE,CAAC;QAEvD,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;QAEtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAC9B,IAAI,CAAC,iBAAiB,EACtB,oBAAoB,EACpB,sBAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAC5C,CAAC;YAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC/F,YAAY,CAAC,IAAI,CAAC,GAAG;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CACtC,IAAI,CAAC,iBAAiB,EACtB,oBAAoB,EACpB,sBAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAC7D,CAAC;QAEF,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACvH,YAAY,CAAC,gBAAgB,GAAG;gBAC9B,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;aAClC,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAlLD,4DAkLC"}
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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;;;
|
|
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"}
|