tsvesync 1.0.11
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/LICENSE +21 -0
- package/README.md +227 -0
- package/api/vesync/VeSync.yaml +33 -0
- package/api/vesyncbulb/ESL100.yaml +74 -0
- package/api/vesyncbulb/ESL100CW.yaml +123 -0
- package/api/vesyncbulb/ESL100MC.yaml +169 -0
- package/api/vesyncbulb/XYD0001.yaml +193 -0
- package/api/vesyncfan/Classic200S.yaml +280 -0
- package/api/vesyncfan/Classic300S.yaml +278 -0
- package/api/vesyncfan/Core200S.yaml +256 -0
- package/api/vesyncfan/Core300S.yaml +281 -0
- package/api/vesyncfan/Core400S.yaml +281 -0
- package/api/vesyncfan/Core600S.yaml +281 -0
- package/api/vesyncfan/Dual200S.yaml +278 -0
- package/api/vesyncfan/LAP-C201S-AUSR.yaml +256 -0
- package/api/vesyncfan/LAP-C202S-WUSR.yaml +256 -0
- package/api/vesyncfan/LAP-C301S-WAAA.yaml +281 -0
- package/api/vesyncfan/LAP-C301S-WJP.yaml +281 -0
- package/api/vesyncfan/LAP-C302S-WUSB.yaml +281 -0
- package/api/vesyncfan/LAP-C401S-WAAA.yaml +281 -0
- package/api/vesyncfan/LAP-C401S-WJP.yaml +281 -0
- package/api/vesyncfan/LAP-C401S-WUSR.yaml +281 -0
- package/api/vesyncfan/LAP-C601S-WEU.yaml +281 -0
- package/api/vesyncfan/LAP-C601S-WUS.yaml +281 -0
- package/api/vesyncfan/LAP-C601S-WUSR.yaml +281 -0
- package/api/vesyncfan/LAP-EL551S-AEUR.yaml +167 -0
- package/api/vesyncfan/LAP-EL551S-AUS.yaml +167 -0
- package/api/vesyncfan/LAP-EL551S-WEU.yaml +167 -0
- package/api/vesyncfan/LAP-EL551S-WUS.yaml +167 -0
- package/api/vesyncfan/LAP-V102S-AASR.yaml +167 -0
- package/api/vesyncfan/LAP-V102S-AUSR.yaml +167 -0
- package/api/vesyncfan/LAP-V102S-WEU.yaml +167 -0
- package/api/vesyncfan/LAP-V102S-WJP.yaml +167 -0
- package/api/vesyncfan/LAP-V102S-WUS.yaml +167 -0
- package/api/vesyncfan/LAP-V201-AUSR.yaml +167 -0
- package/api/vesyncfan/LAP-V201S-AASR.yaml +167 -0
- package/api/vesyncfan/LAP-V201S-AEUR.yaml +167 -0
- package/api/vesyncfan/LAP-V201S-AUSR.yaml +167 -0
- package/api/vesyncfan/LAP-V201S-WEU.yaml +167 -0
- package/api/vesyncfan/LAP-V201S-WJP.yaml +167 -0
- package/api/vesyncfan/LAP-V201S-WUS.yaml +167 -0
- package/api/vesyncfan/LEH-S601S-WUS.yaml +303 -0
- package/api/vesyncfan/LEH-S601S-WUSR.yaml +82 -0
- package/api/vesyncfan/LTF-F422S-KEU.yaml +165 -0
- package/api/vesyncfan/LTF-F422S-WUS.yaml +165 -0
- package/api/vesyncfan/LTF-F422S-WUSR.yaml +167 -0
- package/api/vesyncfan/LTF-F422_WJP.yaml +165 -0
- package/api/vesyncfan/LUH-A601S-AUSW.yaml +82 -0
- package/api/vesyncfan/LUH-A601S-WUSB.yaml +305 -0
- package/api/vesyncfan/LUH-A602S-WEU.yaml +305 -0
- package/api/vesyncfan/LUH-A602S-WEUR.yaml +305 -0
- package/api/vesyncfan/LUH-A602S-WJP.yaml +305 -0
- package/api/vesyncfan/LUH-A602S-WUS.yaml +305 -0
- package/api/vesyncfan/LUH-A602S-WUSC.yaml +305 -0
- package/api/vesyncfan/LUH-A602S-WUSR.yaml +305 -0
- package/api/vesyncfan/LUH-D301S-WEU.yaml +305 -0
- package/api/vesyncfan/LUH-D301S-WJP.yaml +305 -0
- package/api/vesyncfan/LUH-D301S-WUSR.yaml +305 -0
- package/api/vesyncfan/LUH-M101S-WUS.yaml +278 -0
- package/api/vesyncfan/LUH-O451S-WEU.yaml +278 -0
- package/api/vesyncfan/LUH-O451S-WUS.yaml +278 -0
- package/api/vesyncfan/LUH-O451S-WUSR.yaml +305 -0
- package/api/vesyncfan/LUH-O601S-KUS.yaml +305 -0
- package/api/vesyncfan/LUH-O601S-WUS.yaml +305 -0
- package/api/vesyncfan/LV-PUR131S.yaml +108 -0
- package/api/vesyncfan/LV-RH131S.yaml +108 -0
- package/api/vesyncoutlet/ESO15-TB.yaml +124 -0
- package/api/vesyncoutlet/ESW01-EU.yaml +122 -0
- package/api/vesyncoutlet/ESW03-USA.yaml +122 -0
- package/api/vesyncoutlet/ESW15-USA.yaml +156 -0
- package/api/vesyncoutlet/wifi-switch-1.3.yaml +60 -0
- package/api/vesyncswitch/ESWD16.yaml +128 -0
- package/api/vesyncswitch/ESWL01.yaml +56 -0
- package/api/vesyncswitch/ESWL03.yaml +56 -0
- package/dist/lib/helpers.d.ts +87 -0
- package/dist/lib/helpers.js +222 -0
- package/dist/lib/helpers.js.map +1 -0
- package/dist/lib/vesync.d.ts +47 -0
- package/dist/lib/vesync.js +309 -0
- package/dist/lib/vesync.js.map +1 -0
- package/dist/lib/vesyncBaseDevice.d.ts +68 -0
- package/dist/lib/vesyncBaseDevice.js +116 -0
- package/dist/lib/vesyncBaseDevice.js.map +1 -0
- package/dist/lib/vesyncBulb.d.ts +0 -0
- package/dist/lib/vesyncBulb.js +2 -0
- package/dist/lib/vesyncBulb.js.map +1 -0
- package/dist/lib/vesyncFan.d.ts +92 -0
- package/dist/lib/vesyncFan.js +265 -0
- package/dist/lib/vesyncFan.js.map +1 -0
- package/dist/lib/vesyncKitchen.d.ts +0 -0
- package/dist/lib/vesyncKitchen.js +2 -0
- package/dist/lib/vesyncKitchen.js.map +1 -0
- package/dist/lib/vesyncOutlet.d.ts +0 -0
- package/dist/lib/vesyncOutlet.js +2 -0
- package/dist/lib/vesyncOutlet.js.map +1 -0
- package/dist/lib/vesyncSwitch.d.ts +0 -0
- package/dist/lib/vesyncSwitch.js +2 -0
- package/dist/lib/vesyncSwitch.js.map +1 -0
- package/dist/src/lib/helpers.d.ts +88 -0
- package/dist/src/lib/helpers.js +244 -0
- package/dist/src/lib/vesync.d.ts +89 -0
- package/dist/src/lib/vesync.js +430 -0
- package/dist/src/lib/vesyncBaseDevice.d.ts +43 -0
- package/dist/src/lib/vesyncBaseDevice.js +87 -0
- package/dist/src/lib/vesyncBulb.d.ts +79 -0
- package/dist/src/lib/vesyncBulb.js +198 -0
- package/dist/src/lib/vesyncBulbImpl.d.ts +38 -0
- package/dist/src/lib/vesyncBulbImpl.js +161 -0
- package/dist/src/lib/vesyncFan.d.ts +80 -0
- package/dist/src/lib/vesyncFan.js +406 -0
- package/dist/src/lib/vesyncFanImpl.d.ts +137 -0
- package/dist/src/lib/vesyncFanImpl.js +643 -0
- package/dist/src/lib/vesyncOutlet.d.ts +53 -0
- package/dist/src/lib/vesyncOutlet.js +98 -0
- package/dist/src/lib/vesyncOutletImpl.d.ts +70 -0
- package/dist/src/lib/vesyncOutletImpl.js +206 -0
- package/dist/src/lib/vesyncSwitch.d.ts +169 -0
- package/dist/src/lib/vesyncSwitch.js +414 -0
- package/dist/src/lib/vesyncSwitchImpl.d.ts +82 -0
- package/dist/src/lib/vesyncSwitchImpl.js +290 -0
- package/dist/test/testFeatures.d.ts +4 -0
- package/dist/test/testFeatures.js +394 -0
- package/dist/test/testService.d.ts +62 -0
- package/dist/test/testService.js +540 -0
- package/dist/test/testSpecial.d.ts +5 -0
- package/dist/test/testSpecial.js +227 -0
- package/package.json +53 -0
- package/src/lib/helpers.ts +290 -0
- package/src/lib/vesync.ts +530 -0
- package/src/lib/vesyncBaseDevice.ts +114 -0
- package/src/lib/vesyncBulb.ts +252 -0
- package/src/lib/vesyncBulbImpl.ts +215 -0
- package/src/lib/vesyncFan.ts +447 -0
- package/src/lib/vesyncFanImpl.ts +848 -0
- package/src/lib/vesyncOutlet.ts +148 -0
- package/src/lib/vesyncOutletImpl.ts +284 -0
- package/src/lib/vesyncSwitch.ts +546 -0
- package/src/lib/vesyncSwitchImpl.ts +408 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
indicator_light_on:
|
|
2
|
+
headers:
|
|
3
|
+
accept-language: en
|
|
4
|
+
accountId: sample_id
|
|
5
|
+
appVersion: 2.8.6
|
|
6
|
+
content-type: application/json
|
|
7
|
+
tk: sample_tk
|
|
8
|
+
tz: America/New_York
|
|
9
|
+
json_object:
|
|
10
|
+
acceptLanguage: en
|
|
11
|
+
accountID: sample_id
|
|
12
|
+
status: 'on'
|
|
13
|
+
timeZone: America/New_York
|
|
14
|
+
token: sample_tk
|
|
15
|
+
uuid: ESWD16-UUID
|
|
16
|
+
method: put
|
|
17
|
+
url: /dimmer/v1/device/indicatorlightstatus
|
|
18
|
+
rgb_color_on:
|
|
19
|
+
headers:
|
|
20
|
+
accept-language: en
|
|
21
|
+
accountId: sample_id
|
|
22
|
+
appVersion: 2.8.6
|
|
23
|
+
content-type: application/json
|
|
24
|
+
tk: sample_tk
|
|
25
|
+
tz: America/New_York
|
|
26
|
+
json_object:
|
|
27
|
+
acceptLanguage: en
|
|
28
|
+
accountID: sample_id
|
|
29
|
+
status: 'on'
|
|
30
|
+
timeZone: America/New_York
|
|
31
|
+
token: sample_tk
|
|
32
|
+
uuid: ESWD16-UUID
|
|
33
|
+
method: put
|
|
34
|
+
url: /dimmer/v1/device/devicergbstatus
|
|
35
|
+
rgb_color_set:
|
|
36
|
+
headers:
|
|
37
|
+
accept-language: en
|
|
38
|
+
accountId: sample_id
|
|
39
|
+
appVersion: 2.8.6
|
|
40
|
+
content-type: application/json
|
|
41
|
+
tk: sample_tk
|
|
42
|
+
tz: America/New_York
|
|
43
|
+
json_object:
|
|
44
|
+
acceptLanguage: en
|
|
45
|
+
accountID: sample_id
|
|
46
|
+
rgbValue:
|
|
47
|
+
blue: 100
|
|
48
|
+
green: 225
|
|
49
|
+
red: 50
|
|
50
|
+
status: 'on'
|
|
51
|
+
timeZone: America/New_York
|
|
52
|
+
token: sample_tk
|
|
53
|
+
uuid: ESWD16-UUID
|
|
54
|
+
method: put
|
|
55
|
+
url: /dimmer/v1/device/devicergbstatus
|
|
56
|
+
set_brightness:
|
|
57
|
+
headers:
|
|
58
|
+
accept-language: en
|
|
59
|
+
accountId: sample_id
|
|
60
|
+
appVersion: 2.8.6
|
|
61
|
+
content-type: application/json
|
|
62
|
+
tk: sample_tk
|
|
63
|
+
tz: America/New_York
|
|
64
|
+
json_object:
|
|
65
|
+
acceptLanguage: en
|
|
66
|
+
accountID: sample_id
|
|
67
|
+
brightness: 100
|
|
68
|
+
timeZone: America/New_York
|
|
69
|
+
token: sample_tk
|
|
70
|
+
uuid: ESWD16-UUID
|
|
71
|
+
method: put
|
|
72
|
+
url: /dimmer/v1/device/updatebrightness
|
|
73
|
+
turn_off:
|
|
74
|
+
headers:
|
|
75
|
+
accept-language: en
|
|
76
|
+
accountId: sample_id
|
|
77
|
+
appVersion: 2.8.6
|
|
78
|
+
content-type: application/json
|
|
79
|
+
tk: sample_tk
|
|
80
|
+
tz: America/New_York
|
|
81
|
+
json_object:
|
|
82
|
+
acceptLanguage: en
|
|
83
|
+
accountID: sample_id
|
|
84
|
+
status: 'off'
|
|
85
|
+
timeZone: America/New_York
|
|
86
|
+
token: sample_tk
|
|
87
|
+
uuid: ESWD16-UUID
|
|
88
|
+
method: put
|
|
89
|
+
url: /dimmer/v1/device/devicestatus
|
|
90
|
+
turn_on:
|
|
91
|
+
headers:
|
|
92
|
+
accept-language: en
|
|
93
|
+
accountId: sample_id
|
|
94
|
+
appVersion: 2.8.6
|
|
95
|
+
content-type: application/json
|
|
96
|
+
tk: sample_tk
|
|
97
|
+
tz: America/New_York
|
|
98
|
+
json_object:
|
|
99
|
+
acceptLanguage: en
|
|
100
|
+
accountID: sample_id
|
|
101
|
+
status: 'on'
|
|
102
|
+
timeZone: America/New_York
|
|
103
|
+
token: sample_tk
|
|
104
|
+
uuid: ESWD16-UUID
|
|
105
|
+
method: put
|
|
106
|
+
url: /dimmer/v1/device/devicestatus
|
|
107
|
+
update:
|
|
108
|
+
headers:
|
|
109
|
+
accept-language: en
|
|
110
|
+
accountId: sample_id
|
|
111
|
+
appVersion: 2.8.6
|
|
112
|
+
content-type: application/json
|
|
113
|
+
tk: sample_tk
|
|
114
|
+
tz: America/New_York
|
|
115
|
+
json_object:
|
|
116
|
+
acceptLanguage: en
|
|
117
|
+
accountID: sample_id
|
|
118
|
+
appVersion: 2.8.6
|
|
119
|
+
method: devicedetail
|
|
120
|
+
mobileId: '1234567890123456'
|
|
121
|
+
phoneBrand: SM N9005
|
|
122
|
+
phoneOS: Android
|
|
123
|
+
timeZone: America/New_York
|
|
124
|
+
token: sample_tk
|
|
125
|
+
traceId: TRACE_ID
|
|
126
|
+
uuid: ESWD16-UUID
|
|
127
|
+
method: post
|
|
128
|
+
url: /dimmer/v1/device/devicedetail
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
turn_off:
|
|
2
|
+
headers:
|
|
3
|
+
accept-language: en
|
|
4
|
+
accountId: sample_id
|
|
5
|
+
appVersion: 2.8.6
|
|
6
|
+
content-type: application/json
|
|
7
|
+
tk: sample_tk
|
|
8
|
+
tz: America/New_York
|
|
9
|
+
json_object:
|
|
10
|
+
acceptLanguage: en
|
|
11
|
+
accountID: sample_id
|
|
12
|
+
status: 'off'
|
|
13
|
+
timeZone: America/New_York
|
|
14
|
+
token: sample_tk
|
|
15
|
+
uuid: ESWL01-UUID
|
|
16
|
+
method: put
|
|
17
|
+
url: /inwallswitch/v1/device/devicestatus
|
|
18
|
+
turn_on:
|
|
19
|
+
headers:
|
|
20
|
+
accept-language: en
|
|
21
|
+
accountId: sample_id
|
|
22
|
+
appVersion: 2.8.6
|
|
23
|
+
content-type: application/json
|
|
24
|
+
tk: sample_tk
|
|
25
|
+
tz: America/New_York
|
|
26
|
+
json_object:
|
|
27
|
+
acceptLanguage: en
|
|
28
|
+
accountID: sample_id
|
|
29
|
+
status: 'on'
|
|
30
|
+
timeZone: America/New_York
|
|
31
|
+
token: sample_tk
|
|
32
|
+
uuid: ESWL01-UUID
|
|
33
|
+
method: put
|
|
34
|
+
url: /inwallswitch/v1/device/devicestatus
|
|
35
|
+
update:
|
|
36
|
+
headers:
|
|
37
|
+
accept-language: en
|
|
38
|
+
accountId: sample_id
|
|
39
|
+
appVersion: 2.8.6
|
|
40
|
+
content-type: application/json
|
|
41
|
+
tk: sample_tk
|
|
42
|
+
tz: America/New_York
|
|
43
|
+
json_object:
|
|
44
|
+
acceptLanguage: en
|
|
45
|
+
accountID: sample_id
|
|
46
|
+
appVersion: 2.8.6
|
|
47
|
+
method: devicedetail
|
|
48
|
+
mobileId: '1234567890123456'
|
|
49
|
+
phoneBrand: SM N9005
|
|
50
|
+
phoneOS: Android
|
|
51
|
+
timeZone: America/New_York
|
|
52
|
+
token: sample_tk
|
|
53
|
+
traceId: TRACE_ID
|
|
54
|
+
uuid: ESWL01-UUID
|
|
55
|
+
method: post
|
|
56
|
+
url: /inwallswitch/v1/device/devicedetail
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
turn_off:
|
|
2
|
+
headers:
|
|
3
|
+
accept-language: en
|
|
4
|
+
accountId: sample_id
|
|
5
|
+
appVersion: 2.8.6
|
|
6
|
+
content-type: application/json
|
|
7
|
+
tk: sample_tk
|
|
8
|
+
tz: America/New_York
|
|
9
|
+
json_object:
|
|
10
|
+
acceptLanguage: en
|
|
11
|
+
accountID: sample_id
|
|
12
|
+
status: 'off'
|
|
13
|
+
timeZone: America/New_York
|
|
14
|
+
token: sample_tk
|
|
15
|
+
uuid: ESWL03-UUID
|
|
16
|
+
method: put
|
|
17
|
+
url: /inwallswitch/v1/device/devicestatus
|
|
18
|
+
turn_on:
|
|
19
|
+
headers:
|
|
20
|
+
accept-language: en
|
|
21
|
+
accountId: sample_id
|
|
22
|
+
appVersion: 2.8.6
|
|
23
|
+
content-type: application/json
|
|
24
|
+
tk: sample_tk
|
|
25
|
+
tz: America/New_York
|
|
26
|
+
json_object:
|
|
27
|
+
acceptLanguage: en
|
|
28
|
+
accountID: sample_id
|
|
29
|
+
status: 'on'
|
|
30
|
+
timeZone: America/New_York
|
|
31
|
+
token: sample_tk
|
|
32
|
+
uuid: ESWL03-UUID
|
|
33
|
+
method: put
|
|
34
|
+
url: /inwallswitch/v1/device/devicestatus
|
|
35
|
+
update:
|
|
36
|
+
headers:
|
|
37
|
+
accept-language: en
|
|
38
|
+
accountId: sample_id
|
|
39
|
+
appVersion: 2.8.6
|
|
40
|
+
content-type: application/json
|
|
41
|
+
tk: sample_tk
|
|
42
|
+
tz: America/New_York
|
|
43
|
+
json_object:
|
|
44
|
+
acceptLanguage: en
|
|
45
|
+
accountID: sample_id
|
|
46
|
+
appVersion: 2.8.6
|
|
47
|
+
method: devicedetail
|
|
48
|
+
mobileId: '1234567890123456'
|
|
49
|
+
phoneBrand: SM N9005
|
|
50
|
+
phoneOS: Android
|
|
51
|
+
timeZone: America/New_York
|
|
52
|
+
token: sample_tk
|
|
53
|
+
traceId: TRACE_ID
|
|
54
|
+
uuid: ESWL03-UUID
|
|
55
|
+
method: post
|
|
56
|
+
url: /inwallswitch/v1/device/devicedetail
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { VeSync } from './vesync';
|
|
2
|
+
export declare const API_BASE_URL = "https://smartapi.vesync.com";
|
|
3
|
+
export declare const API_RATE_LIMIT = 30;
|
|
4
|
+
export declare const API_TIMEOUT = 8;
|
|
5
|
+
export declare const USER_AGENT = "VeSync/3.2.39 (com.etekcity.vesyncPlatform; build:5; iOS 15.5.0) Alamofire/5.2.1";
|
|
6
|
+
export declare const DEFAULT_TZ = "America/New_York";
|
|
7
|
+
export declare const DEFAULT_REGION = "US";
|
|
8
|
+
export declare const APP_VERSION = "2.8.6";
|
|
9
|
+
export declare const PHONE_BRAND = "SM N9005";
|
|
10
|
+
export declare const PHONE_OS = "Android";
|
|
11
|
+
export declare const MOBILE_ID = "1234567890123456";
|
|
12
|
+
export declare const USER_TYPE = "1";
|
|
13
|
+
export declare const BYPASS_APP_V = "VeSync 3.0.51";
|
|
14
|
+
export declare const BYPASS_HEADER_UA = "okhttp/3.12.1";
|
|
15
|
+
export type Numeric = number | string | null;
|
|
16
|
+
export type RequestBody = {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
};
|
|
19
|
+
export declare class Helpers {
|
|
20
|
+
private static shouldRedact;
|
|
21
|
+
/**
|
|
22
|
+
* Build header for legacy api GET requests
|
|
23
|
+
*/
|
|
24
|
+
static reqHeaders(manager: VeSync): {
|
|
25
|
+
[key: string]: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Build header for api requests on 'bypass' endpoint
|
|
29
|
+
*/
|
|
30
|
+
static reqHeaderBypass(): {
|
|
31
|
+
[key: string]: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Return universal keys for body of api requests
|
|
35
|
+
*/
|
|
36
|
+
static reqBodyBase(manager: VeSync): {
|
|
37
|
+
[key: string]: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Keys for authenticating api requests
|
|
41
|
+
*/
|
|
42
|
+
static reqBodyAuth(manager: VeSync): RequestBody;
|
|
43
|
+
/**
|
|
44
|
+
* Detail keys for api requests
|
|
45
|
+
*/
|
|
46
|
+
static reqBodyDetails(): RequestBody;
|
|
47
|
+
/**
|
|
48
|
+
* Builder for body of api requests
|
|
49
|
+
*/
|
|
50
|
+
static reqBody(manager: VeSync, type: string): RequestBody;
|
|
51
|
+
/**
|
|
52
|
+
* Calculate hex value
|
|
53
|
+
*/
|
|
54
|
+
static calculateHex(hexString: string): number;
|
|
55
|
+
/**
|
|
56
|
+
* Hash password using MD5
|
|
57
|
+
*/
|
|
58
|
+
static hashPassword(password: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Call the VeSync API
|
|
61
|
+
*/
|
|
62
|
+
static callApi(api: string, method: string, jsonObject?: RequestBody, headers?: {
|
|
63
|
+
[key: string]: string;
|
|
64
|
+
}): Promise<[any, number]>;
|
|
65
|
+
/**
|
|
66
|
+
* Redact sensitive information
|
|
67
|
+
*/
|
|
68
|
+
static redactor(value: string): string;
|
|
69
|
+
static get redact(): boolean;
|
|
70
|
+
static set redact(value: boolean);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Timer class for device scheduling
|
|
74
|
+
*/
|
|
75
|
+
export declare class Timer {
|
|
76
|
+
status: string;
|
|
77
|
+
type: string;
|
|
78
|
+
id: string;
|
|
79
|
+
time: string;
|
|
80
|
+
action: string;
|
|
81
|
+
week: string;
|
|
82
|
+
state: string;
|
|
83
|
+
enabled: boolean;
|
|
84
|
+
private timer;
|
|
85
|
+
constructor(status?: string, type?: string, id?: string, time?: string, action?: string, week?: string, state?: string, enabled?: boolean);
|
|
86
|
+
toJson(): string;
|
|
87
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Timer = exports.Helpers = exports.BYPASS_HEADER_UA = exports.BYPASS_APP_V = exports.USER_TYPE = exports.MOBILE_ID = exports.PHONE_OS = exports.PHONE_BRAND = exports.APP_VERSION = exports.DEFAULT_REGION = exports.DEFAULT_TZ = exports.USER_AGENT = exports.API_TIMEOUT = exports.API_RATE_LIMIT = exports.API_BASE_URL = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Helper functions for VeSync API.
|
|
9
|
+
*/
|
|
10
|
+
const axios_1 = __importDefault(require("axios"));
|
|
11
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
12
|
+
exports.API_BASE_URL = 'https://smartapi.vesync.com';
|
|
13
|
+
exports.API_RATE_LIMIT = 30;
|
|
14
|
+
exports.API_TIMEOUT = 8;
|
|
15
|
+
exports.USER_AGENT = "VeSync/3.2.39 (com.etekcity.vesyncPlatform; build:5; iOS 15.5.0) Alamofire/5.2.1";
|
|
16
|
+
exports.DEFAULT_TZ = 'America/New_York';
|
|
17
|
+
exports.DEFAULT_REGION = 'US';
|
|
18
|
+
exports.APP_VERSION = '2.8.6';
|
|
19
|
+
exports.PHONE_BRAND = 'SM N9005';
|
|
20
|
+
exports.PHONE_OS = 'Android';
|
|
21
|
+
exports.MOBILE_ID = '1234567890123456';
|
|
22
|
+
exports.USER_TYPE = '1';
|
|
23
|
+
exports.BYPASS_APP_V = "VeSync 3.0.51";
|
|
24
|
+
exports.BYPASS_HEADER_UA = 'okhttp/3.12.1';
|
|
25
|
+
class Helpers {
|
|
26
|
+
/**
|
|
27
|
+
* Build header for legacy api GET requests
|
|
28
|
+
*/
|
|
29
|
+
static reqHeaders(manager) {
|
|
30
|
+
return {
|
|
31
|
+
'accept-language': 'en',
|
|
32
|
+
'accountId': manager.accountId,
|
|
33
|
+
'appVersion': exports.APP_VERSION,
|
|
34
|
+
'content-type': 'application/json',
|
|
35
|
+
'tk': manager.token,
|
|
36
|
+
'tz': manager.timeZone,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build header for api requests on 'bypass' endpoint
|
|
41
|
+
*/
|
|
42
|
+
static reqHeaderBypass() {
|
|
43
|
+
return {
|
|
44
|
+
'Content-Type': 'application/json; charset=UTF-8',
|
|
45
|
+
'User-Agent': exports.BYPASS_HEADER_UA,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Return universal keys for body of api requests
|
|
50
|
+
*/
|
|
51
|
+
static reqBodyBase(manager) {
|
|
52
|
+
return {
|
|
53
|
+
'timeZone': manager.timeZone,
|
|
54
|
+
'acceptLanguage': 'en'
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Keys for authenticating api requests
|
|
59
|
+
*/
|
|
60
|
+
static reqBodyAuth(manager) {
|
|
61
|
+
return {
|
|
62
|
+
'accountID': manager.accountId,
|
|
63
|
+
'token': manager.token
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Detail keys for api requests
|
|
68
|
+
*/
|
|
69
|
+
static reqBodyDetails() {
|
|
70
|
+
return {
|
|
71
|
+
'appVersion': exports.APP_VERSION,
|
|
72
|
+
'phoneBrand': exports.PHONE_BRAND,
|
|
73
|
+
'phoneOS': exports.PHONE_OS,
|
|
74
|
+
'traceId': Math.floor(Date.now() / 1000).toString()
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Builder for body of api requests
|
|
79
|
+
*/
|
|
80
|
+
static reqBody(manager, type) {
|
|
81
|
+
let body = this.reqBodyBase(manager);
|
|
82
|
+
if (type === 'login') {
|
|
83
|
+
body = {
|
|
84
|
+
...body,
|
|
85
|
+
...this.reqBodyDetails(),
|
|
86
|
+
email: manager.username,
|
|
87
|
+
password: this.hashPassword(manager.password),
|
|
88
|
+
devToken: '',
|
|
89
|
+
userType: exports.USER_TYPE,
|
|
90
|
+
method: 'login'
|
|
91
|
+
};
|
|
92
|
+
return body;
|
|
93
|
+
}
|
|
94
|
+
body = { ...body, ...this.reqBodyAuth(manager) };
|
|
95
|
+
if (type === 'devicestatus') {
|
|
96
|
+
return body;
|
|
97
|
+
}
|
|
98
|
+
body = { ...body, ...this.reqBodyDetails() };
|
|
99
|
+
switch (type) {
|
|
100
|
+
case 'devicelist':
|
|
101
|
+
body.method = 'devices';
|
|
102
|
+
body.pageNo = '1';
|
|
103
|
+
body.pageSize = '100';
|
|
104
|
+
break;
|
|
105
|
+
case 'devicedetail':
|
|
106
|
+
body.method = 'devicedetail';
|
|
107
|
+
body.mobileId = exports.MOBILE_ID;
|
|
108
|
+
break;
|
|
109
|
+
case 'energy_week':
|
|
110
|
+
body.method = 'energyweek';
|
|
111
|
+
body.mobileId = exports.MOBILE_ID;
|
|
112
|
+
break;
|
|
113
|
+
case 'energy_month':
|
|
114
|
+
body.method = 'energymonth';
|
|
115
|
+
body.mobileId = exports.MOBILE_ID;
|
|
116
|
+
break;
|
|
117
|
+
case 'energy_year':
|
|
118
|
+
body.method = 'energyyear';
|
|
119
|
+
body.mobileId = exports.MOBILE_ID;
|
|
120
|
+
break;
|
|
121
|
+
case 'bypass':
|
|
122
|
+
body.method = 'bypass';
|
|
123
|
+
break;
|
|
124
|
+
case 'bypassV2':
|
|
125
|
+
body.deviceRegion = exports.DEFAULT_REGION;
|
|
126
|
+
body.method = 'bypassV2';
|
|
127
|
+
break;
|
|
128
|
+
case 'bypass_config':
|
|
129
|
+
body.method = 'firmwareUpdateInfo';
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
return body;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Calculate hex value
|
|
136
|
+
*/
|
|
137
|
+
static calculateHex(hexString) {
|
|
138
|
+
const hexConv = hexString.split(':');
|
|
139
|
+
return (parseInt(hexConv[0], 16) + parseInt(hexConv[1], 16)) / 8192;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Hash password using MD5
|
|
143
|
+
*/
|
|
144
|
+
static hashPassword(password) {
|
|
145
|
+
return crypto_1.default.createHash('md5').update(password).digest('hex');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Call the VeSync API
|
|
149
|
+
*/
|
|
150
|
+
static async callApi(api, method, jsonObject, headers) {
|
|
151
|
+
try {
|
|
152
|
+
const response = await (0, axios_1.default)({
|
|
153
|
+
method: method,
|
|
154
|
+
url: `${exports.API_BASE_URL}${api}`,
|
|
155
|
+
headers: headers,
|
|
156
|
+
data: jsonObject,
|
|
157
|
+
timeout: exports.API_TIMEOUT * 1000
|
|
158
|
+
});
|
|
159
|
+
return [response.data, response.status];
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
if (error.response) {
|
|
163
|
+
return [error.response.data, error.response.status];
|
|
164
|
+
}
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Redact sensitive information
|
|
170
|
+
*/
|
|
171
|
+
static redactor(value) {
|
|
172
|
+
if (!this.shouldRedact) {
|
|
173
|
+
return value;
|
|
174
|
+
}
|
|
175
|
+
if (value.includes('@')) {
|
|
176
|
+
const parts = value.split('@');
|
|
177
|
+
return `${parts[0].charAt(0)}...@${parts[1]}`;
|
|
178
|
+
}
|
|
179
|
+
if (value.length > 3) {
|
|
180
|
+
return `${value.charAt(0)}...${value.charAt(value.length - 1)}`;
|
|
181
|
+
}
|
|
182
|
+
return value;
|
|
183
|
+
}
|
|
184
|
+
static get redact() {
|
|
185
|
+
return this.shouldRedact;
|
|
186
|
+
}
|
|
187
|
+
static set redact(value) {
|
|
188
|
+
this.shouldRedact = value;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.Helpers = Helpers;
|
|
192
|
+
Helpers.shouldRedact = true;
|
|
193
|
+
/**
|
|
194
|
+
* Timer class for device scheduling
|
|
195
|
+
*/
|
|
196
|
+
class Timer {
|
|
197
|
+
constructor(status = '', type = '', id = '', time = '', action = '', week = '', state = '', enabled = false) {
|
|
198
|
+
this.status = status;
|
|
199
|
+
this.type = type;
|
|
200
|
+
this.id = id;
|
|
201
|
+
this.time = time;
|
|
202
|
+
this.action = action;
|
|
203
|
+
this.week = week;
|
|
204
|
+
this.state = state;
|
|
205
|
+
this.enabled = enabled;
|
|
206
|
+
this.timer = null;
|
|
207
|
+
}
|
|
208
|
+
toJson() {
|
|
209
|
+
return JSON.stringify({
|
|
210
|
+
status: this.status,
|
|
211
|
+
type: this.type,
|
|
212
|
+
id: this.id,
|
|
213
|
+
time: this.time,
|
|
214
|
+
action: this.action,
|
|
215
|
+
week: this.week,
|
|
216
|
+
state: this.state,
|
|
217
|
+
enabled: this.enabled
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.Timer = Timer;
|
|
222
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/lib/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { VeSyncBaseDevice, DeviceDetails } from './vesyncBaseDevice';
|
|
2
|
+
export declare class VeSync {
|
|
3
|
+
[x: number]: [any, number];
|
|
4
|
+
private _debug;
|
|
5
|
+
private _redact;
|
|
6
|
+
private _energyUpdateInterval;
|
|
7
|
+
private _energyCheck;
|
|
8
|
+
private _devList;
|
|
9
|
+
username: string;
|
|
10
|
+
password: string;
|
|
11
|
+
token: string | null;
|
|
12
|
+
accountId: string | null;
|
|
13
|
+
countryCode: string | null;
|
|
14
|
+
devices: any | null;
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
updateInterval: number;
|
|
17
|
+
lastUpdateTs: number | null;
|
|
18
|
+
inProcess: boolean;
|
|
19
|
+
timeZone: string;
|
|
20
|
+
fans: VeSyncBaseDevice[];
|
|
21
|
+
outlets: VeSyncBaseDevice[];
|
|
22
|
+
switches: VeSyncBaseDevice[];
|
|
23
|
+
bulbs: VeSyncBaseDevice[];
|
|
24
|
+
scales: VeSyncBaseDevice[];
|
|
25
|
+
kitchen: VeSyncBaseDevice[];
|
|
26
|
+
constructor(username: string, password: string, timeZone?: string, debug?: boolean, redact?: boolean);
|
|
27
|
+
get debug(): boolean;
|
|
28
|
+
set debug(newFlag: boolean);
|
|
29
|
+
get redact(): boolean;
|
|
30
|
+
set redact(newFlag: boolean);
|
|
31
|
+
get energyUpdateInterval(): number;
|
|
32
|
+
set energyUpdateInterval(newEnergyUpdate: number);
|
|
33
|
+
/**
|
|
34
|
+
* Test if device should be removed - false = Remove
|
|
35
|
+
*/
|
|
36
|
+
static removeDevTest(device: VeSyncBaseDevice, newList: DeviceDetails[]): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Login to VeSync server
|
|
39
|
+
*/
|
|
40
|
+
login(): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Get list of VeSync devices
|
|
43
|
+
*/
|
|
44
|
+
getDevices(): Promise<boolean>;
|
|
45
|
+
const body: import("./helpers").RequestBody;
|
|
46
|
+
if(: any, response: any): any;
|
|
47
|
+
}
|