homebridge-tsvesync 1.0.26 → 1.0.28

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 (36) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +13 -1
  3. package/dist/__tests__/utils/test-helpers.d.ts +131 -0
  4. package/dist/__tests__/utils/test-helpers.d.ts.map +1 -0
  5. package/dist/__tests__/utils/test-helpers.js +381 -0
  6. package/dist/__tests__/utils/test-helpers.js.map +1 -0
  7. package/dist/accessories/base.accessory.d.ts.map +1 -1
  8. package/dist/accessories/base.accessory.js +6 -3
  9. package/dist/accessories/base.accessory.js.map +1 -1
  10. package/dist/accessories/fan.accessory.js +2 -2
  11. package/dist/accessories/outlet.accessory.js +1 -1
  12. package/dist/accessories/outlet.accessory.js.map +1 -1
  13. package/dist/accessories/switch.accessory.d.ts +16 -0
  14. package/dist/accessories/switch.accessory.d.ts.map +1 -0
  15. package/dist/accessories/switch.accessory.js +71 -0
  16. package/dist/accessories/switch.accessory.js.map +1 -0
  17. package/dist/platform.d.ts +11 -1
  18. package/dist/platform.d.ts.map +1 -1
  19. package/dist/platform.js +108 -122
  20. package/dist/platform.js.map +1 -1
  21. package/dist/types/device.types.d.ts +10 -3
  22. package/dist/types/device.types.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/src/__tests__/base.accessory.test.ts +207 -1
  25. package/src/__tests__/devices/fan.test.ts +163 -0
  26. package/src/__tests__/devices/light.test.ts +547 -0
  27. package/src/__tests__/devices/outlet.test.ts +526 -0
  28. package/src/__tests__/devices/switch.test.ts +274 -0
  29. package/src/__tests__/platform.test.ts +251 -151
  30. package/src/__tests__/utils/test-helpers.ts +464 -0
  31. package/src/accessories/base.accessory.ts +6 -3
  32. package/src/accessories/fan.accessory.ts +2 -2
  33. package/src/accessories/outlet.accessory.ts +1 -1
  34. package/src/accessories/switch.accessory.ts +96 -0
  35. package/src/platform.ts +117 -125
  36. package/src/types/device.types.ts +12 -3
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FanAccessory = void 0;
4
4
  const base_accessory_1 = require("./base.accessory");
5
5
  // Constants for fan direction
6
- const CLOCKWISE = 0;
7
- const COUNTER_CLOCKWISE = 1;
6
+ const CLOCKWISE = 1;
7
+ const COUNTER_CLOCKWISE = 0;
8
8
  class FanAccessory extends base_accessory_1.BaseAccessory {
9
9
  constructor(platform, accessory, device) {
10
10
  super(platform, accessory, device);
@@ -93,7 +93,7 @@ class OutletAccessory extends base_accessory_1.BaseAccessory {
93
93
  // Update outlet in use (always true when device is on)
94
94
  this.updateCharacteristicValue(this.platform.Characteristic.OutletInUse, isActive);
95
95
  // Update power monitoring characteristics if available
96
- const powerService = this.accessory.getService('Power Monitor');
96
+ const powerService = this.accessory.getService(POWER_SERVICE_NAME);
97
97
  if (powerService) {
98
98
  if (outletDetails.power !== undefined) {
99
99
  powerService.updateCharacteristic(this.POWER_UUID, outletDetails.power);
@@ -1 +1 @@
1
- {"version":3,"file":"outlet.accessory.js","sourceRoot":"","sources":["../../src/accessories/outlet.accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outlet.accessory.js","sourceRoot":"","sources":["../../src/accessories/outlet.accessory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Service } from 'homebridge';
2
+ import { BaseAccessory } from './base.accessory';
3
+ import { DeviceCapabilities, VeSyncSwitch } from '../types/device.types';
4
+ import { TSVESyncPlatform } from '../platform';
5
+ import { PlatformAccessory } from 'homebridge';
6
+ export declare class SwitchAccessory extends BaseAccessory {
7
+ protected readonly device: VeSyncSwitch;
8
+ protected service: Service;
9
+ constructor(platform: TSVESyncPlatform, accessory: PlatformAccessory, device: VeSyncSwitch);
10
+ protected setupService(): void;
11
+ protected updateDeviceSpecificStates(details: any): Promise<void>;
12
+ protected getDeviceCapabilities(): DeviceCapabilities;
13
+ private handleOnGet;
14
+ private handleOnSet;
15
+ }
16
+ //# sourceMappingURL=switch.accessory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/switch.accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,qBAAa,eAAgB,SAAQ,aAAa;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IACxC,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;gBAG1B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,YAAY;IAMtB,SAAS,CAAC,YAAY,IAAI,IAAI;cAiBd,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvE,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;YAcvC,WAAW;YAUX,WAAW;CAkB1B"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwitchAccessory = void 0;
4
+ const base_accessory_1 = require("./base.accessory");
5
+ class SwitchAccessory extends base_accessory_1.BaseAccessory {
6
+ constructor(platform, accessory, device) {
7
+ super(platform, accessory, device);
8
+ this.device = device;
9
+ }
10
+ setupService() {
11
+ // Get the switch service if it exists, otherwise create a new switch service
12
+ this.service = this.accessory.getService(this.platform.Service.Switch)
13
+ || this.accessory.addService(this.platform.Service.Switch);
14
+ // Set up handlers for the On/Off characteristic
15
+ this.service.getCharacteristic(this.platform.Characteristic.On)
16
+ .onSet(this.handleOnSet.bind(this))
17
+ .onGet(this.handleOnGet.bind(this));
18
+ // Add Name characteristic
19
+ this.service.setCharacteristic(this.platform.Characteristic.Name, this.device.deviceName);
20
+ }
21
+ async updateDeviceSpecificStates(details) {
22
+ const switchDetails = details;
23
+ // Update power state
24
+ const isOn = switchDetails.power || switchDetails.deviceStatus === 'on';
25
+ this.service.updateCharacteristic(this.platform.Characteristic.On, isOn);
26
+ // Update polling state based on active status
27
+ this.updatePollingState(isOn);
28
+ }
29
+ getDeviceCapabilities() {
30
+ return {
31
+ hasBrightness: false,
32
+ hasColorTemp: false,
33
+ hasColor: false,
34
+ hasSpeed: false,
35
+ hasHumidity: false,
36
+ hasAirQuality: false,
37
+ hasWaterLevel: false,
38
+ hasChildLock: false,
39
+ hasSwingMode: false,
40
+ };
41
+ }
42
+ async handleOnGet() {
43
+ try {
44
+ await this.device.getDetails();
45
+ return this.device.power || this.device.deviceStatus === 'on';
46
+ }
47
+ catch (error) {
48
+ this.platform.log.error('Failed to get switch state:', error);
49
+ throw error;
50
+ }
51
+ }
52
+ async handleOnSet(value) {
53
+ try {
54
+ const isOn = value;
55
+ const success = isOn
56
+ ? await this.device.turnOn()
57
+ : await this.device.turnOff();
58
+ if (!success) {
59
+ throw new Error(`Failed to turn ${isOn ? 'on' : 'off'} switch`);
60
+ }
61
+ // Update the device state after successful change
62
+ await this.device.getDetails();
63
+ }
64
+ catch (error) {
65
+ this.platform.log.error('Failed to set switch state:', error);
66
+ throw error;
67
+ }
68
+ }
69
+ }
70
+ exports.SwitchAccessory = SwitchAccessory;
71
+ //# sourceMappingURL=switch.accessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.accessory.js","sourceRoot":"","sources":["../../src/accessories/switch.accessory.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,14 @@ export declare class TSVESyncPlatform implements DynamicPlatformPlugin {
14
14
  private readonly deviceAccessories;
15
15
  private client;
16
16
  private deviceUpdateInterval?;
17
+ private tokenRefreshInterval?;
17
18
  private readonly updateInterval;
18
19
  private readonly debug;
19
20
  private lastLogin;
20
21
  private lastLoginAttempt;
21
22
  private loginBackoffTime;
23
+ private tokenExpiryTime?;
24
+ private readonly TOKEN_REFRESH_BUFFER;
22
25
  private initializationPromise;
23
26
  private initializationResolver;
24
27
  private isInitialized;
@@ -47,9 +50,12 @@ export declare class TSVESyncPlatform implements DynamicPlatformPlugin {
47
50
  * Ensure client is logged in, but avoid unnecessary logins
48
51
  */
49
52
  private ensureLogin;
53
+ /**
54
+ * Handle operation retry with token refresh
55
+ */
56
+ withTokenRefresh<T>(operation: () => Promise<T>): Promise<T>;
50
57
  /**
51
58
  * Update device states from the API
52
- * @param isPolledUpdate Whether this update is from the polling interval
53
59
  */
54
60
  updateDeviceStatesFromAPI(isPolledUpdate?: boolean): Promise<void>;
55
61
  /**
@@ -66,5 +72,9 @@ export declare class TSVESyncPlatform implements DynamicPlatformPlugin {
66
72
  * @returns The generated UUID string
67
73
  */
68
74
  private generateDeviceUUID;
75
+ /**
76
+ * Check if token needs refresh and refresh if needed
77
+ */
78
+ private checkAndRefreshToken;
69
79
  }
70
80
  //# sourceMappingURL=platform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5H;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,qBAAqB;aAoB1C,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IArB1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyC;IAE3E,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,aAAa,CAAS;gBAGZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAmE1B;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC;;OAEG;YACW,kBAAkB;IAoChC;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAK/C;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;YACW,WAAW;IAyEzB;;;OAGG;IACU,yBAAyB,CAAC,cAAc,UAAQ;IAiI7D;;OAEG;YACW,kBAAkB;IAIhC;;OAEG;IACG,eAAe;IA0ErB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CAO3B"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5H;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,qBAAqB;aAuB1C,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAxB1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyC;IAE3E,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAC9C,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,eAAe,CAAC,CAAO;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiB;IACtD,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,aAAa,CAAS;gBAGZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA2E1B;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC;;OAEG;YACW,kBAAkB;IAoChC;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAK/C;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;YACW,WAAW;IAmFzB;;OAEG;IACU,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyBzE;;OAEG;IACU,yBAAyB,CAAC,cAAc,UAAQ;IAmD7D;;OAEG;YACW,kBAAkB;IAIhC;;OAEG;IACG,eAAe;IA0ErB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;YACW,oBAAoB;CAkBnC"}
package/dist/platform.js CHANGED
@@ -22,6 +22,7 @@ class TSVESyncPlatform {
22
22
  this.lastLogin = new Date(0); // Track last successful login
23
23
  this.lastLoginAttempt = new Date(0);
24
24
  this.loginBackoffTime = 1000; // Start with 1 second
25
+ this.TOKEN_REFRESH_BUFFER = 5 * 60 * 1000; // Refresh 5 minutes before expiry
25
26
  this.isInitialized = false;
26
27
  // Create initialization promise
27
28
  this.initializationPromise = new Promise((resolve) => {
@@ -65,11 +66,18 @@ class TSVESyncPlatform {
65
66
  this.log.error('Failed to initialize platform:', error);
66
67
  }
67
68
  });
69
+ // Set up token refresh interval
70
+ this.tokenRefreshInterval = setInterval(() => {
71
+ this.checkAndRefreshToken();
72
+ }, 60 * 1000); // Check token every minute
68
73
  // Clean up when shutting down
69
74
  this.api.on('shutdown', () => {
70
75
  if (this.deviceUpdateInterval) {
71
76
  clearInterval(this.deviceUpdateInterval);
72
77
  }
78
+ if (this.tokenRefreshInterval) {
79
+ clearInterval(this.tokenRefreshInterval);
80
+ }
73
81
  });
74
82
  }
75
83
  /**
@@ -158,11 +166,10 @@ class TSVESyncPlatform {
158
166
  async ensureLogin(forceLogin = false) {
159
167
  var _a, _b;
160
168
  try {
161
- // If not forcing login and last login was less than 23 hours ago, try using existing session
162
- const loginAge = Date.now() - this.lastLogin.getTime();
163
- if (!forceLogin && loginAge < 23 * 60 * 60 * 1000) { // 23 hours in milliseconds
169
+ // If not forcing login and we have a valid token, use it
170
+ if (!forceLogin && this.tokenExpiryTime && Date.now() < this.tokenExpiryTime.getTime() - this.TOKEN_REFRESH_BUFFER) {
164
171
  if (this.debug) {
165
- this.log.debug('Using existing login session');
172
+ this.log.debug('Using existing valid token');
166
173
  }
167
174
  return true;
168
175
  }
@@ -187,161 +194,120 @@ class TSVESyncPlatform {
187
194
  return false;
188
195
  }
189
196
  this.lastLogin = new Date();
197
+ // Set token expiry time - default to 23 hours if not provided by API
198
+ const tokenTTL = (loginResult === null || loginResult === void 0 ? void 0 : loginResult.tokenTTL) || 23 * 60 * 60;
199
+ this.tokenExpiryTime = new Date(Date.now() + tokenTTL * 1000);
200
+ if (this.debug) {
201
+ this.log.debug(`Token will expire at ${this.tokenExpiryTime.toISOString()}`);
202
+ }
190
203
  // Reset backoff on successful login
191
204
  this.loginBackoffTime = 1000;
192
205
  return true;
193
206
  }
194
207
  catch (error) {
195
- // Handle specific "Not logged in" error
208
+ // Handle specific errors
196
209
  const errorObj = error;
197
210
  const errorMsg = ((_a = errorObj === null || errorObj === void 0 ? void 0 : errorObj.error) === null || _a === void 0 ? void 0 : _a.msg) || (errorObj === null || errorObj === void 0 ? void 0 : errorObj.msg) || String(error);
211
+ const errorCode = (errorObj === null || errorObj === void 0 ? void 0 : errorObj.code) || ((_b = errorObj === null || errorObj === void 0 ? void 0 : errorObj.error) === null || _b === void 0 ? void 0 : _b.code);
212
+ // Handle token expiry specifically
213
+ if (errorCode === 4001004 || errorMsg.includes('token expired')) {
214
+ if (this.debug) {
215
+ this.log.debug('Token expired, forcing new login');
216
+ }
217
+ // Clear token expiry time to force a new login
218
+ this.tokenExpiryTime = undefined;
219
+ // Use minimal backoff for token expiry
220
+ this.loginBackoffTime = 1000;
221
+ // Try immediate relogin
222
+ return this.ensureLogin(true);
223
+ }
198
224
  if (errorMsg.includes('Not logged in')) {
199
225
  if (this.debug) {
200
226
  this.log.debug('Session expired, forcing new login');
201
227
  }
202
- // Clear last login time to force a new login on next attempt
203
- this.lastLogin = new Date(0);
204
- // Use minimal backoff for session expiry
228
+ this.tokenExpiryTime = undefined;
205
229
  this.loginBackoffTime = Math.min(this.loginBackoffTime, 5000);
206
230
  return false;
207
231
  }
208
232
  // Increase backoff time exponentially, max 5 minutes
209
233
  this.loginBackoffTime = Math.min(this.loginBackoffTime * 2, 300000);
210
- const errorCode = ((_b = errorObj === null || errorObj === void 0 ? void 0 : errorObj.error) === null || _b === void 0 ? void 0 : _b.code) || (errorObj === null || errorObj === void 0 ? void 0 : errorObj.code);
211
- if (errorCode === 'ECONNRESET' || errorCode === 'ETIMEDOUT' || errorMsg.includes('timeout')) {
212
- this.log.warn('Network error during login, will retry with backoff:', errorMsg);
213
- }
214
- else if (errorMsg.includes('rate limit')) {
215
- this.log.warn('Hit API rate limit, will retry with longer backoff');
216
- this.loginBackoffTime = Math.max(this.loginBackoffTime, 60000); // At least 1 minute for rate limits
217
- }
218
- else {
219
- this.log.error('Failed to login:', errorMsg);
220
- }
234
+ this.log.error('Login error:', error);
221
235
  return false;
222
236
  }
223
237
  }
238
+ /**
239
+ * Handle operation retry with token refresh
240
+ */
241
+ async withTokenRefresh(operation) {
242
+ var _a;
243
+ try {
244
+ return await operation();
245
+ }
246
+ catch (error) {
247
+ const errorObj = error;
248
+ const errorCode = (errorObj === null || errorObj === void 0 ? void 0 : errorObj.code) || ((_a = errorObj === null || errorObj === void 0 ? void 0 : errorObj.error) === null || _a === void 0 ? void 0 : _a.code);
249
+ // If token expired, try to refresh and retry once
250
+ if (errorCode === 4001004 || ((errorObj === null || errorObj === void 0 ? void 0 : errorObj.msg) || '').includes('token expired')) {
251
+ if (this.debug) {
252
+ this.log.debug('Operation failed due to token expiry, attempting refresh and retry');
253
+ }
254
+ // Force new login
255
+ const loginSuccess = await this.ensureLogin(true);
256
+ if (loginSuccess) {
257
+ // Retry the operation
258
+ return await operation();
259
+ }
260
+ }
261
+ throw error;
262
+ }
263
+ }
224
264
  /**
225
265
  * Update device states from the API
226
- * @param isPolledUpdate Whether this update is from the polling interval
227
266
  */
228
267
  async updateDeviceStatesFromAPI(isPolledUpdate = false) {
229
- var _a, _b;
230
- try {
268
+ if (!this.isInitialized) {
231
269
  if (this.debug) {
232
- this.log.debug(isPolledUpdate ? 'Polling device states' : 'Updating device states on demand');
270
+ this.log.debug('Skipping device state update - platform not initialized');
233
271
  }
234
- // Try using cached login first
235
- let loginSuccess = await this.ensureLogin();
236
- if (!loginSuccess) {
237
- // If first login fails, try one more time with force login
238
- this.log.debug('Initial login failed, attempting forced login...');
239
- loginSuccess = await this.ensureLogin(true);
272
+ return;
273
+ }
274
+ try {
275
+ await this.withTokenRefresh(async () => {
276
+ // Ensure we're logged in
277
+ const loginSuccess = await this.ensureLogin();
240
278
  if (!loginSuccess) {
241
- this.log.error('Failed to login after retry, will attempt again later');
242
- return;
279
+ throw new Error('Failed to login for device state update');
243
280
  }
244
- }
245
- // Get fresh device list with retries
246
- let success = false;
247
- let retryCount = 0;
248
- const maxRetries = 3;
249
- let devices = [];
250
- while (!success && retryCount < maxRetries) {
251
- try {
252
- success = await this.client.getDevices();
253
- if (success) {
254
- devices = this.getAllDevices();
255
- if (devices.length === 0) {
256
- success = false;
257
- this.log.warn('Got successful response but no devices found');
258
- }
281
+ // Get all devices
282
+ const devices = await this.getAllDevices();
283
+ if (!devices || !devices.length) {
284
+ if (!isPolledUpdate) {
285
+ this.log.warn('No devices found during state update');
259
286
  }
260
- if (!success) {
261
- if (retryCount < maxRetries - 1) {
262
- this.log.debug(`Failed to get devices (attempt ${retryCount + 1}/${maxRetries}), retrying...`);
263
- await new Promise(resolve => setTimeout(resolve, Math.pow(2, retryCount) * 1000));
264
- }
265
- else {
266
- this.log.error('Failed to get devices after all retries');
267
- }
268
- }
269
- }
270
- catch (error) {
271
- const errorObj = error;
272
- const errorMsg = ((_a = errorObj === null || errorObj === void 0 ? void 0 : errorObj.error) === null || _a === void 0 ? void 0 : _a.msg) || (errorObj === null || errorObj === void 0 ? void 0 : errorObj.msg) || String(error);
273
- if (errorMsg.includes('Not logged in')) {
274
- this.log.debug('Session expired while getting devices, attempting re-login...');
275
- if (await this.ensureLogin(true)) {
276
- // Reset retry count if we successfully logged in again
277
- retryCount = 0;
278
- continue;
279
- }
280
- }
281
- if (retryCount < maxRetries - 1) {
282
- this.log.warn(`Error getting devices (attempt ${retryCount + 1}/${maxRetries}): ${errorMsg}, retrying...`);
283
- await new Promise(resolve => setTimeout(resolve, Math.pow(2, retryCount) * 1000));
284
- }
285
- else {
286
- throw error;
287
- }
288
- }
289
- retryCount++;
290
- }
291
- // If getting devices failed after retries, try forcing a new login
292
- if (!success) {
293
- this.log.debug('Failed to get devices after retries, trying to re-login...');
294
- if (!await this.ensureLogin(true)) {
295
- this.log.error('Failed to re-login');
296
287
  return;
297
288
  }
298
- success = await this.client.getDevices();
299
- if (!success) {
300
- this.log.error('Failed to get devices even after re-login');
301
- return;
289
+ if (this.debug) {
290
+ this.log.debug(`Updating states for ${devices.length} devices`);
302
291
  }
303
- devices = this.getAllDevices();
304
- }
305
- if (this.debug) {
306
- this.log.debug(`Found ${devices.length} devices to update`);
307
- }
308
- // Update each accessory's context with fresh state
309
- for (const accessory of this.accessories) {
310
- const device = devices.find(d => this.generateDeviceUUID(d) === accessory.UUID);
311
- if (device) {
312
- try {
313
- // Create fresh device context
314
- const context = this.createDeviceContext(device);
315
- // Only update if there are actual changes
316
- if (JSON.stringify(accessory.context.device) !== JSON.stringify(context)) {
317
- accessory.context.device = context;
318
- // Update platform accessories to persist changes
319
- this.api.updatePlatformAccessories([accessory]);
320
- // Notify the accessory of the update
321
- const deviceAccessory = this.deviceAccessories.get(accessory.UUID);
322
- if (deviceAccessory) {
323
- await deviceAccessory.syncDeviceState().catch(error => {
324
- this.log.error(`Failed to sync device state for ${device.deviceName}:`, error);
325
- });
326
- }
327
- if (this.debug) {
328
- this.log.debug(`Updated state for device: ${device.deviceName}`);
329
- }
292
+ // Update each device
293
+ for (const device of devices) {
294
+ const accessory = this.deviceAccessories.get(this.generateDeviceUUID(device));
295
+ if (accessory) {
296
+ try {
297
+ await accessory.syncDeviceState();
298
+ }
299
+ catch (error) {
300
+ this.log.error(`Failed to update state for device ${device.deviceName}:`, error);
330
301
  }
331
- }
332
- catch (error) {
333
- this.log.error(`Failed to update device state for ${device.deviceName}:`, error);
334
302
  }
335
303
  }
336
- }
304
+ });
337
305
  }
338
306
  catch (error) {
339
307
  const errorObj = error;
340
- const errorMsg = ((_b = errorObj === null || errorObj === void 0 ? void 0 : errorObj.error) === null || _b === void 0 ? void 0 : _b.msg) || (errorObj === null || errorObj === void 0 ? void 0 : errorObj.msg) || String(error);
341
- this.log.error('Failed to update device states:', errorMsg);
342
- // If this was a polled update, we'll let the next poll try again
343
- if (!isPolledUpdate) {
344
- throw error; // Re-throw for non-polled updates to handle at caller
308
+ const errorMsg = (errorObj === null || errorObj === void 0 ? void 0 : errorObj.msg) || String(error);
309
+ if (!isPolledUpdate || this.debug) {
310
+ this.log.error('Failed to update device states:', errorMsg);
345
311
  }
346
312
  }
347
313
  }
@@ -424,6 +390,26 @@ class TSVESyncPlatform {
424
390
  }
425
391
  return this.api.hap.uuid.generate(id);
426
392
  }
393
+ /**
394
+ * Check if token needs refresh and refresh if needed
395
+ */
396
+ async checkAndRefreshToken() {
397
+ if (!this.tokenExpiryTime) {
398
+ // If we don't have an expiry time, force a new login
399
+ if (this.debug) {
400
+ this.log.debug('No token expiry time, forcing new login');
401
+ }
402
+ await this.ensureLogin(true);
403
+ return;
404
+ }
405
+ const timeUntilExpiry = this.tokenExpiryTime.getTime() - Date.now();
406
+ if (timeUntilExpiry <= this.TOKEN_REFRESH_BUFFER) {
407
+ if (this.debug) {
408
+ this.log.debug(`Token expires in ${Math.floor(timeUntilExpiry / 1000)}s, refreshing`);
409
+ }
410
+ await this.ensureLogin(true);
411
+ }
412
+ }
427
413
  }
428
414
  exports.TSVESyncPlatform = TSVESyncPlatform;
429
415
  //# sourceMappingURL=platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -32,8 +32,8 @@ export interface VeSyncDeviceWithSpeed extends VeSyncDeviceWithPower {
32
32
  changeFanSpeed(value: number): Promise<boolean>;
33
33
  }
34
34
  export interface VeSyncDeviceWithRotation extends VeSyncDeviceWithPower {
35
- rotationDirection?: 'clockwise' | 'counterclockwise';
36
- setRotationDirection?(direction: 'clockwise' | 'counterclockwise'): Promise<boolean>;
35
+ rotationDirection: 'clockwise' | 'counterclockwise';
36
+ setRotationDirection(direction: 'clockwise' | 'counterclockwise'): Promise<boolean>;
37
37
  }
38
38
  export interface VeSyncDeviceWithHumidity extends VeSyncDeviceWithPower {
39
39
  humidity: number;
@@ -58,7 +58,11 @@ export interface VeSyncAirPurifier extends VeSyncDeviceWithPower, VeSyncDeviceWi
58
58
  }
59
59
  export interface VeSyncHumidifier extends VeSyncDeviceWithPower, VeSyncDeviceWithSpeed, VeSyncDeviceWithHumidity, VeSyncDeviceWithControls {
60
60
  }
61
- export interface VeSyncFan extends VeSyncDeviceWithPower, VeSyncDeviceWithSpeed, VeSyncDeviceWithRotation, VeSyncDeviceWithControls {
61
+ export interface VeSyncFan extends VeSyncDeviceWithPower, VeSyncDeviceWithSpeed, VeSyncDeviceWithRotation {
62
+ swingMode: boolean;
63
+ childLock: boolean;
64
+ setSwingMode(enabled: boolean): Promise<boolean>;
65
+ setChildLock(enabled: boolean): Promise<boolean>;
62
66
  }
63
67
  export interface VeSyncBulb extends VeSyncDeviceWithPower, VeSyncDeviceWithBrightness, VeSyncDeviceWithColor {
64
68
  }
@@ -67,4 +71,7 @@ export interface VeSyncOutlet extends VeSyncDeviceWithPower {
67
71
  voltage?: number;
68
72
  energy?: number;
69
73
  }
74
+ export interface VeSyncSwitch extends VeSyncDeviceWithPower {
75
+ power?: boolean;
76
+ }
70
77
  //# sourceMappingURL=device.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.types.d.ts","sourceRoot":"","sources":["../../src/types/device.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.types.d.ts","sourceRoot":"","sources":["../../src/types/device.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-tsvesync",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "description": "Homebridge plugin for VeSync devices including Levoit air purifiers, humidifiers, and Etekcity smart outlets",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {