tsvesync 1.0.42 → 1.0.43
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/dist/lib/vesyncFanImpl.d.ts +5 -37
- package/dist/lib/vesyncFanImpl.js +18 -134
- package/package.json +1 -1
- package/src/lib/vesyncFanImpl.ts +19 -150
|
@@ -12,10 +12,6 @@ export declare class VeSyncAirBypass extends VeSyncFan {
|
|
|
12
12
|
protected readonly displayModes: readonly ["on", "off"];
|
|
13
13
|
protected readonly childLockModes: readonly ["on", "off"];
|
|
14
14
|
constructor(details: Record<string, any>, manager: VeSync);
|
|
15
|
-
/**
|
|
16
|
-
* Build API dictionary
|
|
17
|
-
*/
|
|
18
|
-
protected buildApiDict(method: string): [Record<string, any>, Record<string, any>];
|
|
19
15
|
/**
|
|
20
16
|
* Get device details
|
|
21
17
|
*/
|
|
@@ -61,21 +57,17 @@ export declare class VeSyncAirBypass extends VeSyncFan {
|
|
|
61
57
|
*/
|
|
62
58
|
automaticStopOff(): Promise<boolean>;
|
|
63
59
|
/**
|
|
64
|
-
* Set mode
|
|
60
|
+
* Set auto mode
|
|
65
61
|
*/
|
|
66
|
-
|
|
62
|
+
autoMode(): Promise<boolean>;
|
|
67
63
|
/**
|
|
68
64
|
* Set manual mode
|
|
69
65
|
*/
|
|
70
|
-
|
|
66
|
+
manualMode(): Promise<boolean>;
|
|
71
67
|
/**
|
|
72
68
|
* Set sleep mode
|
|
73
69
|
*/
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Set auto mode
|
|
77
|
-
*/
|
|
78
|
-
auto_mode(): Promise<boolean>;
|
|
70
|
+
sleepMode(): Promise<boolean>;
|
|
79
71
|
/**
|
|
80
72
|
* Turn off display
|
|
81
73
|
*/
|
|
@@ -84,10 +76,6 @@ export declare class VeSyncAirBypass extends VeSyncFan {
|
|
|
84
76
|
* Turn on display
|
|
85
77
|
*/
|
|
86
78
|
turnOnDisplay(): Promise<boolean>;
|
|
87
|
-
/**
|
|
88
|
-
* Display device info
|
|
89
|
-
*/
|
|
90
|
-
display(): void;
|
|
91
79
|
}
|
|
92
80
|
/**
|
|
93
81
|
* VeSync Humidifier Base Class
|
|
@@ -165,10 +153,6 @@ export declare class VeSyncHumidifier extends VeSyncFan {
|
|
|
165
153
|
* Set manual mode
|
|
166
154
|
*/
|
|
167
155
|
setManualMode(): Promise<boolean>;
|
|
168
|
-
/**
|
|
169
|
-
* Set sleep mode
|
|
170
|
-
*/
|
|
171
|
-
sleepMode(): Promise<boolean>;
|
|
172
156
|
/**
|
|
173
157
|
* Turn off display
|
|
174
158
|
*/
|
|
@@ -251,23 +235,7 @@ export declare class VeSyncAirBaseV2 extends VeSyncAirBypass {
|
|
|
251
235
|
/**
|
|
252
236
|
* Set mode
|
|
253
237
|
*/
|
|
254
|
-
mode_toggle(mode: string): Promise<boolean>;
|
|
255
|
-
/**
|
|
256
|
-
* Set manual mode
|
|
257
|
-
*/
|
|
258
|
-
manual_mode(): Promise<boolean>;
|
|
259
|
-
/**
|
|
260
|
-
* Set sleep mode
|
|
261
|
-
*/
|
|
262
|
-
sleep_mode(): Promise<boolean>;
|
|
263
|
-
/**
|
|
264
|
-
* Set auto mode
|
|
265
|
-
*/
|
|
266
|
-
auto_mode(): Promise<boolean>;
|
|
267
|
-
/**
|
|
268
|
-
* Set turbo mode
|
|
269
|
-
*/
|
|
270
|
-
turbo_mode(): Promise<boolean>;
|
|
238
|
+
protected mode_toggle(mode: string): Promise<boolean>;
|
|
271
239
|
}
|
|
272
240
|
/**
|
|
273
241
|
* VeSync Tower Fan Implementation
|
|
@@ -19,23 +19,6 @@ class VeSyncAirBypass extends vesyncFan_1.VeSyncFan {
|
|
|
19
19
|
this.childLockModes = ['on', 'off'];
|
|
20
20
|
logger_1.logger.debug(`Initialized VeSyncAirBypass device: ${this.deviceName}`);
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Build API dictionary
|
|
24
|
-
*/
|
|
25
|
-
buildApiDict(method) {
|
|
26
|
-
const head = helpers_1.Helpers.reqHeaderBypass();
|
|
27
|
-
const body = {
|
|
28
|
-
...helpers_1.Helpers.reqBody(this.manager, 'bypassV2'),
|
|
29
|
-
deviceId: this.cid,
|
|
30
|
-
configModule: this.configModule,
|
|
31
|
-
payload: {
|
|
32
|
-
method,
|
|
33
|
-
source: 'APP',
|
|
34
|
-
data: {}
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
return [head, body];
|
|
38
|
-
}
|
|
39
22
|
/**
|
|
40
23
|
* Get device details
|
|
41
24
|
*/
|
|
@@ -423,79 +406,37 @@ class VeSyncAirBypass extends vesyncFan_1.VeSyncFan {
|
|
|
423
406
|
return success;
|
|
424
407
|
}
|
|
425
408
|
/**
|
|
426
|
-
* Set mode
|
|
409
|
+
* Set auto mode
|
|
427
410
|
*/
|
|
428
|
-
async
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
const [head, body] = this.buildApiDict('setPurifierMode');
|
|
434
|
-
if (!head || !body) {
|
|
435
|
-
return false;
|
|
436
|
-
}
|
|
437
|
-
if (mode === 'manual') {
|
|
438
|
-
body.payload = {
|
|
439
|
-
data: {
|
|
440
|
-
id: 0,
|
|
441
|
-
level: 1,
|
|
442
|
-
type: 'wind'
|
|
443
|
-
},
|
|
444
|
-
method: 'setLevel',
|
|
445
|
-
type: 'APP'
|
|
446
|
-
};
|
|
447
|
-
}
|
|
448
|
-
else {
|
|
449
|
-
body.payload.data = {
|
|
450
|
-
mode: mode.toLowerCase()
|
|
451
|
-
};
|
|
452
|
-
}
|
|
453
|
-
const [response, status] = await this.callApi('/cloud/v2/deviceManaged/bypassV2', 'post', body, head);
|
|
454
|
-
const success = this.checkResponse([response, status], 'mode_toggle');
|
|
455
|
-
if (success) {
|
|
456
|
-
if (mode === 'manual') {
|
|
457
|
-
this.details.speed = 1;
|
|
458
|
-
this.details.mode = 'manual';
|
|
459
|
-
}
|
|
460
|
-
else {
|
|
461
|
-
this.details.mode = mode;
|
|
462
|
-
this.details.speed = 0;
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
else {
|
|
466
|
-
logger_1.logger.debug('Error setting purifier mode');
|
|
411
|
+
async autoMode() {
|
|
412
|
+
logger_1.logger.debug(`Setting auto mode for device: ${this.deviceName}`);
|
|
413
|
+
const success = await this.setMode('auto');
|
|
414
|
+
if (!success) {
|
|
415
|
+
logger_1.logger.error(`Failed to set auto mode for device: ${this.deviceName}`);
|
|
467
416
|
}
|
|
468
417
|
return success;
|
|
469
418
|
}
|
|
470
419
|
/**
|
|
471
420
|
* Set manual mode
|
|
472
421
|
*/
|
|
473
|
-
async
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
422
|
+
async manualMode() {
|
|
423
|
+
logger_1.logger.debug(`Setting manual mode for device: ${this.deviceName}`);
|
|
424
|
+
const success = await this.setMode('manual');
|
|
425
|
+
if (!success) {
|
|
426
|
+
logger_1.logger.error(`Failed to set manual mode for device: ${this.deviceName}`);
|
|
477
427
|
}
|
|
478
|
-
return
|
|
428
|
+
return success;
|
|
479
429
|
}
|
|
480
430
|
/**
|
|
481
431
|
* Set sleep mode
|
|
482
432
|
*/
|
|
483
|
-
async
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
return this.mode_toggle('sleep');
|
|
489
|
-
}
|
|
490
|
-
/**
|
|
491
|
-
* Set auto mode
|
|
492
|
-
*/
|
|
493
|
-
async auto_mode() {
|
|
494
|
-
if (!this.modes.includes('auto')) {
|
|
495
|
-
logger_1.logger.debug(`${this.deviceName} does not have auto mode`);
|
|
496
|
-
return false;
|
|
433
|
+
async sleepMode() {
|
|
434
|
+
logger_1.logger.debug(`Setting sleep mode for device: ${this.deviceName}`);
|
|
435
|
+
const success = await this.setMode('sleep');
|
|
436
|
+
if (!success) {
|
|
437
|
+
logger_1.logger.error(`Failed to set sleep mode for device: ${this.deviceName}`);
|
|
497
438
|
}
|
|
498
|
-
return
|
|
439
|
+
return success;
|
|
499
440
|
}
|
|
500
441
|
/**
|
|
501
442
|
* Turn off display
|
|
@@ -519,24 +460,6 @@ class VeSyncAirBypass extends vesyncFan_1.VeSyncFan {
|
|
|
519
460
|
}
|
|
520
461
|
return success;
|
|
521
462
|
}
|
|
522
|
-
/**
|
|
523
|
-
* Display device info
|
|
524
|
-
*/
|
|
525
|
-
display() {
|
|
526
|
-
super.display();
|
|
527
|
-
const info = [
|
|
528
|
-
['Mode: ', this.details.mode || ''],
|
|
529
|
-
['Speed: ', this.speed],
|
|
530
|
-
['Filter Life: ', this.filterLife || 0, '%'],
|
|
531
|
-
['Air Quality: ', this.details.air_quality || ''],
|
|
532
|
-
['Display: ', this.details.display || false],
|
|
533
|
-
['Child Lock: ', this.details.child_lock || false],
|
|
534
|
-
['Night Light: ', this.details.night_light || 'off']
|
|
535
|
-
];
|
|
536
|
-
for (const [key, value, unit = ''] of info) {
|
|
537
|
-
logger_1.logger.info(`${key.toString().padEnd(30, '.')} ${value}${unit}`);
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
463
|
}
|
|
541
464
|
exports.VeSyncAirBypass = VeSyncAirBypass;
|
|
542
465
|
/**
|
|
@@ -914,17 +837,6 @@ class VeSyncHumidifier extends vesyncFan_1.VeSyncFan {
|
|
|
914
837
|
}
|
|
915
838
|
return success;
|
|
916
839
|
}
|
|
917
|
-
/**
|
|
918
|
-
* Set sleep mode
|
|
919
|
-
*/
|
|
920
|
-
async sleepMode() {
|
|
921
|
-
logger_1.logger.debug(`Setting sleep mode for device: ${this.deviceName}`);
|
|
922
|
-
const success = await this.setMode('sleep');
|
|
923
|
-
if (!success) {
|
|
924
|
-
logger_1.logger.error(`Failed to set sleep mode for device: ${this.deviceName}`);
|
|
925
|
-
}
|
|
926
|
-
return success;
|
|
927
|
-
}
|
|
928
840
|
/**
|
|
929
841
|
* Turn off display
|
|
930
842
|
*/
|
|
@@ -1210,34 +1122,6 @@ class VeSyncAirBaseV2 extends VeSyncAirBypass {
|
|
|
1210
1122
|
}
|
|
1211
1123
|
return success;
|
|
1212
1124
|
}
|
|
1213
|
-
/**
|
|
1214
|
-
* Set manual mode
|
|
1215
|
-
*/
|
|
1216
|
-
async manual_mode() {
|
|
1217
|
-
return this.mode_toggle('manual');
|
|
1218
|
-
}
|
|
1219
|
-
/**
|
|
1220
|
-
* Set sleep mode
|
|
1221
|
-
*/
|
|
1222
|
-
async sleep_mode() {
|
|
1223
|
-
return this.mode_toggle('sleep');
|
|
1224
|
-
}
|
|
1225
|
-
/**
|
|
1226
|
-
* Set auto mode
|
|
1227
|
-
*/
|
|
1228
|
-
async auto_mode() {
|
|
1229
|
-
if (!this.modes.includes('auto')) {
|
|
1230
|
-
logger_1.logger.debug(`${this.deviceName} does not have auto mode`);
|
|
1231
|
-
return false;
|
|
1232
|
-
}
|
|
1233
|
-
return this.mode_toggle('auto');
|
|
1234
|
-
}
|
|
1235
|
-
/**
|
|
1236
|
-
* Set turbo mode
|
|
1237
|
-
*/
|
|
1238
|
-
async turbo_mode() {
|
|
1239
|
-
return this.mode_toggle('turbo');
|
|
1240
|
-
}
|
|
1241
1125
|
}
|
|
1242
1126
|
exports.VeSyncAirBaseV2 = VeSyncAirBaseV2;
|
|
1243
1127
|
/**
|
package/package.json
CHANGED
package/src/lib/vesyncFanImpl.ts
CHANGED
|
@@ -21,24 +21,6 @@ export class VeSyncAirBypass extends VeSyncFan {
|
|
|
21
21
|
logger.debug(`Initialized VeSyncAirBypass device: ${this.deviceName}`);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
/**
|
|
25
|
-
* Build API dictionary
|
|
26
|
-
*/
|
|
27
|
-
protected buildApiDict(method: string): [Record<string, any>, Record<string, any>] {
|
|
28
|
-
const head = Helpers.reqHeaderBypass();
|
|
29
|
-
const body = {
|
|
30
|
-
...Helpers.reqBody(this.manager, 'bypassV2'),
|
|
31
|
-
deviceId: this.cid,
|
|
32
|
-
configModule: this.configModule,
|
|
33
|
-
payload: {
|
|
34
|
-
method,
|
|
35
|
-
source: 'APP',
|
|
36
|
-
data: {}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
return [head, body];
|
|
40
|
-
}
|
|
41
|
-
|
|
42
24
|
/**
|
|
43
25
|
* Get device details
|
|
44
26
|
*/
|
|
@@ -533,53 +515,13 @@ export class VeSyncAirBypass extends VeSyncFan {
|
|
|
533
515
|
}
|
|
534
516
|
|
|
535
517
|
/**
|
|
536
|
-
* Set mode
|
|
518
|
+
* Set auto mode
|
|
537
519
|
*/
|
|
538
|
-
async
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
const [head, body] = this.buildApiDict('setPurifierMode');
|
|
545
|
-
if (!head || !body) {
|
|
546
|
-
return false;
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
if (mode === 'manual') {
|
|
550
|
-
body.payload = {
|
|
551
|
-
data: {
|
|
552
|
-
id: 0,
|
|
553
|
-
level: 1,
|
|
554
|
-
type: 'wind'
|
|
555
|
-
},
|
|
556
|
-
method: 'setLevel',
|
|
557
|
-
type: 'APP'
|
|
558
|
-
};
|
|
559
|
-
} else {
|
|
560
|
-
body.payload.data = {
|
|
561
|
-
mode: mode.toLowerCase()
|
|
562
|
-
};
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
const [response, status] = await this.callApi(
|
|
566
|
-
'/cloud/v2/deviceManaged/bypassV2',
|
|
567
|
-
'post',
|
|
568
|
-
body,
|
|
569
|
-
head
|
|
570
|
-
);
|
|
571
|
-
|
|
572
|
-
const success = this.checkResponse([response, status], 'mode_toggle');
|
|
573
|
-
if (success) {
|
|
574
|
-
if (mode === 'manual') {
|
|
575
|
-
this.details.speed = 1;
|
|
576
|
-
this.details.mode = 'manual';
|
|
577
|
-
} else {
|
|
578
|
-
this.details.mode = mode;
|
|
579
|
-
this.details.speed = 0;
|
|
580
|
-
}
|
|
581
|
-
} else {
|
|
582
|
-
logger.debug('Error setting purifier mode');
|
|
520
|
+
async autoMode(): Promise<boolean> {
|
|
521
|
+
logger.debug(`Setting auto mode for device: ${this.deviceName}`);
|
|
522
|
+
const success = await this.setMode('auto');
|
|
523
|
+
if (!success) {
|
|
524
|
+
logger.error(`Failed to set auto mode for device: ${this.deviceName}`);
|
|
583
525
|
}
|
|
584
526
|
return success;
|
|
585
527
|
}
|
|
@@ -587,34 +529,25 @@ export class VeSyncAirBypass extends VeSyncFan {
|
|
|
587
529
|
/**
|
|
588
530
|
* Set manual mode
|
|
589
531
|
*/
|
|
590
|
-
async
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
532
|
+
async manualMode(): Promise<boolean> {
|
|
533
|
+
logger.debug(`Setting manual mode for device: ${this.deviceName}`);
|
|
534
|
+
const success = await this.setMode('manual');
|
|
535
|
+
if (!success) {
|
|
536
|
+
logger.error(`Failed to set manual mode for device: ${this.deviceName}`);
|
|
594
537
|
}
|
|
595
|
-
return
|
|
538
|
+
return success;
|
|
596
539
|
}
|
|
597
540
|
|
|
598
541
|
/**
|
|
599
542
|
* Set sleep mode
|
|
600
543
|
*/
|
|
601
|
-
async
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
return this.mode_toggle('sleep');
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
/**
|
|
610
|
-
* Set auto mode
|
|
611
|
-
*/
|
|
612
|
-
async auto_mode(): Promise<boolean> {
|
|
613
|
-
if (!this.modes.includes('auto')) {
|
|
614
|
-
logger.debug(`${this.deviceName} does not have auto mode`);
|
|
615
|
-
return false;
|
|
544
|
+
async sleepMode(): Promise<boolean> {
|
|
545
|
+
logger.debug(`Setting sleep mode for device: ${this.deviceName}`);
|
|
546
|
+
const success = await this.setMode('sleep');
|
|
547
|
+
if (!success) {
|
|
548
|
+
logger.error(`Failed to set sleep mode for device: ${this.deviceName}`);
|
|
616
549
|
}
|
|
617
|
-
return
|
|
550
|
+
return success;
|
|
618
551
|
}
|
|
619
552
|
|
|
620
553
|
/**
|
|
@@ -640,26 +573,6 @@ export class VeSyncAirBypass extends VeSyncFan {
|
|
|
640
573
|
}
|
|
641
574
|
return success;
|
|
642
575
|
}
|
|
643
|
-
|
|
644
|
-
/**
|
|
645
|
-
* Display device info
|
|
646
|
-
*/
|
|
647
|
-
override display(): void {
|
|
648
|
-
super.display();
|
|
649
|
-
const info = [
|
|
650
|
-
['Mode: ', this.details.mode || ''],
|
|
651
|
-
['Speed: ', this.speed],
|
|
652
|
-
['Filter Life: ', this.filterLife || 0, '%'],
|
|
653
|
-
['Air Quality: ', this.details.air_quality || ''],
|
|
654
|
-
['Display: ', this.details.display || false],
|
|
655
|
-
['Child Lock: ', this.details.child_lock || false],
|
|
656
|
-
['Night Light: ', this.details.night_light || 'off']
|
|
657
|
-
];
|
|
658
|
-
|
|
659
|
-
for (const [key, value, unit = ''] of info) {
|
|
660
|
-
logger.info(`${key.toString().padEnd(30, '.')} ${value}${unit}`);
|
|
661
|
-
}
|
|
662
|
-
}
|
|
663
576
|
}
|
|
664
577
|
|
|
665
578
|
/**
|
|
@@ -1120,18 +1033,6 @@ export class VeSyncHumidifier extends VeSyncFan {
|
|
|
1120
1033
|
return success;
|
|
1121
1034
|
}
|
|
1122
1035
|
|
|
1123
|
-
/**
|
|
1124
|
-
* Set sleep mode
|
|
1125
|
-
*/
|
|
1126
|
-
async sleepMode(): Promise<boolean> {
|
|
1127
|
-
logger.debug(`Setting sleep mode for device: ${this.deviceName}`);
|
|
1128
|
-
const success = await this.setMode('sleep');
|
|
1129
|
-
if (!success) {
|
|
1130
|
-
logger.error(`Failed to set sleep mode for device: ${this.deviceName}`);
|
|
1131
|
-
}
|
|
1132
|
-
return success;
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
1036
|
/**
|
|
1136
1037
|
* Turn off display
|
|
1137
1038
|
*/
|
|
@@ -1445,7 +1346,7 @@ export class VeSyncAirBaseV2 extends VeSyncAirBypass {
|
|
|
1445
1346
|
/**
|
|
1446
1347
|
* Set mode
|
|
1447
1348
|
*/
|
|
1448
|
-
|
|
1349
|
+
protected async mode_toggle(mode: string): Promise<boolean> {
|
|
1449
1350
|
const validModes = this.modes.map(m => m.toLowerCase());
|
|
1450
1351
|
if (!validModes.includes(mode.toLowerCase())) {
|
|
1451
1352
|
logger.debug(`Invalid mode used - ${mode}`);
|
|
@@ -1476,38 +1377,6 @@ export class VeSyncAirBaseV2 extends VeSyncAirBypass {
|
|
|
1476
1377
|
}
|
|
1477
1378
|
return success;
|
|
1478
1379
|
}
|
|
1479
|
-
|
|
1480
|
-
/**
|
|
1481
|
-
* Set manual mode
|
|
1482
|
-
*/
|
|
1483
|
-
async manual_mode(): Promise<boolean> {
|
|
1484
|
-
return this.mode_toggle('manual');
|
|
1485
|
-
}
|
|
1486
|
-
|
|
1487
|
-
/**
|
|
1488
|
-
* Set sleep mode
|
|
1489
|
-
*/
|
|
1490
|
-
async sleep_mode(): Promise<boolean> {
|
|
1491
|
-
return this.mode_toggle('sleep');
|
|
1492
|
-
}
|
|
1493
|
-
|
|
1494
|
-
/**
|
|
1495
|
-
* Set auto mode
|
|
1496
|
-
*/
|
|
1497
|
-
async auto_mode(): Promise<boolean> {
|
|
1498
|
-
if (!this.modes.includes('auto')) {
|
|
1499
|
-
logger.debug(`${this.deviceName} does not have auto mode`);
|
|
1500
|
-
return false;
|
|
1501
|
-
}
|
|
1502
|
-
return this.mode_toggle('auto');
|
|
1503
|
-
}
|
|
1504
|
-
|
|
1505
|
-
/**
|
|
1506
|
-
* Set turbo mode
|
|
1507
|
-
*/
|
|
1508
|
-
async turbo_mode(): Promise<boolean> {
|
|
1509
|
-
return this.mode_toggle('turbo');
|
|
1510
|
-
}
|
|
1511
1380
|
}
|
|
1512
1381
|
|
|
1513
1382
|
/**
|