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.
- package/.tool-versions +2 -1
- package/config.schema.json +6 -0
- package/dist/VeSyncAccessory.d.ts +8 -8
- package/dist/VeSyncAccessory.d.ts.map +1 -1
- package/dist/VeSyncAccessory.js +9 -9
- package/dist/VeSyncAccessory.js.map +1 -1
- package/dist/api/VeSync.d.ts +47 -2
- package/dist/api/VeSync.d.ts.map +1 -1
- package/dist/api/VeSync.js +222 -84
- package/dist/api/VeSync.js.map +1 -1
- package/dist/api/VeSyncFan.d.ts +2 -2
- package/dist/api/VeSyncFan.d.ts.map +1 -1
- package/dist/api/VeSyncFan.js +34 -29
- package/dist/api/VeSyncFan.js.map +1 -1
- package/dist/api/deviceTypes.d.ts +39 -29
- package/dist/api/deviceTypes.d.ts.map +1 -1
- package/dist/api/deviceTypes.js +73 -247
- package/dist/api/deviceTypes.js.map +1 -1
- package/dist/characteristics/LightBrightness.js +1 -1
- package/dist/characteristics/LightBrightness.js.map +1 -1
- package/dist/characteristics/SleepState.d.ts.map +1 -1
- package/dist/characteristics/SleepState.js +2 -2
- package/dist/characteristics/SleepState.js.map +1 -1
- package/dist/characteristics/WarmMistLevel.d.ts.map +1 -1
- package/dist/characteristics/WarmMistLevel.js +3 -2
- package/dist/characteristics/WarmMistLevel.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +51 -10
- package/dist/platform.js.map +1 -1
- package/package.json +1 -1
package/dist/api/VeSync.js
CHANGED
|
@@ -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
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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)().
|
|
100
|
+
this.terminalId = '2' + (0, uuid_1.v4)().replaceAll('-', '');
|
|
96
101
|
this.appID = Math.random().toString(36).substring(2, 10);
|
|
97
|
-
//
|
|
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
|
-
|
|
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 (
|
|
185
|
-
this.debugMode.debug('[SEND COMMAND]', `
|
|
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]', `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
const
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
const regionHost =
|
|
252
|
-
|
|
253
|
-
this.
|
|
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:
|
|
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 (!
|
|
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
|
-
|
|
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.
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
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
|
-
|
|
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) ||
|
|
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 }) =>
|
|
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;
|
package/dist/api/VeSync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeSync.js","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA6C;AAE7C,4DAAmC;AACnC,+BAAoC;AACpC,+CAAiC;AAEjC,gEAAwC;AAExC,4DAAoC;AAEpC,IAAY,YAWX;AAXD,WAAY,YAAY;IACtB,8CAA8B,CAAA;IAC9B,wCAAwB,CAAA;IACxB,kEAAkD,CAAA;IAClD,sCAAsB,CAAA;IACtB,oCAAoB,CAAA;IACpB,8CAA8B,CAAA;IAC9B,8CAA8B,CAAA;IAC9B,kCAAkB,CAAA;IAClB,+CAA+B,CAAA;IAC/B,6CAA6B,CAAA;AAC/B,CAAC,EAXW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAWvB;AAED,SAAS,qBAAqB,CAAC,EAAU;IACvC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7D,OAAO,OAAO,CAAC,CAAC,+BAA+B;AACjD,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAc,EAAE,UAAkB;;IACjE,MAAM,MAAM,GAAG,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,aAAa,MAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,CAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAClG,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,gDAAgD;IAChD,MAAM,QAAQ,GAAG,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,WAAW,MAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAA,CAAC;IAC1E,MAAM,EAAE,GAAG,CAAC,QAAQ,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAExD,2FAA2F;IAC3F,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtH,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,oBAAS,EAAE,CAAC;AAE7B,kBAAkB;AAClB,MAAM,OAAO,GAAG,6BAA6B,CAAC;AAC9C,MAAM,OAAO,GAAG,4BAA4B,CAAC;AAC7C,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAErD,8DAA8D;AAC9D,MAAM,iBAAiB,GAAG,CAAC,QAAQ,CAAC;AAEpC,0DAA0D;AAC1D,SAAS,YAAY,CAAC,MAAe;IACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAChF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAqB,MAAM;IAoBzB,YACmB,KAAa,EACb,QAAgB,EACxB,MAAsB,EACf,SAAoB,EACpB,GAAW;;QAJV,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAQ;QACxB,WAAM,GAAN,MAAM,CAAgB;QACf,cAAS,GAAT,SAAS,CAAW;QACpB,QAAG,GAAH,GAAG,CAAQ;QAjBZ,YAAO,GAAG,QAAQ,CAAC;QACnB,iBAAY,GAAG,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,UAAK,GAAG,UAAU,IAAI,CAAC,OAAO,wCAAwC,CAAC;QACvE,aAAQ,GAAG,kBAAkB,CAAC;QAC9B,OAAE,GAAG,YAAY,CAAC;QAClB,UAAK,GAAG,eAAe,CAAC;QACxB,SAAI,GAAG,IAAI,CAAC;QAE7B,kEAAkE;QACjD,eAAU,GAAG,GAAG,GAAG,IAAA,SAAM,GAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,UAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QASnE,8EAA8E;QAC9E,MAAM,EAAE,GAAG,CAAC,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,WAAW,KAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,OAAO,KAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACpE,MAAA,MAAA,IAAI,CAAC,SAAS,EAAC,KAAK,mDAAG,UAAU,EAAE,eAAe,EAAE,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC;IAEO,aAAa;;QACnB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,UAAU,KAAI,KAAK;SAClD,CAAC;IACJ,CAAC;IAEO,qBAAqB;;QAC3B,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,UAAU,KAAI,KAAK;YACjD,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,iBAAiB,EAAE,IAAI,CAAC,IAAI;gBAC5B,YAAY,EAAE,IAAI,CAAC,KAAK;gBACxB,UAAU,EAAE,IAAI,CAAC,YAAY;gBAC7B,EAAE,EAAE,IAAI,CAAC,QAAQ;aAClB;SACF,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,YAAY;YAC7B,UAAU,EAAE,IAAI,CAAC,KAAK;YACtB,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ;YACjC,OAAO,EAAE,IAAI,CAAC,EAAE;SACjB,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,WAAW,GAAG,KAAK;QACtC,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,IAAI;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,WAAW;gBACb,CAAC,CAAC;oBACA,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB;gBACD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,GAAc,EAAE,MAAoB,EAAE,IAAI,GAAG,EAAE;QACpE,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,GAAG,CAAC,MAAM;YACxB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,OAAO,EAAE;gBACP,IAAI,EAAE;oBACJ,GAAG,IAAI;iBACR;gBACD,MAAM;gBACN,MAAM,EAAE,KAAK;aACd;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,GAAc,EACd,MAAoB,EACpB,IAAI,GAAG,EAAE;QAET,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;;YACzC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;aAC/C;YAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,gBAAgB,EAChB,mBAAmB,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,EAC1C,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CACpC,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iCAAiC,EAAE;gBACrE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;gBACzC,GAAG,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YAEH,IAAI,CAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,GAAG,MAAK,gBAAgB,EAAE;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,kEAAkE,CACnE,CAAC;gBACF,IAAI,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,uBAAuB,EAAE;oBAChD,OAAO,KAAK,CAAC;iBACd;qBAAM;oBACL,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;iBACH;aACF;YAED,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,gBAAgB,EAChB,0BAA0B,EAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAC/B,CAAC;aACH;YAED,MAAM,SAAS,GAAG,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,MAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,gBAAgB,EAChB,0BAA0B,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,EACjD,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EACjC,aAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,EAAE,CAC9C,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,gBAAgB,EAChB,6BAA6B,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,EACpD,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EACjC,aAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAC7C,CAAC;aACH;YAED,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,GAAc;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;;YACzC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;aAC/C;YAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC;YAEpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE;gBACtE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC;gBAChD,GAAG,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAErE,IAAI,CAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,GAAG,MAAK,gBAAgB,EAAE;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,kEAAkE,CACnE,CAAC;gBACF,IAAI,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,uBAAuB,EAAE;oBAChD,OAAO,KAAK,CAAC;iBACd;qBAAM;oBACL,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;iBACH;aACF;YAED,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,mBAAmB,EACnB,0BAA0B,EAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAC/B,CAAC;aACH;YAED,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;QACpE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,EAAE;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;;YAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;aACpD;YAED,MAAM,eAAe,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,WAAW,KAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAEjF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;YAC3D,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,GAChD,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,mCAAmC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACpF,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;gBACrD,eAAe;gBACf,aAAa;gBACb,IAAI,EAAE,IAAI,CAAC,OAAO;aACnB,CAAC,CAAC;YAEH,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,iBAAiB,EAAE;gBACzC,MAAM,aAAa,GACjB,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,aAAa;qBAChC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,aAAa,CAAA;qBAC9B,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,CAAA,CAAC;gBAE3B,MAAM,aAAa,GACjB,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,QAAQ;qBAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,QAAQ,CAAA;oBACzB,eAAe;oBACf,IAAI,CAAC;gBAEP,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,uBAAuB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBAEvE,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,SAAS,EACT,0BAA0B,aAAa,kBAAkB,UAAU,sCAAsC,UAAU,8BAA8B,CAClJ,CAAC;gBAEF,IAAI,CAAC,OAAO,GAAG,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,OAAkB,KAAI,UAAU,CAAC;gBAEtE,SAAS,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC;oBACjD,eAAe;oBACf,QAAQ,EAAE,aAAa;oBACvB,IAAI,EAAE,IAAI,CAAC,OAAO;oBAClB,YAAY,EAAE,aAAa;oBAC3B,mBAAmB,EAAE,UAAU;oBAC/B,aAAa;iBACd,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,KAAK,CAAA,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,SAAS,CAAA,EAAE;gBAClG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7E,OAAO,KAAK,CAAC;aACd;YAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;YAE9C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;YAEjE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,GAAG,GAAG,eAAK,CAAC,MAAM,CAAC;gBACtB,GAAG,IAAI,CAAC,aAAa,EAAE;gBACvB,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,iBAAiB,EAAE,IAAI,CAAC,IAAI;oBAC5B,SAAS,EAAE,IAAI,CAAC,SAAU;oBAC1B,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,UAAU,EAAE,IAAI,CAAC,YAAY;oBAC7B,EAAE,EAAE,IAAI,CAAC,QAAQ;oBACjB,EAAE,EAAE,IAAI,CAAC,KAAM;iBAChB;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EACd,KAAK,EAAE,GAAG,EAAE,EAAE;;gBACZ,IAAI,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE;oBACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;oBACnE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC9B,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;wBACpB,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;wBAC9C,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,KAAM,CAAC;wBACpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAU,CAAC;wBAC/C,OAAO,IAAI,CAAC,GAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;qBACtC;iBACF;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC,CACF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,eAAuB;QAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,IAAI,CAAC,IAAI;YACzB,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,SAAS;YAC3B,UAAU,EAAE,IAAI,CAAC,KAAK;YACtB,UAAU,EAAE,WAAW;YACvB,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACnD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,EAAE;YACT,eAAe;YACf,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,GAAG,IAAI,CAAC,kBAAkB,EAAE;SAC7B,CAAC;QAEF,2DAA2D;QAC3D,IAAI,IAAI,CAAC;QACT,IAAI;YACF,IAAI,GAAG,MAAM,eAAK,CAAC,IAAI,CACrB,mDAAmD,EACnD,IAAI,EACJ,IAAI,CAAC,qBAAqB,EAAE,CAC7B,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,2DAA2D;YAC3D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,oDAAoD,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,GAAG,MAAM,eAAK,CAAC,IAAI,CACrB,mDAAmD,EACnD,IAAI,EACJ,IAAI,CAAC,aAAa,EAAE,CACrB,CAAC;SACH;QAED,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;QAED,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,IAQzC;;QACC,MAAM,EACJ,eAAe,EACf,IAAI,EACJ,aAAa,GAAG,IAAI,EACpB,QAAQ,GAAG,IAAI,EACf,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACd,GAAG,IAAI,CAAC;QAET,MAAM,IAAI,GAAQ;YAChB,MAAM,EAAE,6BAA6B;YACrC,aAAa;YACb,cAAc,EAAE,IAAI,CAAC,IAAI;YACzB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,IAAI,CAAC,KAAK;YACtB,UAAU,EAAE,WAAW;YACvB,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK;YAChB,kBAAkB,EAAE,KAAK;YACzB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACnD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,EAAE;YACT,eAAe,EAAE,mBAAmB,IAAI,eAAe;YACvD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,GAAG,IAAI,CAAC,kBAAkB,EAAE;SAC7B,CAAC;QAEF,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;QAED,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC,IAAI,CAC3B,wDAAwD,EACxD,IAAI,EACJ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,UAAU,KAAI,KAAK,EAAE,CACrE,CAAC;YACF,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC;SACnB;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;;YACzC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC7C,OAAO,EAAE,CAAC;aACX;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE;gBACrE,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,IAAI;gBACd,GAAG,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YAEH,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,eAAe,EACf,0BAA0B,EAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAC/B,CAAC;gBACF,OAAO,EAAE,CAAC;aACX;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,MAAM,0CAAE,IAAI,CAAC,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,eAAe,EACf,uBAAuB,EACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9B,CAAC;gBACF,OAAO,EAAE,CAAC;aACX;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,mCAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAEtD,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,eAAe,EACf,sBAAsB,EACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI;iBACjB,MAAM,CACL,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CACvB,CAAC,CAAC,qBAAW,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,KAAK,UAAU,CACtB;iBACA,GAAG,CAAC,mBAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YAErC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAldD,yBAkdC"}
|
|
1
|
+
{"version":3,"file":"VeSync.js","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"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"}
|
package/dist/api/VeSyncFan.d.ts
CHANGED
|
@@ -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":"AACA,OAAoB,EAAc,UAAU,EAAc,MAAM,eAAe,CAAC;AAEhF,OAAO,MAAwB,MAAM,UAAU,CAAC;AAEhD,oBAAY,IAAI;IACd,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;IA8E1B,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,oBAAoB;aACZ,YAAY,EAAE,MAAM;aACpB,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,MAAM;aACb,GAAG,EAAE,MAAM;aACX,IAAI,EAAE,MAAM;IApG9B,OAAO,CAAC,IAAI,CAA8B;
|
|
1
|
+
{"version":3,"file":"VeSyncFan.d.ts","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":"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"}
|
package/dist/api/VeSyncFan.js
CHANGED
|
@@ -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
|
-
|
|
363
|
-
|
|
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 (!
|
|
374
|
+
else if (!deviceResult) {
|
|
374
375
|
return;
|
|
375
376
|
}
|
|
376
|
-
const 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 =
|
|
389
|
-
|
|
390
|
-
this.
|
|
391
|
-
this.
|
|
392
|
-
this.
|
|
393
|
-
this.
|
|
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
|
-
(
|
|
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 = (
|
|
401
|
-
this._blue = (
|
|
402
|
-
this._green = (
|
|
403
|
-
this._red = (
|
|
404
|
-
this._colorMode = (
|
|
405
|
-
this._lightSpeed = (
|
|
406
|
-
this._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
|
-
|
|
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;
|