homebridge-levoit-humidifiers 1.15.0 → 1.16.0-beta-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.
@@ -30,7 +30,9 @@ exports.BypassMethod = void 0;
30
30
  const axios_1 = __importDefault(require("axios"));
31
31
  const async_lock_1 = __importDefault(require("async-lock"));
32
32
  const uuid_1 = require("uuid");
33
- const crypto = __importStar(require("crypto"));
33
+ const crypto = __importStar(require("node:crypto"));
34
+ const fs = __importStar(require("node:fs"));
35
+ const path = __importStar(require("node:path"));
34
36
  const deviceTypes_1 = __importDefault(require("./deviceTypes"));
35
37
  const VeSyncFan_1 = __importDefault(require("./VeSyncFan"));
36
38
  var BypassMethod;
@@ -46,39 +48,42 @@ var BypassMethod;
46
48
  BypassMethod["LIGHT_STATUS"] = "setLightStatus";
47
49
  BypassMethod["DRYING_MODE"] = "setDryingMode";
48
50
  })(BypassMethod = exports.BypassMethod || (exports.BypassMethod = {}));
51
+ // Known API hosts
52
+ const US_HOST = 'https://smartapi.vesync.com';
53
+ const EU_HOST = 'https://smartapi.vesync.eu';
54
+ const ACCOUNT_HOST = 'https://accountapi.vesync.com';
55
+ // Start on US host for a small set of known non-EU regions – everyone else uses EU
49
56
  function initialHostForCountry(cc) {
50
57
  const upper = cc.toUpperCase();
51
58
  if (['US', 'CA', 'MX', 'JP'].includes(upper))
52
59
  return US_HOST;
53
60
  return EU_HOST; // everything else starts on EU
54
61
  }
55
- function pickCountryCodeForRetry(step2Resp, originalCC) {
56
- var _a, _b;
57
- const region = (((_a = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.result) === null || _a === void 0 ? void 0 : _a.currentRegion) || (step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.currentRegion) || '').toUpperCase();
58
- if (region === 'US')
59
- return 'US';
60
- // Prefer server-provided countryCode if present
61
- const serverCC = ((_b = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.result) === null || _b === void 0 ? void 0 : _b.countryCode) || (step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.countryCode);
62
- const cc = (serverCC || originalCC || '').toUpperCase();
63
- // Basic sanity: must be 2 letters; otherwise keep original if valid, else fallback to 'US'
64
- return /^[A-Z]{2}$/.test(cc) ? cc : (/^[A-Z]{2}$/.test(originalCC.toUpperCase()) ? originalCC.toUpperCase() : 'US');
65
- }
66
62
  const lock = new async_lock_1.default();
67
- // Known API hosts
68
- const US_HOST = 'https://smartapi.vesync.com';
69
- const EU_HOST = 'https://smartapi.vesync.eu';
70
- const ACCOUNT_HOST = 'https://accountapi.vesync.com';
71
- // Server error code indicating cross-region login is required
72
- const CROSS_REGION_CODE = -11260022;
73
- // Convert server region → host (default to US if unknown)
74
- function regionToHost(region) {
75
- if (typeof region === 'string' && region.toUpperCase() === 'EU')
76
- return EU_HOST;
77
- return US_HOST;
63
+ // Simple JWT timestamp decoder (best-effort, no verification)
64
+ function decodeJwtTimestamps(token) {
65
+ try {
66
+ const parts = token.split('.');
67
+ if (parts.length < 2)
68
+ return {};
69
+ const part = parts[1];
70
+ if (!part)
71
+ return {};
72
+ const payload = part
73
+ .replaceAll('-', '+')
74
+ .replaceAll('_', '/')
75
+ .padEnd(Math.ceil(part.length / 4) * 4, '=');
76
+ const json = Buffer.from(payload, 'base64').toString('utf8');
77
+ const obj = JSON.parse(json);
78
+ return { iat: obj.iat, exp: obj.exp };
79
+ }
80
+ catch (_a) {
81
+ return {};
82
+ }
78
83
  }
79
84
  class VeSync {
80
- constructor(email, password, config, debugMode, log) {
81
- var _a, _b, _c, _d;
85
+ constructor(email, password, config, debugMode, log, sessionPath) {
86
+ var _a, _b, _c, _d, _e;
82
87
  this.email = email;
83
88
  this.password = password;
84
89
  this.config = config;
@@ -92,12 +97,22 @@ class VeSync {
92
97
  this.BRAND = 'iPhone 15 Pro';
93
98
  this.LANG = 'en';
94
99
  // Terminal/device identifier that VeSync expects to remain stable
95
- this.terminalId = '2' + (0, uuid_1.v4)().replace(/-/g, '');
100
+ this.terminalId = '2' + (0, uuid_1.v4)().replaceAll('-', '');
96
101
  this.appID = Math.random().toString(36).substring(2, 10);
97
- // Allow explicit override via config.options.apiHost; otherwise start with US
102
+ // Simple login backoff so we don’t hammer the API on repeated failures
103
+ this.lastLoginAttempt = 0;
104
+ this.loginBackoffMs = 10000; // start at 10s, max 5min
105
+ // Treat tokens as valid up to ~25 days unless JWT says otherwise
106
+ this.TOKEN_MAX_AGE_MS = 25 * 24 * 60 * 60 * 1000;
98
107
  const cc = (((_a = config.options) === null || _a === void 0 ? void 0 : _a.countryCode) || 'US').toUpperCase();
108
+ this.countryCode = cc;
99
109
  this.baseURL = ((_b = config.options) === null || _b === void 0 ? void 0 : _b.apiHost) || initialHostForCountry(cc);
100
- (_d = (_c = this.debugMode).debug) === null || _d === void 0 ? void 0 : _d.call(_c, '[CONFIG]', `countryCode=${cc}, initialBaseURL=${this.baseURL}`);
110
+ // Session file path: use provided path, or config option, or default to cwd
111
+ this.sessionFilePath =
112
+ sessionPath ||
113
+ ((_c = config.options) === null || _c === void 0 ? void 0 : _c.sessionPath) ||
114
+ path.join(process.cwd(), 'vesync-session.json');
115
+ (_e = (_d = this.debugMode).debug) === null || _e === void 0 ? void 0 : _e.call(_d, '[CONFIG]', `countryCode=${cc}, initialBaseURL=${this.baseURL}, sessionFile=${this.sessionFilePath}`);
101
116
  }
102
117
  AXIOS_OPTIONS() {
103
118
  var _a;
@@ -156,6 +171,94 @@ class VeSync {
156
171
  },
157
172
  };
158
173
  }
174
+ // --- Session persistence ---------------------------------------------------
175
+ async loadSessionFromDisk() {
176
+ var _a;
177
+ if (!this.sessionFilePath)
178
+ return null;
179
+ try {
180
+ const raw = await fs.promises.readFile(this.sessionFilePath, 'utf8');
181
+ const session = JSON.parse(raw);
182
+ if (!session.token || !session.accountId || !session.baseURL) {
183
+ this.debugMode.debug('[SESSION]', 'Session file missing required fields, ignoring.');
184
+ return null;
185
+ }
186
+ const now = Date.now();
187
+ const { iat, exp } = decodeJwtTimestamps(session.token);
188
+ if (exp && exp * 1000 <= now) {
189
+ this.debugMode.debug('[SESSION]', 'Persisted token is expired, ignoring.');
190
+ return null;
191
+ }
192
+ // Also protect against extremely old tokens if exp is missing
193
+ const issuedMs = (_a = session.issuedAt) !== null && _a !== void 0 ? _a : (iat ? iat * 1000 : now);
194
+ if (now - issuedMs > this.TOKEN_MAX_AGE_MS * 1.5) {
195
+ this.debugMode.debug('[SESSION]', 'Persisted token appears too old, ignoring.');
196
+ return null;
197
+ }
198
+ this.debugMode.debug('[SESSION]', 'Loaded persisted session from disk.');
199
+ return session;
200
+ }
201
+ catch (e) {
202
+ const error = e;
203
+ if (error.code !== 'ENOENT') {
204
+ this.debugMode.debug('[SESSION]', 'Failed to load session from disk:', String(e));
205
+ }
206
+ return null;
207
+ }
208
+ }
209
+ async saveSessionToDisk() {
210
+ if (!this.sessionFilePath || !this.token || !this.accountId)
211
+ return;
212
+ try {
213
+ const { iat, exp } = decodeJwtTimestamps(this.token);
214
+ const session = {
215
+ token: this.token,
216
+ accountId: this.accountId,
217
+ countryCode: this.countryCode,
218
+ baseURL: this.baseURL,
219
+ issuedAt: iat !== null && iat !== void 0 ? iat : null,
220
+ expiresAt: exp !== null && exp !== void 0 ? exp : null,
221
+ lastValidatedAt: Date.now(),
222
+ };
223
+ await fs.promises.writeFile(this.sessionFilePath, JSON.stringify(session, null, 2), 'utf8');
224
+ this.debugMode.debug('[SESSION]', 'Persisted VeSync session to disk.');
225
+ }
226
+ catch (e) {
227
+ this.debugMode.debug('[SESSION]', 'Failed to save session to disk:', String(e));
228
+ }
229
+ }
230
+ buildApiClient() {
231
+ if (!this.token || !this.accountId) {
232
+ throw new Error('Cannot build API client without token/accountId');
233
+ }
234
+ this.api = axios_1.default.create({
235
+ ...this.AXIOS_OPTIONS(),
236
+ headers: {
237
+ 'content-type': 'application/json',
238
+ 'accept-language': this.LANG,
239
+ accountid: this.accountId,
240
+ 'user-agent': this.AGENT,
241
+ appversion: this.FULL_VERSION,
242
+ tz: this.TIMEZONE,
243
+ tk: this.token,
244
+ },
245
+ });
246
+ this.api.interceptors.response.use((resp) => resp, async (err) => {
247
+ var _a;
248
+ if (((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {
249
+ this.debugMode.debug('[AUTH]', '401 detected, re-authenticating…');
250
+ const ok = await this.login();
251
+ if (ok && err.config && this.api) {
252
+ err.config.headers = err.config.headers || {};
253
+ err.config.headers.tk = this.token;
254
+ err.config.headers.accountid = this.accountId;
255
+ return this.api.request(err.config);
256
+ }
257
+ }
258
+ throw err;
259
+ });
260
+ }
261
+ // --- Public API ------------------------------------------------------------
159
262
  async sendCommand(fan, method, body = {}) {
160
263
  return lock.acquire('api-call', async () => {
161
264
  var _a, _b, _c;
@@ -181,11 +284,11 @@ class VeSync {
181
284
  this.debugMode.debug('[SEND COMMAND]', 'No response data!! JSON:', JSON.stringify(response === null || response === void 0 ? void 0 : response.data));
182
285
  }
183
286
  const isSuccess = ((_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.code) === 0;
184
- if (!isSuccess) {
185
- this.debugMode.debug('[SEND COMMAND]', `Failed to send command ${method} to ${fan.name}`, `with (${JSON.stringify(body)})!`, `Response: ${JSON.stringify(response === null || response === void 0 ? void 0 : response.data)}`);
287
+ if (isSuccess) {
288
+ this.debugMode.debug('[SEND COMMAND]', `Successfully sent command ${method} to ${fan.name}`, `with (${JSON.stringify(body)})!`, `Response: ${JSON.stringify(response.data)}`);
186
289
  }
187
290
  else {
188
- this.debugMode.debug('[SEND COMMAND]', `Successfully sent command ${method} to ${fan.name}`, `with (${JSON.stringify(body)})!`, `Response: ${JSON.stringify(response.data)}`);
291
+ this.debugMode.debug('[SEND COMMAND]', `Failed to send command ${method} to ${fan.name}`, `with (${JSON.stringify(body)})!`, `Response: ${JSON.stringify(response === null || response === void 0 ? void 0 : response.data)}`);
189
292
  }
190
293
  return isSuccess;
191
294
  });
@@ -219,87 +322,121 @@ class VeSync {
219
322
  });
220
323
  }
221
324
  async startSession() {
222
- this.debugMode.debug('[START SESSION]', 'Starting auth session...');
325
+ var _a;
326
+ this.debugMode.debug('[START SESSION]', 'Starting auth session…');
327
+ // 1) Try to reuse persisted session
328
+ const session = await this.loadSessionFromDisk();
329
+ if (session) {
330
+ this.debugMode.debug('[SESSION]', 'Reusing persisted VeSync session.');
331
+ this.token = session.token;
332
+ this.accountId = session.accountId;
333
+ this.countryCode = (session.countryCode ||
334
+ this.countryCode ||
335
+ 'US').toUpperCase();
336
+ this.baseURL =
337
+ ((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.apiHost) || session.baseURL || this.baseURL;
338
+ try {
339
+ this.buildApiClient();
340
+ return true;
341
+ }
342
+ catch (e) {
343
+ this.debugMode.debug('[SESSION]', 'Failed to hydrate persisted session, falling back to fresh login:', String(e));
344
+ }
345
+ }
346
+ else {
347
+ this.debugMode.debug('[SESSION]', 'No valid persisted session found; logging in.');
348
+ }
349
+ // 2) Fresh login if no valid session
223
350
  const ok = await this.login();
224
- if (ok)
225
- setInterval(this.login.bind(this), 1000 * 60 * 55);
351
+ if (!ok) {
352
+ this.log.error('VeSync initial login failed check credentials / region.');
353
+ }
226
354
  return ok;
227
355
  }
356
+ // --- Login flow (auth + token + cross-region) ------------------------------
228
357
  async login() {
229
358
  return lock.acquire('auth-call', async () => {
230
- var _a, _b, _c, _d, _e, _f, _g, _h;
359
+ var _a, _b, _c, _d, _e;
231
360
  if (!this.email || !this.password) {
232
361
  throw new Error('Email and password are required');
233
362
  }
234
- const userCountryCode = (((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.countryCode) || 'US').toUpperCase();
363
+ // Avoid spamming VeSync on failing accounts
364
+ const now = Date.now();
365
+ const delta = now - this.lastLoginAttempt;
366
+ if (delta < this.loginBackoffMs) {
367
+ const wait = this.loginBackoffMs - delta;
368
+ this.debugMode.debug('[LOGIN]', `Backing off for ${wait}ms before next login attempt…`);
369
+ await new Promise((resolve) => setTimeout(resolve, wait));
370
+ }
371
+ this.lastLoginAttempt = Date.now();
372
+ const configuredCC = (((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.countryCode) ||
373
+ this.countryCode ||
374
+ 'US').toUpperCase();
375
+ this.countryCode = configuredCC;
235
376
  this.debugMode.debug('[LOGIN]', 'Step 1: authByPWDOrOTM…');
236
- const { authorizeCode, bizToken: initialBizToken } = await this.authByPWDOrOTM(userCountryCode);
377
+ const { authorizeCode, bizToken: initialBizToken } = await this.authByPWDOrOTM(this.countryCode);
237
378
  this.debugMode.debug('[LOGIN]', `Step 2: loginByAuthorizeCode on ${this.baseURL}…`);
238
379
  let step2Resp = await this.loginByAuthorizeCode4Vesync({
239
- userCountryCode,
380
+ userCountryCode: this.countryCode,
240
381
  authorizeCode,
241
382
  host: this.baseURL,
242
383
  });
243
- if ((step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.code) === CROSS_REGION_CODE) {
244
- const currentRegion = ((_b = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.result) === null || _b === void 0 ? void 0 : _b.currentRegion) ||
245
- ((_c = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.data) === null || _c === void 0 ? void 0 : _c.currentRegion) ||
246
- (step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.currentRegion);
247
- const crossBizToken = ((_d = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.result) === null || _d === void 0 ? void 0 : _d.bizToken) ||
248
- ((_e = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.data) === null || _e === void 0 ? void 0 : _e.bizToken) ||
249
- initialBizToken ||
250
- null;
251
- const regionHost = regionToHost(currentRegion);
252
- const overrideCC = pickCountryCodeForRetry(step2Resp, userCountryCode);
253
- this.debugMode.debug('[LOGIN]', `Cross-region detected (${currentRegion}). Retrying on ${regionHost} with bizToken and userCountryCode=${overrideCC} (regionChange=last_region)…`);
254
- this.baseURL = ((_f = this.config.options) === null || _f === void 0 ? void 0 : _f.apiHost) || regionHost;
384
+ this.debugMode.debug('[LOGIN]', 'Raw step 2 response:', JSON.stringify(step2Resp));
385
+ // Cross-region handling (similar to Python _login_token):
386
+ // If the server gives us a bizToken + countryCode, treat it as "cross region"
387
+ if (((_b = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.result) === null || _b === void 0 ? void 0 : _b.bizToken) && step2Resp.result.countryCode) {
388
+ const result = step2Resp.result;
389
+ const newCountryCode = ((_c = result.countryCode) !== null && _c !== void 0 ? _c : this.countryCode).toUpperCase();
390
+ const crossBizToken = result.bizToken || initialBizToken || null;
391
+ this.debugMode.debug('[LOGIN]', `Cross-region detected. Switching to countryCode=${newCountryCode} and retrying loginByAuthorizeCode4Vesync with regionChange=last_region…`);
392
+ const regionHost = initialHostForCountry(newCountryCode);
393
+ this.baseURL = ((_d = this.config.options) === null || _d === void 0 ? void 0 : _d.apiHost) || regionHost;
394
+ this.countryCode = newCountryCode;
255
395
  step2Resp = await this.loginByAuthorizeCode4Vesync({
256
- userCountryCode,
396
+ userCountryCode: this.countryCode,
257
397
  bizToken: crossBizToken,
258
398
  host: this.baseURL,
259
399
  regionChange: 'last_region',
260
- overrideCountryCode: overrideCC,
261
- currentRegion,
400
+ overrideCountryCode: newCountryCode,
401
+ currentRegion: result.currentRegion,
262
402
  });
403
+ this.debugMode.debug('[LOGIN]', 'Raw step 2 response after cross-region retry:', JSON.stringify(step2Resp));
263
404
  }
264
- if (!step2Resp || step2Resp.code !== 0 || !((_g = step2Resp.result) === null || _g === void 0 ? void 0 : _g.token) || !((_h = step2Resp.result) === null || _h === void 0 ? void 0 : _h.accountID)) {
405
+ if (!((_e = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.result) === null || _e === void 0 ? void 0 : _e.token) ||
406
+ step2Resp.code !== 0 ||
407
+ !step2Resp.result.accountID) {
265
408
  this.debugMode.debug('[LOGIN] Failed final step', JSON.stringify(step2Resp));
409
+ // increase backoff on failure (cap at 5 minutes)
410
+ this.loginBackoffMs = Math.min(this.loginBackoffMs * 2, 300000);
266
411
  return false;
267
412
  }
268
- const { token, accountID } = step2Resp.result;
413
+ // Reset backoff on success
414
+ this.loginBackoffMs = 10000;
415
+ const result = step2Resp.result;
416
+ if (!(result === null || result === void 0 ? void 0 : result.token) || !result.accountID) {
417
+ throw new Error('Invalid login response');
418
+ }
419
+ const { token, accountID, countryCode } = result;
269
420
  this.debugMode.debug('[LOGIN]', 'Authentication was successful');
270
421
  this.accountId = accountID;
271
422
  this.token = token;
272
- this.api = axios_1.default.create({
273
- ...this.AXIOS_OPTIONS(),
274
- headers: {
275
- 'content-type': 'application/json',
276
- 'accept-language': this.LANG,
277
- accountid: this.accountId,
278
- 'user-agent': this.AGENT,
279
- appversion: this.FULL_VERSION,
280
- tz: this.TIMEZONE,
281
- tk: this.token,
282
- },
283
- });
284
- this.api.interceptors.response.use((resp) => resp, async (err) => {
285
- var _a;
286
- if (((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {
287
- this.debugMode.debug('[AUTH]', '401 detected, re-authenticating…');
288
- const ok = await this.login();
289
- if (ok && err.config) {
290
- err.config.headers = err.config.headers || {};
291
- err.config.headers.tk = this.token;
292
- err.config.headers.accountid = this.accountId;
293
- return this.api.request(err.config);
294
- }
295
- }
296
- throw err;
297
- });
423
+ if (!this.token) {
424
+ throw new Error('No token found in login response');
425
+ }
426
+ if (countryCode) {
427
+ this.countryCode = countryCode.toUpperCase();
428
+ }
429
+ this.buildApiClient();
430
+ await this.saveSessionToDisk();
298
431
  return true;
299
432
  });
300
433
  }
301
434
  async authByPWDOrOTM(userCountryCode) {
302
- const pwdHashed = crypto.createHash('md5').update(this.password).digest('hex');
435
+ var _a;
436
+ const pwdHashed = crypto
437
+ .createHash('md5')
438
+ .update(this.password)
439
+ .digest('hex');
303
440
  const body = {
304
441
  email: this.email,
305
442
  method: 'authByPWDOrOTM',
@@ -332,7 +469,7 @@ class VeSync {
332
469
  this.debugMode.debug('[AUTH] accountapi failed, falling back to smartapi', String(e));
333
470
  resp = await axios_1.default.post('/globalPlatform/api/accountAuth/v1/authByPWDOrOTM', body, this.AXIOS_OPTIONS());
334
471
  }
335
- if (!(resp === null || resp === void 0 ? void 0 : resp.data) || resp.data.code !== 0 || !resp.data.result) {
472
+ if (!((_a = resp === null || resp === void 0 ? void 0 : resp.data) === null || _a === void 0 ? void 0 : _a.result) || resp.data.code !== 0) {
336
473
  this.debugMode.debug('[AUTH] Failed authByPWDOrOTM', JSON.stringify(resp === null || resp === void 0 ? void 0 : resp.data));
337
474
  throw new Error('VeSync authentication failed at step 1');
338
475
  }
@@ -376,6 +513,7 @@ class VeSync {
376
513
  return undefined;
377
514
  }
378
515
  }
516
+ // --- Devices ---------------------------------------------------------------
379
517
  async getDevices() {
380
518
  return lock.acquire('api-call', async () => {
381
519
  var _a, _b, _c;
@@ -401,7 +539,7 @@ class VeSync {
401
539
  const { list } = (_c = response.data.result) !== null && _c !== void 0 ? _c : { list: [] };
402
540
  this.debugMode.debug('[GET DEVICES]', 'Device List -> JSON:', JSON.stringify(list));
403
541
  const devices = list
404
- .filter(({ deviceType, type }) => !!deviceTypes_1.default.find(({ isValid }) => isValid(deviceType)) &&
542
+ .filter(({ deviceType, type }) => deviceTypes_1.default.some(({ isValid }) => isValid(deviceType)) &&
405
543
  type === 'wifi-air')
406
544
  .map(VeSyncFan_1.default.fromResponse(this));
407
545
  return devices;
@@ -1 +1 @@
1
- {"version":3,"file":"VeSync.js","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VeSync.js","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ export default class VeSyncFan {
32
32
  readonly model: string;
33
33
  readonly mac: string;
34
34
  readonly uuid: string;
35
- private lock;
35
+ private readonly lock;
36
36
  readonly deviceType: DeviceType;
37
37
  private lastCheck;
38
38
  private _displayOn;
@@ -64,7 +64,7 @@ export default class VeSyncFan {
64
64
  changeWarmMistLevel(warmMistLevel: number): Promise<boolean>;
65
65
  setLightStatus(action: string, brightness: number): Promise<boolean>;
66
66
  updateInfo(): Promise<void>;
67
- static fromResponse: (client: VeSync) => ({ deviceName, mode, deviceStatus, mistLevel, warmLevel, warmEnabled, brightnessLevel, humidity, targetHumidity, targetReached, lightOn, lightSpeed, red, blue, green, colorMode, colorSliderLocation, configModule, cid, deviceRegion, deviceType, macID, uuid, }: {
67
+ static readonly fromResponse: (client: VeSync) => ({ deviceName, mode, deviceStatus, mistLevel, warmLevel, warmEnabled, brightnessLevel, humidity, targetHumidity, targetReached, lightOn, lightSpeed, red, blue, green, colorMode, colorSliderLocation, configModule, cid, deviceRegion, deviceType, macID, uuid, }: {
68
68
  deviceName: any;
69
69
  mode: any;
70
70
  deviceStatus: any;
@@ -1 +1 @@
1
- {"version":3,"file":"VeSyncFan.d.ts","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VeSyncFan.d.ts","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":"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"}
@@ -352,15 +352,16 @@ class VeSyncFan {
352
352
  }
353
353
  async updateInfo() {
354
354
  return this.lock.acquire('update-info', async () => {
355
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
355
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9;
356
356
  try {
357
357
  if (Date.now() - this.lastCheck < 5 * 1000) {
358
358
  return;
359
359
  }
360
360
  const data = await this.client.getDeviceInfo(this);
361
361
  this.lastCheck = Date.now();
362
- if (!((_a = data === null || data === void 0 ? void 0 : data.result) === null || _a === void 0 ? void 0 : _a.result) &&
363
- this.client.config.options.showOffWhenDisconnected) {
362
+ const deviceResult = (_a = data === null || data === void 0 ? void 0 : data.result) === null || _a === void 0 ? void 0 : _a.result;
363
+ if (!deviceResult &&
364
+ ((_b = this.client.config.options) === null || _b === void 0 ? void 0 : _b.showOffWhenDisconnected)) {
364
365
  this._isOn = false;
365
366
  this._humidityLevel = 0;
366
367
  this._targetHumidity = 0;
@@ -370,40 +371,43 @@ class VeSyncFan {
370
371
  this._brightnessLevel = 0;
371
372
  return;
372
373
  }
373
- else if (!((_b = data === null || data === void 0 ? void 0 : data.result) === null || _b === void 0 ? void 0 : _b.result)) {
374
+ else if (!deviceResult) {
374
375
  return;
375
376
  }
376
- const result = (_c = data === null || data === void 0 ? void 0 : data.result) === null || _c === void 0 ? void 0 : _c.result;
377
- this._humidityLevel = result.humidity;
377
+ const result = deviceResult;
378
+ this._humidityLevel = (_c = result.humidity) !== null && _c !== void 0 ? _c : 0;
378
379
  // Fields are different on newer models
379
380
  if (deviceTypes_1.NewDevices.includes(this.model)) {
380
- this._targetHumidity = result.targetHumidity;
381
- this._displayOn = result.screenSwitch;
382
- this._mode = result.workMode;
383
- this._isOn = result.powerSwitch;
384
- this._targetReached = result.autoStopState;
385
- this._mistLevel = result.virtualLevel;
381
+ this._targetHumidity = (_d = result.targetHumidity) !== null && _d !== void 0 ? _d : 0;
382
+ this._displayOn = (_e = result.screenSwitch) !== null && _e !== void 0 ? _e : false;
383
+ this._mode = (_f = result.workMode) !== null && _f !== void 0 ? _f : Mode.Auto;
384
+ this._isOn = result.powerSwitch === 1;
385
+ this._targetReached = (_g = result.autoStopState) !== null && _g !== void 0 ? _g : false;
386
+ this._mistLevel = (_h = result.virtualLevel) !== null && _h !== void 0 ? _h : 0;
386
387
  }
387
388
  else {
388
- this._targetHumidity = (_d = result.configuration) === null || _d === void 0 ? void 0 : _d.auto_target_humidity;
389
- this._displayOn = result.display;
390
- this._mode = result.mode;
391
- this._isOn = result.enabled;
392
- this._targetReached = result.automatic_stop_reach_target;
393
- this._mistLevel = result.mist_virtual_level;
389
+ this._targetHumidity =
390
+ (_k = (_j = result.configuration) === null || _j === void 0 ? void 0 : _j.auto_target_humidity) !== null && _k !== void 0 ? _k : 0;
391
+ this._displayOn = (_l = result.display) !== null && _l !== void 0 ? _l : false;
392
+ this._mode = (_m = result.mode) !== null && _m !== void 0 ? _m : Mode.Auto;
393
+ this._isOn = (_o = result.enabled) !== null && _o !== void 0 ? _o : false;
394
+ this._targetReached =
395
+ (_p = result.automatic_stop_reach_target) !== null && _p !== void 0 ? _p : false;
396
+ this._mistLevel = (_q = result.mist_virtual_level) !== null && _q !== void 0 ? _q : 0;
394
397
  }
395
- this._warmLevel = result.warm_level;
396
- this._warmEnabled = result.warm_enabled;
398
+ this._warmLevel = (_r = result.warm_level) !== null && _r !== void 0 ? _r : 0;
399
+ this._warmEnabled = (_s = result.warm_enabled) !== null && _s !== void 0 ? _s : false;
397
400
  this._brightnessLevel =
398
- (_e = result.night_light_brightness) !== null && _e !== void 0 ? _e : (_f = result.rgbNightLight) === null || _f === void 0 ? void 0 : _f.brightness;
401
+ (_v = ((_t = result.night_light_brightness) !== null && _t !== void 0 ? _t : (_u = result.rgbNightLight) === null || _u === void 0 ? void 0 : _u.brightness)) !== null && _v !== void 0 ? _v : 0;
399
402
  // RGB Light Devices Only:
400
- this._lightOn = (_g = result.rgbNightLight) === null || _g === void 0 ? void 0 : _g.action;
401
- this._blue = (_h = result.rgbNightLight) === null || _h === void 0 ? void 0 : _h.blue;
402
- this._green = (_j = result.rgbNightLight) === null || _j === void 0 ? void 0 : _j.green;
403
- this._red = (_k = result.rgbNightLight) === null || _k === void 0 ? void 0 : _k.red;
404
- this._colorMode = (_l = result.rgbNightLight) === null || _l === void 0 ? void 0 : _l.colorMode;
405
- this._lightSpeed = (_m = result.rgbNightLight) === null || _m === void 0 ? void 0 : _m.speed;
406
- this._colorSliderLocation = (_o = result.rgbNightLight) === null || _o === void 0 ? void 0 : _o.colorSliderLocation;
403
+ this._lightOn = (_x = (_w = result.rgbNightLight) === null || _w === void 0 ? void 0 : _w.action) !== null && _x !== void 0 ? _x : 'off';
404
+ this._blue = (_z = (_y = result.rgbNightLight) === null || _y === void 0 ? void 0 : _y.blue) !== null && _z !== void 0 ? _z : 0;
405
+ this._green = (_1 = (_0 = result.rgbNightLight) === null || _0 === void 0 ? void 0 : _0.green) !== null && _1 !== void 0 ? _1 : 0;
406
+ this._red = (_3 = (_2 = result.rgbNightLight) === null || _2 === void 0 ? void 0 : _2.red) !== null && _3 !== void 0 ? _3 : 0;
407
+ this._colorMode = (_5 = (_4 = result.rgbNightLight) === null || _4 === void 0 ? void 0 : _4.colorMode) !== null && _5 !== void 0 ? _5 : '';
408
+ this._lightSpeed = (_7 = (_6 = result.rgbNightLight) === null || _6 === void 0 ? void 0 : _6.speed) !== null && _7 !== void 0 ? _7 : 0;
409
+ this._colorSliderLocation =
410
+ (_9 = (_8 = result.rgbNightLight) === null || _8 === void 0 ? void 0 : _8.colorSliderLocation) !== null && _9 !== void 0 ? _9 : 0;
407
411
  if (result.rgbNightLight) {
408
412
  const lightJson = {
409
413
  action: this._lightOn,
@@ -419,7 +423,8 @@ class VeSyncFan {
419
423
  }
420
424
  }
421
425
  catch (err) {
422
- this.client.log.error('Failed to updateInfo due to unreachable device: ' + (err === null || err === void 0 ? void 0 : err.message));
426
+ const message = err instanceof Error ? err.message : String(err);
427
+ this.client.log.error('Failed to updateInfo due to unreachable device: ' + message);
423
428
  if (this.client.config.options.showOffWhenDisconnected) {
424
429
  this._isOn = false;
425
430
  this._humidityLevel = 0;