@mp-consulting/homebridge-daikin-cloud 1.2.1 → 1.2.2
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/.claude/settings.local.json +2 -1
- package/CHANGELOG.md +11 -0
- package/dist/src/api/daikin-api.d.ts +9 -0
- package/dist/src/api/daikin-api.d.ts.map +1 -1
- package/dist/src/api/daikin-api.js +34 -2
- package/dist/src/api/daikin-api.js.map +1 -1
- package/dist/src/api/daikin-types.d.ts +1 -0
- package/dist/src/api/daikin-types.d.ts.map +1 -1
- package/dist/src/constants.d.ts +6 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +10 -1
- package/dist/src/constants.js.map +1 -1
- package/homebridge-ui/public/script.js +18 -5
- package/package.json +1 -1
- package/test/fixtures/altherma-fraction.ts +1 -2
- package/test/fixtures/altherma-heat-pump.ts +1 -2
- package/test/fixtures/altherma-v1ckoeln.ts +1 -2
- package/test/fixtures/dx23-airco.ts +1 -2
- package/test/fixtures/dx4-airco.ts +1 -2
- package/test/fixtures/unknown-jan.ts +1 -2
- package/test/fixtures/unknown-kitchen-guests.ts +1 -2
- package/test/hbConfig/.daikin-mobile-tokenset +4 -4
- package/test/hbConfig/accessories/.cachedAccessories.bak +1 -1
- package/test/hbConfig/accessories/cachedAccessories +1 -1
- package/test/integration/air-conditioning.test.ts +13 -9
- package/test/integration/altherma.test.ts +9 -8
- package/test/integration/platform.test.ts +25 -26
- package/test/unit/api/__snapshots__/daikinCloud.test.ts.snap +0 -3
- package/test/unit/api/daikin-api.test.ts +197 -0
- package/test/unit/api/daikin-oauth.test.ts +214 -0
- package/test/unit/device/daikin-device.test.ts +58 -8
- package/test/unit/services/hot-water-tank.service.test.ts +16 -10
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/) and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [1.2.2] - 2026-01-09
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- Automatic token refresh with exponential backoff on 401 Unauthorized responses
|
|
11
|
+
- Retry constants for configurable backoff behavior (MAX_RETRY_ATTEMPTS, RETRY_BASE_DELAY_MS, RETRY_MAX_DELAY_MS)
|
|
12
|
+
- New API unit tests for DaikinApi and OAuth
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- OAuthProvider interface now includes `refreshToken()` method
|
|
16
|
+
- Auth status checks in UI are debounced to prevent excessive API calls
|
|
17
|
+
|
|
7
18
|
## [1.2.1] - 2026-01-09
|
|
8
19
|
|
|
9
20
|
### Fixed
|
|
@@ -12,6 +12,7 @@ export declare class DaikinApi {
|
|
|
12
12
|
private readonly oauth;
|
|
13
13
|
private readonly onRateLimitStatus?;
|
|
14
14
|
private blockedUntil;
|
|
15
|
+
private isRefreshing;
|
|
15
16
|
constructor(oauth: OAuthProvider, onRateLimitStatus?: ((status: RateLimitStatus) => void) | undefined);
|
|
16
17
|
/**
|
|
17
18
|
* Make a static GET request with access token (for UI)
|
|
@@ -39,6 +40,14 @@ export declare class DaikinApi {
|
|
|
39
40
|
* Get time until rate limit is lifted
|
|
40
41
|
*/
|
|
41
42
|
getRateLimitRetryAfter(): number;
|
|
43
|
+
/**
|
|
44
|
+
* Calculate delay for exponential backoff with jitter
|
|
45
|
+
*/
|
|
46
|
+
private getRetryDelay;
|
|
47
|
+
/**
|
|
48
|
+
* Sleep for a specified duration
|
|
49
|
+
*/
|
|
50
|
+
private sleep;
|
|
42
51
|
/**
|
|
43
52
|
* Make an authenticated API request
|
|
44
53
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-api.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAqB,eAAe,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"daikin-api.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAqB,eAAe,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAWjG,qBAAa,gBAAiB,SAAQ,KAAK;aAGnB,UAAU,EAAE,MAAM;gBADlC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM;CAKzC;AAED,qBAAa,SAAS;IAKd,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IALvC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAS;gBAGR,KAAK,EAAE,aAAa,EACpB,iBAAiB,CAAC,YAAW,eAAe,KAAK,IAAI,aAAA;IAO1E;;OAEG;WACU,aAAa,CACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QAAC,SAAS,EAAE,eAAe,CAAA;KAAE,CAAC;IA6BjH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqChC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI5C;;OAEG;IACG,YAAY,CACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;YACW,OAAO;IAoFrB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;CA4CtB"}
|
|
@@ -45,6 +45,7 @@ class DaikinApi {
|
|
|
45
45
|
oauth;
|
|
46
46
|
onRateLimitStatus;
|
|
47
47
|
blockedUntil = 0;
|
|
48
|
+
isRefreshing = false;
|
|
48
49
|
constructor(oauth, onRateLimitStatus) {
|
|
49
50
|
this.oauth = oauth;
|
|
50
51
|
this.onRateLimitStatus = onRateLimitStatus;
|
|
@@ -140,10 +141,24 @@ class DaikinApi {
|
|
|
140
141
|
getRateLimitRetryAfter() {
|
|
141
142
|
return Math.max(0, Math.ceil((this.blockedUntil - Date.now()) / constants_1.MS_PER_SECOND));
|
|
142
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Calculate delay for exponential backoff with jitter
|
|
146
|
+
*/
|
|
147
|
+
getRetryDelay(attempt) {
|
|
148
|
+
const exponentialDelay = constants_1.RETRY_BASE_DELAY_MS * Math.pow(2, attempt);
|
|
149
|
+
const jitter = Math.random() * constants_1.RETRY_BASE_DELAY_MS;
|
|
150
|
+
return Math.min(exponentialDelay + jitter, constants_1.RETRY_MAX_DELAY_MS);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Sleep for a specified duration
|
|
154
|
+
*/
|
|
155
|
+
sleep(ms) {
|
|
156
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
157
|
+
}
|
|
143
158
|
/**
|
|
144
159
|
* Make an authenticated API request
|
|
145
160
|
*/
|
|
146
|
-
async request(path, method = 'GET', body) {
|
|
161
|
+
async request(path, method = 'GET', body, retryCount = 0) {
|
|
147
162
|
// Check rate limit
|
|
148
163
|
if (this.isRateLimited()) {
|
|
149
164
|
const retryAfter = this.getRateLimitRetryAfter();
|
|
@@ -170,7 +185,24 @@ class DaikinApi {
|
|
|
170
185
|
case constants_1.HTTP_STATUS.BAD_REQUEST:
|
|
171
186
|
throw new Error(`Bad Request (${constants_1.HTTP_STATUS.BAD_REQUEST}): ${response.body || 'No response body'}`);
|
|
172
187
|
case constants_1.HTTP_STATUS.UNAUTHORIZED:
|
|
173
|
-
|
|
188
|
+
// If we've exhausted retries or already refreshing, give up
|
|
189
|
+
if (retryCount >= constants_1.MAX_RETRY_ATTEMPTS || this.isRefreshing) {
|
|
190
|
+
throw new Error(`Unauthorized (${constants_1.HTTP_STATUS.UNAUTHORIZED}): Token expired or invalid`);
|
|
191
|
+
}
|
|
192
|
+
// Try to refresh the token and retry the request with exponential backoff
|
|
193
|
+
try {
|
|
194
|
+
this.isRefreshing = true;
|
|
195
|
+
await this.oauth.refreshToken();
|
|
196
|
+
this.isRefreshing = false;
|
|
197
|
+
// Apply exponential backoff delay before retry
|
|
198
|
+
const delay = this.getRetryDelay(retryCount);
|
|
199
|
+
await this.sleep(delay);
|
|
200
|
+
return this.request(path, method, body, retryCount + 1);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
this.isRefreshing = false;
|
|
204
|
+
throw new Error(`Unauthorized (${constants_1.HTTP_STATUS.UNAUTHORIZED}): Token refresh failed. Please re-authenticate.`);
|
|
205
|
+
}
|
|
174
206
|
case constants_1.HTTP_STATUS.NOT_FOUND:
|
|
175
207
|
throw new Error(`Not Found (${constants_1.HTTP_STATUS.NOT_FOUND}): ${response.body || 'Resource not found'}`);
|
|
176
208
|
case constants_1.HTTP_STATUS.CONFLICT:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-api.js","sourceRoot":"","sources":["../../../src/api/daikin-api.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,kDAAoC;AACpC,iDAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"daikin-api.js","sourceRoot":"","sources":["../../../src/api/daikin-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -167,6 +167,7 @@ export interface DaikinControllerConfig {
|
|
|
167
167
|
export interface OAuthProvider {
|
|
168
168
|
getAccessToken(): Promise<string>;
|
|
169
169
|
isAuthenticated(): boolean;
|
|
170
|
+
refreshToken(): Promise<TokenSet>;
|
|
170
171
|
}
|
|
171
172
|
export type DaikinEventType = 'token_update' | 'rate_limit_status' | 'error' | 'websocket_connected' | 'websocket_disconnected' | 'websocket_device_update';
|
|
172
173
|
export interface WebSocketDeviceUpdate {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-types.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"daikin-types.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-types.ts"],"names":[],"mappings":"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"}
|
package/dist/src/constants.d.ts
CHANGED
|
@@ -49,4 +49,10 @@ export declare const HTTP_STATUS: {
|
|
|
49
49
|
};
|
|
50
50
|
/** Maximum rate limit block duration (24 hours in seconds) */
|
|
51
51
|
export declare const MAX_RATE_LIMIT_BLOCK_SECONDS = 86400;
|
|
52
|
+
/** Maximum number of retry attempts for API requests */
|
|
53
|
+
export declare const MAX_RETRY_ATTEMPTS = 3;
|
|
54
|
+
/** Base delay for exponential backoff (milliseconds) */
|
|
55
|
+
export declare const RETRY_BASE_DELAY_MS = 1000;
|
|
56
|
+
/** Maximum delay for exponential backoff (milliseconds) */
|
|
57
|
+
export declare const RETRY_MAX_DELAY_MS = 10000;
|
|
52
58
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,aAAa,QAAqB,CAAC;AAChD,eAAO,MAAM,WAAW,QAAqB,CAAC;AAM9C,0CAA0C;AAC1C,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,QAAqB,CAAC;AAEhE,kFAAkF;AAClF,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAM/C,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;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;AAM/B,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,wDAAwD;AACxD,eAAO,MAAM,aAAa,OAAO,CAAC;AAMlC,4DAA4D;AAC5D,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;;;;;;;CASd,CAAC;AAEX,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,aAAa,QAAqB,CAAC;AAChD,eAAO,MAAM,WAAW,QAAqB,CAAC;AAM9C,0CAA0C;AAC1C,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,QAAqB,CAAC;AAEhE,kFAAkF;AAClF,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAM/C,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;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;AAM/B,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,wDAAwD;AACxD,eAAO,MAAM,aAAa,OAAO,CAAC;AAMlC,4DAA4D;AAC5D,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;;;;;;;CASd,CAAC;AAEX,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAMlD,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,QAAQ,CAAC"}
|
package/dist/src/constants.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Centralized constants to avoid magic numbers throughout the codebase.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.MAX_RATE_LIMIT_BLOCK_SECONDS = exports.HTTP_STATUS = exports.DEFAULT_RETRY_AFTER_SECONDS = exports.MS_PER_SECOND = exports.TOKEN_EXPIRY_BUFFER_SECONDS = exports.FAN_SPEED_MAX = exports.FAN_SPEED_MIN = exports.FAN_SPEED_TO_PERCENTAGE_MULTIPLIER = 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 = exports.RATE_LIMIT_WARNING_THRESHOLD = exports.DEFAULT_FORCE_UPDATE_DELAY_MS = exports.DEFAULT_UPDATE_INTERVAL_MINUTES = exports.ONE_HOUR_MS = exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS = void 0;
|
|
8
|
+
exports.RETRY_MAX_DELAY_MS = exports.RETRY_BASE_DELAY_MS = exports.MAX_RETRY_ATTEMPTS = exports.MAX_RATE_LIMIT_BLOCK_SECONDS = exports.HTTP_STATUS = exports.DEFAULT_RETRY_AFTER_SECONDS = exports.MS_PER_SECOND = exports.TOKEN_EXPIRY_BUFFER_SECONDS = exports.FAN_SPEED_MAX = exports.FAN_SPEED_MIN = exports.FAN_SPEED_TO_PERCENTAGE_MULTIPLIER = 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 = exports.RATE_LIMIT_WARNING_THRESHOLD = exports.DEFAULT_FORCE_UPDATE_DELAY_MS = exports.DEFAULT_UPDATE_INTERVAL_MINUTES = exports.ONE_HOUR_MS = exports.ONE_MINUTE_MS = exports.ONE_SECOND_MS = void 0;
|
|
9
9
|
// =============================================================================
|
|
10
10
|
// Time Constants
|
|
11
11
|
// =============================================================================
|
|
@@ -70,4 +70,13 @@ exports.HTTP_STATUS = {
|
|
|
70
70
|
};
|
|
71
71
|
/** Maximum rate limit block duration (24 hours in seconds) */
|
|
72
72
|
exports.MAX_RATE_LIMIT_BLOCK_SECONDS = 86400;
|
|
73
|
+
// =============================================================================
|
|
74
|
+
// Retry Constants (Exponential Backoff)
|
|
75
|
+
// =============================================================================
|
|
76
|
+
/** Maximum number of retry attempts for API requests */
|
|
77
|
+
exports.MAX_RETRY_ATTEMPTS = 3;
|
|
78
|
+
/** Base delay for exponential backoff (milliseconds) */
|
|
79
|
+
exports.RETRY_BASE_DELAY_MS = 1000;
|
|
80
|
+
/** Maximum delay for exponential backoff (milliseconds) */
|
|
81
|
+
exports.RETRY_MAX_DELAY_MS = 10000;
|
|
73
82
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEnE,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,aAAa,GAAG,qBAAa,GAAG,EAAE,CAAC;AACnC,QAAA,WAAW,GAAG,qBAAa,GAAG,EAAE,CAAC;AAE9C,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF,0CAA0C;AAC7B,QAAA,+BAA+B,GAAG,EAAE,CAAC;AAElD,wDAAwD;AAC3C,QAAA,6BAA6B,GAAG,qBAAa,GAAG,EAAE,CAAC;AAEhE,kFAAkF;AACrE,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C,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,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;AAE/B,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,mEAAmE;AACtD,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C,wDAAwD;AAC3C,QAAA,aAAa,GAAG,IAAI,CAAC;AAElC,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,4DAA4D;AAC/C,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C,wBAAwB;AACX,QAAA,WAAW,GAAG;IACvB,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;CAChB,CAAC;AAEX,8DAA8D;AACjD,QAAA,4BAA4B,GAAG,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEnE,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,aAAa,GAAG,qBAAa,GAAG,EAAE,CAAC;AACnC,QAAA,WAAW,GAAG,qBAAa,GAAG,EAAE,CAAC;AAE9C,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF,0CAA0C;AAC7B,QAAA,+BAA+B,GAAG,EAAE,CAAC;AAElD,wDAAwD;AAC3C,QAAA,6BAA6B,GAAG,qBAAa,GAAG,EAAE,CAAC;AAEhE,kFAAkF;AACrE,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C,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,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;AAE/B,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,mEAAmE;AACtD,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C,wDAAwD;AAC3C,QAAA,aAAa,GAAG,IAAI,CAAC;AAElC,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,4DAA4D;AAC/C,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C,wBAAwB;AACX,QAAA,WAAW,GAAG;IACvB,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;CAChB,CAAC;AAEX,8DAA8D;AACjD,QAAA,4BAA4B,GAAG,KAAK,CAAC;AAElD,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF,wDAAwD;AAC3C,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEpC,wDAAwD;AAC3C,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAExC,2DAA2D;AAC9C,QAAA,kBAAkB,GAAG,KAAK,CAAC"}
|
|
@@ -173,14 +173,27 @@ const Countdown = {
|
|
|
173
173
|
|
|
174
174
|
const Auth = {
|
|
175
175
|
STATUS_REFRESH_INTERVAL: 60000,
|
|
176
|
+
_lastStatusCheck: 0,
|
|
177
|
+
_statusPromise: null,
|
|
176
178
|
|
|
177
179
|
async loadStatus() {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
this.updateUI({ authenticated: false, error: error.message });
|
|
180
|
+
// Debounce: skip if called within 500ms of last call
|
|
181
|
+
const now = Date.now();
|
|
182
|
+
if (now - this._lastStatusCheck < 500 && this._statusPromise) {
|
|
183
|
+
return this._statusPromise;
|
|
183
184
|
}
|
|
185
|
+
this._lastStatusCheck = now;
|
|
186
|
+
|
|
187
|
+
this._statusPromise = (async () => {
|
|
188
|
+
try {
|
|
189
|
+
const response = await homebridge.request('/auth/status');
|
|
190
|
+
this.updateUI(response);
|
|
191
|
+
} catch (error) {
|
|
192
|
+
this.updateUI({ authenticated: false, error: error.message });
|
|
193
|
+
}
|
|
194
|
+
})();
|
|
195
|
+
|
|
196
|
+
return this._statusPromise;
|
|
184
197
|
},
|
|
185
198
|
|
|
186
199
|
startStatusRefresh() {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"displayName": "Daikin Cloud",
|
|
3
3
|
"platformname": "daikincloud",
|
|
4
4
|
"name": "@mp-consulting/homebridge-daikin-cloud",
|
|
5
|
-
"version": "1.2.
|
|
5
|
+
"version": "1.2.2",
|
|
6
6
|
"description": "Integrate with the Daikin Cloud to control your Daikin air conditioning via the cloud",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"repository": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const althermaFraction =
|
|
2
2
|
{
|
|
3
|
-
'
|
|
3
|
+
'id': '',
|
|
4
4
|
'deviceModel': 'Altherma',
|
|
5
5
|
'type': 'heating-wlan',
|
|
6
6
|
'isCloudConnectionUp':
|
|
@@ -715,5 +715,4 @@ export const althermaFraction =
|
|
|
715
715
|
],
|
|
716
716
|
'embeddedId': '',
|
|
717
717
|
'timestamp': '2024-10-02T09:29:40.484Z',
|
|
718
|
-
'id': '',
|
|
719
718
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Altherma heatpump
|
|
2
2
|
export const althermaHeatPump = {
|
|
3
|
-
'
|
|
3
|
+
'id': '10b029e7-484c-4519-b22e-c14be4b7a71c',
|
|
4
4
|
'deviceModel': 'Altherma',
|
|
5
5
|
'type': 'heating-wlan',
|
|
6
6
|
'isCloudConnectionUp': {
|
|
@@ -753,6 +753,5 @@ export const althermaHeatPump = {
|
|
|
753
753
|
],
|
|
754
754
|
'embeddedId': 'e1bac939-1495-4803-a6a3-ca2f9388c8ad',
|
|
755
755
|
'timestamp': '2023-03-07T19:01:39.983Z',
|
|
756
|
-
'id': '10b029e7-484c-4519-b22e-c14be4b7a71c',
|
|
757
756
|
'lastUpdateReceived': '2023-03-07T19:01:39.983Z',
|
|
758
757
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// introduced via https://github.com/mp-consulting/homebridge-daikin-cloud/issues/81
|
|
2
2
|
|
|
3
3
|
export const althermaV1ckoeln = {
|
|
4
|
-
'
|
|
4
|
+
'id': 'ef81d359-4501-431f-9479-d71594658b51',
|
|
5
5
|
'deviceModel': 'Altherma',
|
|
6
6
|
'type': 'heating-wlan',
|
|
7
7
|
'isCloudConnectionUp': {
|
|
@@ -641,5 +641,4 @@ export const althermaV1ckoeln = {
|
|
|
641
641
|
],
|
|
642
642
|
'embeddedId': 'bbfb5284-036a-44ff-96f8-9cde288e1beb',
|
|
643
643
|
'timestamp': '2024-08-18T13:31:41.225Z',
|
|
644
|
-
'id': 'ef81d359-4501-431f-9479-d71594658b51',
|
|
645
644
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Keuken Jeroen, more simple, no horizontal and vertical swing, no powerful mode, min-max speed 1-3
|
|
2
2
|
export const dx23Airco = {
|
|
3
|
-
'
|
|
3
|
+
'id': 'efd08509-2edb-41d0-a9ab-ce913323d811',
|
|
4
4
|
'isCloudConnectionUp': {
|
|
5
5
|
'settable': false,
|
|
6
6
|
'value': true,
|
|
@@ -514,6 +514,5 @@ export const dx23Airco = {
|
|
|
514
514
|
],
|
|
515
515
|
'embeddedId': '78e9e2b5-2e25-4e9b-ae72-56184fc0e6a9',
|
|
516
516
|
'timestamp': '2022-05-04T10:47:18.040Z',
|
|
517
|
-
'id': 'efd08509-2edb-41d0-a9ab-ce913323d811',
|
|
518
517
|
'lastUpdateReceived': '2022-05-04T10:47:18.040Z',
|
|
519
518
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Zolder Jeroen, has all options
|
|
2
2
|
export const dx4Airco= {
|
|
3
|
-
'
|
|
3
|
+
'id': 'ca043bde-8db6-488b-a69e-f43949a24020',
|
|
4
4
|
'isCloudConnectionUp': {
|
|
5
5
|
'settable': false,
|
|
6
6
|
'value': true,
|
|
@@ -910,6 +910,5 @@ export const dx4Airco= {
|
|
|
910
910
|
],
|
|
911
911
|
'embeddedId': '87988',
|
|
912
912
|
'timestamp': '2022-05-04T10:49:25.002Z',
|
|
913
|
-
'id': 'ca043bde-8db6-488b-a69e-f43949a24020',
|
|
914
913
|
'lastUpdateReceived': '2022-05-04T10:49:25.002Z',
|
|
915
914
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Unknown from: https://github.com/mp-consulting/homebridge-daikin-cloud/issues/50
|
|
2
2
|
export const unknownJan = {
|
|
3
|
-
'
|
|
3
|
+
'id': 'c6001930-f7a2-4903-a2d2-be0b649ac9da',
|
|
4
4
|
'error': 'INVALID_GATEWAY_DEVICE',
|
|
5
5
|
'type': 'dx4',
|
|
6
6
|
'deviceModel': 'dx4',
|
|
@@ -485,5 +485,4 @@ export const unknownJan = {
|
|
|
485
485
|
],
|
|
486
486
|
'embeddedId': '1407366',
|
|
487
487
|
'timestamp': '2024-01-24T19:56:06.956Z',
|
|
488
|
-
'id': 'c6001930-f7a2-4903-a2d2-be0b649ac9da',
|
|
489
488
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Unknown from: https://github.com/mp-consulting/homebridge-daikin-cloud/issues/50
|
|
2
2
|
export const unknownKitchenGuests = {
|
|
3
|
-
'
|
|
3
|
+
'id': '60f60b43-0d09-4084-94a0-d7a71020001f',
|
|
4
4
|
'error': 'INVALID_GATEWAY_DEVICE',
|
|
5
5
|
'type': 'dx4',
|
|
6
6
|
'deviceModel': 'dx4',
|
|
@@ -485,5 +485,4 @@ export const unknownKitchenGuests = {
|
|
|
485
485
|
],
|
|
486
486
|
'embeddedId': '1395211',
|
|
487
487
|
'timestamp': '2024-01-24T19:56:47.581Z',
|
|
488
|
-
'id': '60f60b43-0d09-4084-94a0-d7a71020001f',
|
|
489
488
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"access_token": "eyJ0eXAiOiJhdCtKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik1FVkdRa0l5TXprNE0wRTRNVFkzTnpJM1FUYzBNek16T0RRd05FRkVRVUpCTTBFd1EwRkZRZyJ9.
|
|
2
|
+
"access_token": "eyJ0eXAiOiJhdCtKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik1FVkdRa0l5TXprNE0wRTRNVFkzTnpJM1FUYzBNek16T0RRd05FRkVRVUpCTTBFd1EwRkZRZyJ9.eyJzY29wZSI6Im9wZW5pZCBvbmVjdGE6b25lY3RhLmFwcGxpY2F0aW9uIG9mZmxpbmVfYWNjZXNzIiwiaWF0IjoxNzY3OTkyNzA4LCJleHAiOjE3Njc5OTYzMDgsImF1ZCI6WyJodHRwczovL2lkcC5vbmVjdGEuZGFpa2luZXVyb3BlLmNvbSIsImh0dHBzOi8vYXBpLm9uZWN0YS5kYWlraW5ldXJvcGUuY29tIiwid3NzOi8vd3NhcGkub25lY3RhLmRhaWtpbmV1cm9wZS5jb20iLCJGalM2VDVvWkh2enBaRU5JRHliRlJkdEsiXSwiaXNzIjoiaHR0cHM6Ly9jZGMuZGFpa2luLmV1L29pZGMvb3AvdjEuMC8zX3hSQjNqYVE2MmJWanFYVTFvbWFFc1BEVllDMFR3aTF6ZnExekhQdV81SEZUMHpXa0R2WkpTOTdZdzFsb0puVG0vIiwic3ViIjoiZTQzN2YzNTE4YWFkNDMxNGI0N2IzOTlhMzcyNjc4MDciLCJzaWQiOiJVVlpRZmpBeU1EUTFNRFV6TlRRMFlqQTRNemN6TWpNNU16Y3pNak00TXpNek5UQXlNRGM1TjM1TlRuRnNUWEZHTlRSNFZXVmtOamRwYURkak9XWTRabWxQYXpWSGR6SllWbEZPWlcxTk5rOUZUUzFDVWpkNGJESlFTMDgyZW14eFVIZEdNWEJsY0Y5dGVHaERkME5wYjB3dFpWQmxOalphTW5sbmEyWk9XRkZSZmc9PSIsImp0aSI6InN0Mi5zLkF0THQxUG15cXcuZXVFMjF5OGZ1aVdqR1pNR3BuVXpranpyZmdycFRPSlRCdlZWdXFDbTZPT09JZFJCb0lpTUJscmtEZ3hZM2k4MlhrblIxUGsxdEI4ODlJSGRsdWdGY2Y0MkIzTzllbDZ4MjZTVHI3WkprWE9rTFRtQ2JCVnpicUtINm9tTUUxTlcuYXN6OHV4dVZzS1kwWERNNmZEVkR5dnFFZjhPWTg0YW1na01LOUZVYi1TaHNicnhCOW1MY2U5Q19KelFEVnI2ODgzakhwVzdvRUtRR1NvNm1UYlFEWGcuc2MzIiwiY2xpZW50X2lkIjoiRmpTNlQ1b1pIdnpwWkVOSUR5YkZSZHRLIiwiYXpwIjoiRmpTNlQ1b1pIdnpwWkVOSUR5YkZSZHRLIn0.HDrROtqyenBkwZwVSi3aaf0xWqiJxkTU689b65Np3KVR1Uh4q07-TmYywQ42dGqJ7jJIfKnfjcDa6qIohuo2_CqIkhOMeB1cF-bfoaTnSnuHXYnVBRikHLH8EIMFB2LR996rUiHJ0Q6c3Q9wpmumercCxlTJ-SSRCIaqoq2hdNd_bsxnYU5r_C20k9AK_G0cBB1SuvmESNrPFQGXNFIT0fiAGTCMlmfZa1OiXiuS-rc_GTY-djniZTWahfZEbabUcSoz5Uoys4TPuVQ1Ze1O31t3v63uD_TI2faf3CIEhqLSbF-lgRuBvRsaIpckHCny42-T-yOfX6VyHVV1usfiLQ",
|
|
3
3
|
"token_type": "Bearer",
|
|
4
4
|
"expires_in": 3600,
|
|
5
|
-
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik1FVkdRa0l5TXprNE0wRTRNVFkzTnpJM1FUYzBNek16T0RRd05FRkVRVUpCTTBFd1EwRkZRZyJ9.
|
|
6
|
-
"refresh_token": "st2.s.
|
|
7
|
-
"expires_at":
|
|
5
|
+
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik1FVkdRa0l5TXprNE0wRTRNVFkzTnpJM1FUYzBNek16T0RRd05FRkVRVUpCTTBFd1EwRkZRZyJ9.eyJpc3MiOiJodHRwczovL2NkYy5kYWlraW4uZXUvb2lkYy9vcC92MS4wLzNfeFJCM2phUTYyYlZqcVhVMW9tYUVzUERWWUMwVHdpMXpmcTF6SFB1XzVIRlQweldrRHZaSlM5N1l3MWxvSm5UbS8iLCJleHAiOjE3OTk1Mjg3MDksImlhdCI6MTc2Nzk5MjcwOSwiYXVkIjpbImh0dHBzOi8vaWRwLm9uZWN0YS5kYWlraW5ldXJvcGUuY29tIiwiaHR0cHM6Ly9hcGkub25lY3RhLmRhaWtpbmV1cm9wZS5jb20iLCJ3c3M6Ly93c2FwaS5vbmVjdGEuZGFpa2luZXVyb3BlLmNvbSIsIkZqUzZUNW9aSHZ6cFpFTklEeWJGUmR0SyJdLCJhdXRoX3RpbWUiOjE3Njc5OTExMTcsImF6cCI6IkZqUzZUNW9aSHZ6cFpFTklEeWJGUmR0SyIsInN1YiI6ImU0MzdmMzUxOGFhZDQzMTRiNDdiMzk5YTM3MjY3ODA3IiwiYXRfaGFzaCI6IndLMWNHeWlmX2w0WUJqV09DYklNOGciLCJzaWQiOiJVV0ZQZmpBeU1EUTFNRFV6TlRRMFlqQTRNemN6TWpNNU16Y3pNak00TXpNek5UQXlNRGM1TjM1TlREaDJSMHMzVG5wTWRtVlhVbUZ5Ymt0WVRISnFPVWxWVW5oMVJWWklUakZwTFdvNVlXRnljVUprYkdWTVgwSTRRMGxVUW5wS2ExVlJYM3BHTVdGUE1FSkRkME5wYjB3dFpWQmxOalphTW5sbmEyWk9XRkZSZmc9PSJ9.NG9vhaaOFrhi2t24cVXjIJykB0bfGSsPe66NpIhny9kWLKXGUWxZQ7LYK1gc3aT_A7apgORU9ajawppJZYaiBND_aH8DP1L1FxubT3o3bSOOugXe4phivR18syZh4eXEEF4Awn4crKL_Ejd5udXnQzHEx8W6q8GTdAzr7NpGwShsMUDY95hMkf4n2dEqfOZet2jRkfp7vhjuvtfyxld6pPBFh-6fQzV8_SOlX8Wc7FXjKUH80R0PAzqa7vbjQZJ0BlfMf1F5vFInQK1tbQeGrraBK9YUU7BMhqhHRa3ts626izyPl2tATBshP5s9iFesDFzaC3gFPGAKgBr4vu-hhQ",
|
|
6
|
+
"refresh_token": "st2.s.AtLtZePt7g.-RfvPZ2kOwWkfXW_dbFHfCzj6ppUxRDaDerBTQR63LJkIM9Yc79tdOBPo-BoaNSqQi8MVW7EEZYrOpN6-2NXqzWUcfvwfkL0SQh0BtgtrUBh2hSWxko3HyHHYgdyr3CC.1hj2CHyjWni11zmuXyiP_sziH_-GToLav2eOgqgQ6rRR7SiOazk_y_JdFCCJz069uhjsqkabqtq3ZD0Xo3tnYA.sc3",
|
|
7
|
+
"expires_at": 1767996309
|
|
8
8
|
}
|