homebridge-tsvesync 1.0.40 → 1.0.42
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/README.md
CHANGED
|
@@ -82,7 +82,7 @@ All outlets are exposed as HomeKit outlets with the following features:
|
|
|
82
82
|
* Power/Energy monitoring
|
|
83
83
|
* Voltage monitoring
|
|
84
84
|
|
|
85
|
-
- 10A Outlets (ESW03-USA, ESW01-EU)
|
|
85
|
+
- 10A Outlets (ESW03-USA, ESW01-EU, ESW10-USA)
|
|
86
86
|
* On/Off control
|
|
87
87
|
* Power/Energy monitoring
|
|
88
88
|
* Voltage monitoring
|
|
@@ -21,7 +21,7 @@ const HUMIDIFIER_MODELS = [
|
|
|
21
21
|
const FAN_MODELS = ['LTF-F422'];
|
|
22
22
|
const OUTLET_MODELS = [
|
|
23
23
|
'ESO15-TB', 'ESW15-USA', 'ESW03-USA', 'ESW01-EU',
|
|
24
|
-
'wifi-switch-1.3'
|
|
24
|
+
'ESW10-USA', 'wifi-switch-1.3'
|
|
25
25
|
];
|
|
26
26
|
const SWITCH_MODELS = ['ESWD16', 'ESWL01', 'ESWL03'];
|
|
27
27
|
class DeviceFactory {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-factory.js","sourceRoot":"","sources":["../../src/utils/device-factory.ts"],"names":[],"mappings":";;;AAGA,kFAA6E;AAC7E,8EAA0E;AAC1E,gEAA4D;AAC5D,oEAAgE;AAChE,sEAAkE;AAClE,sEAAkE;AAWlE,yBAAyB;AACzB,MAAM,mBAAmB,GAAG;IAC1B,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;IAC9C,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW;IACnD,YAAY;CACb,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACxB,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ;IAClD,WAAW,EAAE,eAAe,EAAE,eAAe;IAC7C,gBAAgB;CACjB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;AAEhC,MAAM,aAAa,GAAG;IACpB,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU;IAChD,iBAAiB;
|
|
1
|
+
{"version":3,"file":"device-factory.js","sourceRoot":"","sources":["../../src/utils/device-factory.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-tsvesync",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.42",
|
|
4
4
|
"description": "Homebridge plugin for VeSync devices including Levoit air purifiers, humidifiers, and Etekcity smart outlets",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
"XYD0001",
|
|
73
73
|
"ESO15-TB",
|
|
74
74
|
"ESW15-USA",
|
|
75
|
+
"ESW10-USA",
|
|
75
76
|
"ESW03-USA",
|
|
76
77
|
"ESW01-EU",
|
|
77
78
|
"LTF-F422S",
|
|
@@ -97,7 +98,7 @@
|
|
|
97
98
|
"axios": "^1.6.5",
|
|
98
99
|
"dotenv": "^16.3.1",
|
|
99
100
|
"js-yaml": "^4.1.0",
|
|
100
|
-
"tsvesync": "1.0.
|
|
101
|
+
"tsvesync": "1.0.37"
|
|
101
102
|
},
|
|
102
103
|
"devDependencies": {
|
|
103
104
|
"@types/jest": "^29.5.11",
|
package/scripts/get_response.sh
CHANGED
|
@@ -73,9 +73,8 @@ MD5_PASS=$(echo -n "$VESYNC_PASSWORD" | md5sum | cut -d ' ' -f 1)
|
|
|
73
73
|
|
|
74
74
|
# Step 1: Login to get token and account ID
|
|
75
75
|
echo "Logging in to VeSync..."
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
LOGIN_RESPONSE=$(curl -s -X POST "$LOGIN_URL" \
|
|
76
|
+
|
|
77
|
+
LOGIN_RESPONSE=$(curl -s -X POST "$BASE_URL/cloud/v1/user/login" \
|
|
79
78
|
-H "Content-Type: application/json" \
|
|
80
79
|
-H "Accept: application/json" \
|
|
81
80
|
-H "Accept-Language: en" \
|
|
@@ -109,9 +108,7 @@ echo "Successfully logged in"
|
|
|
109
108
|
|
|
110
109
|
# Step 2: Get list of devices
|
|
111
110
|
echo "Getting device list..."
|
|
112
|
-
|
|
113
|
-
echo "Calling URL: $DEVICES_URL"
|
|
114
|
-
DEVICES_RESPONSE=$(curl -s -X POST "$DEVICES_URL" \
|
|
111
|
+
DEVICES_RESPONSE=$(curl -s -X POST "$BASE_URL/cloud/v2/deviceManaged/devices" \
|
|
115
112
|
-H "Content-Type: application/json" \
|
|
116
113
|
-H "Accept: application/json" \
|
|
117
114
|
-H "Accept-Language: en" \
|
|
@@ -184,9 +181,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
184
181
|
# Get device details based on device type
|
|
185
182
|
if [[ "$DEVICE_TYPE" == "ESO15-TB" ]]; then
|
|
186
183
|
echo "Getting device details..."
|
|
187
|
-
|
|
188
|
-
echo "Calling URL: $DETAILS_URL"
|
|
189
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
184
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/outdoorsocket15a/v1/device/devicedetail" \
|
|
190
185
|
-H "Content-Type: application/json" \
|
|
191
186
|
-H "accept-language: en" \
|
|
192
187
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -208,9 +203,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
208
203
|
}')
|
|
209
204
|
elif [[ "$DEVICE_TYPE" == "ESW15-USA" ]]; then
|
|
210
205
|
echo "Getting 15A outlet details..."
|
|
211
|
-
|
|
212
|
-
echo "Calling URL: $DETAILS_URL"
|
|
213
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
206
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/15a/v1/device/devicedetail" \
|
|
214
207
|
-H "Content-Type: application/json" \
|
|
215
208
|
-H "accept-language: en" \
|
|
216
209
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -237,9 +230,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
237
230
|
# Get energy data
|
|
238
231
|
for period in week month year; do
|
|
239
232
|
echo "Getting $period energy data..."
|
|
240
|
-
|
|
241
|
-
echo "Calling URL: $ENERGY_URL"
|
|
242
|
-
ENERGY_RESPONSE=$(curl -s -X POST "$ENERGY_URL" \
|
|
233
|
+
ENERGY_RESPONSE=$(curl -s -X POST "$BASE_URL/15a/v1/device/energy$period" \
|
|
243
234
|
-H "Content-Type: application/json" \
|
|
244
235
|
-H "accept-language: en" \
|
|
245
236
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -262,11 +253,9 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
262
253
|
echo "$period energy for $DEVICE_NAME:"
|
|
263
254
|
echo "$ENERGY_RESPONSE" | jq '.'
|
|
264
255
|
done
|
|
265
|
-
elif [[ "$DEVICE_TYPE" == "ESW01-EU" ]]; then
|
|
266
|
-
echo "Getting
|
|
267
|
-
|
|
268
|
-
echo "Calling URL: $DETAILS_URL"
|
|
269
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
256
|
+
elif [[ "$DEVICE_TYPE" == "ESW01-EU" || "$DEVICE_TYPE" == "ESW03-USA" || "$DEVICE_TYPE" == "ESW10-USA" ]]; then
|
|
257
|
+
echo "Getting 10A outlet details..."
|
|
258
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/10a/v1/device/devicedetail" \
|
|
270
259
|
-H "Content-Type: application/json" \
|
|
271
260
|
-H "accept-language: en" \
|
|
272
261
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -293,9 +282,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
293
282
|
# Get energy data
|
|
294
283
|
for period in week month year; do
|
|
295
284
|
echo "Getting $period energy data..."
|
|
296
|
-
|
|
297
|
-
echo "Calling URL: $ENERGY_URL"
|
|
298
|
-
ENERGY_RESPONSE=$(curl -s -X POST "$ENERGY_URL" \
|
|
285
|
+
ENERGY_RESPONSE=$(curl -s -X POST "$BASE_URL/10a/v1/device/energy$period" \
|
|
299
286
|
-H "Content-Type: application/json" \
|
|
300
287
|
-H "accept-language: en" \
|
|
301
288
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -320,9 +307,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
320
307
|
done
|
|
321
308
|
elif [[ "$DEVICE_TYPE" =~ ^ESL100(CW|MC)?$ ]]; then
|
|
322
309
|
echo "Getting smart bulb details..."
|
|
323
|
-
|
|
324
|
-
echo "Calling URL: $DETAILS_URL"
|
|
325
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
310
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/SmartBulb/v1/device/devicedetail" \
|
|
326
311
|
-H "Content-Type: application/json" \
|
|
327
312
|
-H "accept-language: en" \
|
|
328
313
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -348,9 +333,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
348
333
|
|
|
349
334
|
# Get device status
|
|
350
335
|
echo "Getting smart bulb status..."
|
|
351
|
-
|
|
352
|
-
echo "Calling URL: $STATUS_URL"
|
|
353
|
-
STATUS_RESPONSE=$(curl -s -X POST "$STATUS_URL" \
|
|
336
|
+
STATUS_RESPONSE=$(curl -s -X POST "$BASE_URL/SmartBulb/v1/device/devicestatus" \
|
|
354
337
|
-H "Content-Type: application/json" \
|
|
355
338
|
-H "accept-language: en" \
|
|
356
339
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -369,9 +352,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
369
352
|
echo "$STATUS_RESPONSE" | jq '.'
|
|
370
353
|
elif [[ "$DEVICE_TYPE" == "XYD0001" ]]; then
|
|
371
354
|
echo "Getting XYD0001 smart bulb details..."
|
|
372
|
-
|
|
373
|
-
echo "Calling URL: $DETAILS_URL"
|
|
374
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
355
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/cloud/v2/deviceManaged/bypassV2" \
|
|
375
356
|
-H "Content-Type: application/json; charset=UTF-8" \
|
|
376
357
|
-H "User-Agent: okhttp/3.12.1" \
|
|
377
358
|
-d '{
|
|
@@ -400,9 +381,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
400
381
|
|
|
401
382
|
# Get device status
|
|
402
383
|
echo "Getting XYD0001 smart bulb status..."
|
|
403
|
-
|
|
404
|
-
echo "Calling URL: $STATUS_URL"
|
|
405
|
-
STATUS_RESPONSE=$(curl -s -X POST "$STATUS_URL" \
|
|
384
|
+
STATUS_RESPONSE=$(curl -s -X POST "$BASE_URL/cloud/v2/deviceManaged/bypassV2" \
|
|
406
385
|
-H "Content-Type: application/json; charset=UTF-8" \
|
|
407
386
|
-H "User-Agent: okhttp/3.12.1" \
|
|
408
387
|
-d '{
|
|
@@ -430,9 +409,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
430
409
|
echo "$STATUS_RESPONSE" | jq '.'
|
|
431
410
|
elif [[ "$DEVICE_TYPE" =~ ^ESWL0[13]$ ]]; then
|
|
432
411
|
echo "Getting wall switch details..."
|
|
433
|
-
|
|
434
|
-
echo "Calling URL: $DETAILS_URL"
|
|
435
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
412
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/inwallswitch/v1/device/devicedetail" \
|
|
436
413
|
-H "Content-Type: application/json" \
|
|
437
414
|
-H "accept-language: en" \
|
|
438
415
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -457,9 +434,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
457
434
|
echo "$DETAILS_RESPONSE" | jq '.'
|
|
458
435
|
elif [[ "$DEVICE_TYPE" == "ESWD16" ]]; then
|
|
459
436
|
echo "Getting dimmer switch details..."
|
|
460
|
-
|
|
461
|
-
echo "Calling URL: $DETAILS_URL"
|
|
462
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
437
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/dimmer/v1/device/devicedetail" \
|
|
463
438
|
-H "Content-Type: application/json" \
|
|
464
439
|
-H "accept-language: en" \
|
|
465
440
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -485,9 +460,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
485
460
|
|
|
486
461
|
# Get RGB status for dimmer
|
|
487
462
|
echo "Getting dimmer RGB status..."
|
|
488
|
-
|
|
489
|
-
echo "Calling URL: $RGB_URL"
|
|
490
|
-
RGB_RESPONSE=$(curl -s -X POST "$RGB_URL" \
|
|
463
|
+
RGB_RESPONSE=$(curl -s -X POST "$BASE_URL/dimmer/v1/device/devicergbstatus" \
|
|
491
464
|
-H "Content-Type: application/json" \
|
|
492
465
|
-H "accept-language: en" \
|
|
493
466
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -506,9 +479,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
506
479
|
echo "$RGB_RESPONSE" | jq '.'
|
|
507
480
|
elif [[ "$DEVICE_TYPE" == "wifi-switch-1.3" ]]; then
|
|
508
481
|
echo "Getting device details..."
|
|
509
|
-
|
|
510
|
-
echo "Calling URL: $DETAILS_URL"
|
|
511
|
-
DETAILS_RESPONSE=$(curl -s -X GET "$DETAILS_URL" \
|
|
482
|
+
DETAILS_RESPONSE=$(curl -s -X GET "$BASE_URL/v1/device/$DEVICE_CID/detail" \
|
|
512
483
|
-H "Content-Type: application/json" \
|
|
513
484
|
-H "accept-language: en" \
|
|
514
485
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -517,9 +488,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
517
488
|
-H "tz: America/New_York")
|
|
518
489
|
elif [[ "$DEVICE_TYPE" == *"Core"* ]] || [[ "$DEVICE_TYPE" == *"LAP"* ]] || [[ "$DEVICE_TYPE" == "Dual200S" ]] || [[ "$DEVICE_TYPE" == *"LTF-"* ]] || [[ "$DEVICE_TYPE" == *"Classic"* ]] || [[ "$DEVICE_TYPE" == *"LUH"* ]] || [[ "$DEVICE_TYPE" == *"LEH"* ]]; then
|
|
519
490
|
echo "Getting device details..."
|
|
520
|
-
|
|
521
|
-
echo "Calling URL: $DETAILS_URL"
|
|
522
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
491
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/cloud/v2/deviceManaged/bypassV2" \
|
|
523
492
|
-H "Content-Type: application/json; charset=UTF-8" \
|
|
524
493
|
-H "User-Agent: okhttp/3.12.1" \
|
|
525
494
|
-d '{
|
|
@@ -532,12 +501,9 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
532
501
|
"deviceRegion": "US",
|
|
533
502
|
"method": "bypassV2",
|
|
534
503
|
"payload": {
|
|
535
|
-
"
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
},
|
|
539
|
-
"method": "getPurifierStatus",
|
|
540
|
-
"source": "APP"
|
|
504
|
+
"method": "getHumidifierStatus",
|
|
505
|
+
"source": "APP",
|
|
506
|
+
"data": {}
|
|
541
507
|
},
|
|
542
508
|
"phoneBrand": "SM N9005",
|
|
543
509
|
"phoneOS": "Android",
|
|
@@ -547,9 +513,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
547
513
|
}')
|
|
548
514
|
elif [[ "$DEVICE_TYPE" == *"LV-"* ]]; then
|
|
549
515
|
echo "Getting device details..."
|
|
550
|
-
|
|
551
|
-
echo "Calling URL: $DETAILS_URL"
|
|
552
|
-
DETAILS_RESPONSE=$(curl -s -X POST "$DETAILS_URL" \
|
|
516
|
+
DETAILS_RESPONSE=$(curl -s -X POST "$BASE_URL/131airPurifier/v1/device/deviceDetail" \
|
|
553
517
|
-H "Content-Type: application/json" \
|
|
554
518
|
-H "accept-language: en" \
|
|
555
519
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -575,9 +539,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
575
539
|
|
|
576
540
|
# Get device status
|
|
577
541
|
echo "Getting device status..."
|
|
578
|
-
|
|
579
|
-
echo "Calling URL: $STATUS_URL"
|
|
580
|
-
STATUS_RESPONSE=$(curl -s -X POST "$STATUS_URL" \
|
|
542
|
+
STATUS_RESPONSE=$(curl -s -X POST "$BASE_URL/131airPurifier/v1/device/deviceStatus" \
|
|
581
543
|
-H "Content-Type: application/json" \
|
|
582
544
|
-H "accept-language: en" \
|
|
583
545
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -594,17 +556,18 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
594
556
|
|
|
595
557
|
echo "Status for $DEVICE_NAME:"
|
|
596
558
|
echo "$STATUS_RESPONSE" | jq '.'
|
|
559
|
+
elif [[ "$DEVICE_TYPE" == "ESW03-USA" ]]; then
|
|
560
|
+
echo "Getting energy details for 10A outlet..."
|
|
597
561
|
fi
|
|
598
562
|
|
|
599
563
|
echo "Details for $DEVICE_NAME:"
|
|
600
564
|
echo "$DETAILS_RESPONSE" | jq '.'
|
|
601
565
|
|
|
602
566
|
# Get device status based on device type
|
|
603
|
-
if [[ "$DEVICE_TYPE" == *"Core"* ]] || [[ "$DEVICE_TYPE" == *"LAP"* ]]
|
|
567
|
+
if [[ "$DEVICE_TYPE" == *"Core"* ]] || [[ "$DEVICE_TYPE" == *"LAP"* ]]; then
|
|
568
|
+
# Air purifiers
|
|
604
569
|
echo "Getting purifier status..."
|
|
605
|
-
|
|
606
|
-
echo "Calling URL: $STATUS_URL"
|
|
607
|
-
STATUS_RESPONSE=$(curl -s -X POST "$STATUS_URL" \
|
|
570
|
+
STATUS_RESPONSE=$(curl -s -X POST "$BASE_URL/cloud/v2/deviceManaged/bypassV2" \
|
|
608
571
|
-H "Content-Type: application/json; charset=UTF-8" \
|
|
609
572
|
-H "User-Agent: okhttp/3.12.1" \
|
|
610
573
|
-d '{
|
|
@@ -633,6 +596,66 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
633
596
|
|
|
634
597
|
echo "Purifier status for $DEVICE_NAME:"
|
|
635
598
|
echo "$STATUS_RESPONSE" | jq '.'
|
|
599
|
+
|
|
600
|
+
elif [[ "$DEVICE_TYPE" == "Dual200S" ]] || [[ "$DEVICE_TYPE" == *"Classic"* ]] || [[ "$DEVICE_TYPE" == *"LUH"* ]] || [[ "$DEVICE_TYPE" == *"LEH"* ]]; then
|
|
601
|
+
# Humidifiers
|
|
602
|
+
echo "Getting humidifier status..."
|
|
603
|
+
STATUS_RESPONSE=$(curl -s -X POST "$BASE_URL/cloud/v2/deviceManaged/bypassV2" \
|
|
604
|
+
-H "Content-Type: application/json; charset=UTF-8" \
|
|
605
|
+
-H "User-Agent: okhttp/3.12.1" \
|
|
606
|
+
-d '{
|
|
607
|
+
"acceptLanguage": "en",
|
|
608
|
+
"accountID": "'"$ACCOUNT_ID"'",
|
|
609
|
+
"appVersion": "2.8.6",
|
|
610
|
+
"cid": "'"$DEVICE_CID"'",
|
|
611
|
+
"configModule": "'"$CONFIG_MODULE"'",
|
|
612
|
+
"debugMode": false,
|
|
613
|
+
"deviceRegion": "US",
|
|
614
|
+
"method": "bypassV2",
|
|
615
|
+
"payload": {
|
|
616
|
+
"method": "getHumidifierStatus",
|
|
617
|
+
"source": "APP",
|
|
618
|
+
"data": {}
|
|
619
|
+
},
|
|
620
|
+
"phoneBrand": "SM N9005",
|
|
621
|
+
"phoneOS": "Android",
|
|
622
|
+
"timeZone": "America/New_York",
|
|
623
|
+
"token": "'"$TOKEN"'",
|
|
624
|
+
"traceId": "TRACE_ID"
|
|
625
|
+
}')
|
|
626
|
+
|
|
627
|
+
echo "Humidifier status for $DEVICE_NAME:"
|
|
628
|
+
echo "$STATUS_RESPONSE" | jq '.'
|
|
629
|
+
|
|
630
|
+
elif [[ "$DEVICE_TYPE" == *"LTF-"* ]]; then
|
|
631
|
+
# Tower Fans
|
|
632
|
+
echo "Getting tower fan status..."
|
|
633
|
+
STATUS_RESPONSE=$(curl -s -X POST "$BASE_URL/cloud/v2/deviceManaged/bypassV2" \
|
|
634
|
+
-H "Content-Type: application/json; charset=UTF-8" \
|
|
635
|
+
-H "User-Agent: okhttp/3.12.1" \
|
|
636
|
+
-d '{
|
|
637
|
+
"acceptLanguage": "en",
|
|
638
|
+
"accountID": "'"$ACCOUNT_ID"'",
|
|
639
|
+
"appVersion": "2.8.6",
|
|
640
|
+
"cid": "'"$DEVICE_CID"'",
|
|
641
|
+
"configModule": "'"$CONFIG_MODULE"'",
|
|
642
|
+
"debugMode": false,
|
|
643
|
+
"deviceRegion": "US",
|
|
644
|
+
"method": "bypassV2",
|
|
645
|
+
"payload": {
|
|
646
|
+
"method": "getTowerFanStatus",
|
|
647
|
+
"source": "APP",
|
|
648
|
+
"data": {}
|
|
649
|
+
},
|
|
650
|
+
"phoneBrand": "SM N9005",
|
|
651
|
+
"phoneOS": "Android",
|
|
652
|
+
"timeZone": "America/New_York",
|
|
653
|
+
"token": "'"$TOKEN"'",
|
|
654
|
+
"traceId": "TRACE_ID"
|
|
655
|
+
}')
|
|
656
|
+
|
|
657
|
+
echo "Tower fan status for $DEVICE_NAME:"
|
|
658
|
+
echo "$STATUS_RESPONSE" | jq '.'
|
|
636
659
|
fi
|
|
637
660
|
|
|
638
661
|
# For outlets with energy monitoring
|
|
@@ -640,9 +663,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
640
663
|
echo "Getting energy details for wifi-switch-1.3..."
|
|
641
664
|
|
|
642
665
|
# Get weekly energy
|
|
643
|
-
|
|
644
|
-
echo "Calling URL: $WEEKLY_URL"
|
|
645
|
-
WEEKLY_RESPONSE=$(curl -s -X GET "$WEEKLY_URL" \
|
|
666
|
+
WEEKLY_RESPONSE=$(curl -s -X GET "$BASE_URL/v1/device/$DEVICE_CID/energy/week" \
|
|
646
667
|
-H "Content-Type: application/json" \
|
|
647
668
|
-H "accept-language: en" \
|
|
648
669
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -654,9 +675,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
654
675
|
echo "$WEEKLY_RESPONSE" | jq '.'
|
|
655
676
|
|
|
656
677
|
# Get monthly energy
|
|
657
|
-
|
|
658
|
-
echo "Calling URL: $MONTHLY_URL"
|
|
659
|
-
MONTHLY_RESPONSE=$(curl -s -X GET "$MONTHLY_URL" \
|
|
678
|
+
MONTHLY_RESPONSE=$(curl -s -X GET "$BASE_URL/v1/device/$DEVICE_CID/energy/month" \
|
|
660
679
|
-H "Content-Type: application/json" \
|
|
661
680
|
-H "accept-language: en" \
|
|
662
681
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -668,9 +687,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
668
687
|
echo "$MONTHLY_RESPONSE" | jq '.'
|
|
669
688
|
|
|
670
689
|
# Get yearly energy
|
|
671
|
-
|
|
672
|
-
echo "Calling URL: $YEARLY_URL"
|
|
673
|
-
YEARLY_RESPONSE=$(curl -s -X GET "$YEARLY_URL" \
|
|
690
|
+
YEARLY_RESPONSE=$(curl -s -X GET "$BASE_URL/v1/device/$DEVICE_CID/energy/year" \
|
|
674
691
|
-H "Content-Type: application/json" \
|
|
675
692
|
-H "accept-language: en" \
|
|
676
693
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -684,9 +701,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
684
701
|
echo "Getting energy details for ESO15-TB..."
|
|
685
702
|
|
|
686
703
|
# Get weekly energy
|
|
687
|
-
|
|
688
|
-
echo "Calling URL: $WEEKLY_URL"
|
|
689
|
-
WEEKLY_RESPONSE=$(curl -s -X POST "$WEEKLY_URL" \
|
|
704
|
+
WEEKLY_RESPONSE=$(curl -s -X POST "$BASE_URL/outdoorsocket15a/v1/device/energyweek" \
|
|
690
705
|
-H "Content-Type: application/json" \
|
|
691
706
|
-H "accept-language: en" \
|
|
692
707
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -711,9 +726,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
711
726
|
echo "$WEEKLY_RESPONSE" | jq '.'
|
|
712
727
|
|
|
713
728
|
# Get monthly energy
|
|
714
|
-
|
|
715
|
-
echo "Calling URL: $MONTHLY_URL"
|
|
716
|
-
MONTHLY_RESPONSE=$(curl -s -X POST "$MONTHLY_URL" \
|
|
729
|
+
MONTHLY_RESPONSE=$(curl -s -X POST "$BASE_URL/outdoorsocket15a/v1/device/energymonth" \
|
|
717
730
|
-H "Content-Type: application/json" \
|
|
718
731
|
-H "accept-language: en" \
|
|
719
732
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -738,9 +751,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
738
751
|
echo "$MONTHLY_RESPONSE" | jq '.'
|
|
739
752
|
|
|
740
753
|
# Get yearly energy
|
|
741
|
-
|
|
742
|
-
echo "Calling URL: $YEARLY_URL"
|
|
743
|
-
YEARLY_RESPONSE=$(curl -s -X POST "$YEARLY_URL" \
|
|
754
|
+
YEARLY_RESPONSE=$(curl -s -X POST "$BASE_URL/outdoorsocket15a/v1/device/energyyear" \
|
|
744
755
|
-H "Content-Type: application/json" \
|
|
745
756
|
-H "accept-language: en" \
|
|
746
757
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -767,9 +778,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
767
778
|
echo "Getting energy details for ESW03-USA..."
|
|
768
779
|
|
|
769
780
|
# Get weekly energy
|
|
770
|
-
|
|
771
|
-
echo "Calling URL: $WEEKLY_URL"
|
|
772
|
-
WEEKLY_RESPONSE=$(curl -s -X POST "$WEEKLY_URL" \
|
|
781
|
+
WEEKLY_RESPONSE=$(curl -s -X POST "$BASE_URL/10a/v1/device/energyweek" \
|
|
773
782
|
-H "Content-Type: application/json" \
|
|
774
783
|
-H "accept-language: en" \
|
|
775
784
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -794,9 +803,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
794
803
|
echo "$WEEKLY_RESPONSE" | jq '.'
|
|
795
804
|
|
|
796
805
|
# Get monthly energy
|
|
797
|
-
|
|
798
|
-
echo "Calling URL: $MONTHLY_URL"
|
|
799
|
-
MONTHLY_RESPONSE=$(curl -s -X POST "$MONTHLY_URL" \
|
|
806
|
+
MONTHLY_RESPONSE=$(curl -s -X POST "$BASE_URL/10a/v1/device/energymonth" \
|
|
800
807
|
-H "Content-Type: application/json" \
|
|
801
808
|
-H "accept-language: en" \
|
|
802
809
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -821,9 +828,7 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
821
828
|
echo "$MONTHLY_RESPONSE" | jq '.'
|
|
822
829
|
|
|
823
830
|
# Get yearly energy
|
|
824
|
-
|
|
825
|
-
echo "Calling URL: $YEARLY_URL"
|
|
826
|
-
YEARLY_RESPONSE=$(curl -s -X POST "$YEARLY_URL" \
|
|
831
|
+
YEARLY_RESPONSE=$(curl -s -X POST "$BASE_URL/10a/v1/device/energyyear" \
|
|
827
832
|
-H "Content-Type: application/json" \
|
|
828
833
|
-H "accept-language: en" \
|
|
829
834
|
-H "accountId: $ACCOUNT_ID" \
|
|
@@ -848,30 +853,6 @@ echo "$DEVICES_RESPONSE" | jq -c '.result.list[]' | while read -r device; do
|
|
|
848
853
|
echo "$YEARLY_RESPONSE" | jq '.'
|
|
849
854
|
fi
|
|
850
855
|
|
|
851
|
-
# For humidifiers
|
|
852
|
-
if [[ "$DEVICE_TYPE" == *"Classic"* ]] || [[ "$DEVICE_TYPE" == *"LUH"* ]] || [[ "$DEVICE_TYPE" == *"LEH"* ]]; then
|
|
853
|
-
echo "Getting humidifier status..."
|
|
854
|
-
STATUS_URL="$BASE_URL/cloud/v2/deviceManaged/bypassV2"
|
|
855
|
-
echo "Calling URL: $STATUS_URL"
|
|
856
|
-
STATUS_RESPONSE=$(curl -s -X POST "$STATUS_URL" \
|
|
857
|
-
-H "Content-Type: application/json" \
|
|
858
|
-
-d '{
|
|
859
|
-
"token": "'"$TOKEN"'",
|
|
860
|
-
"accountID": "'"$ACCOUNT_ID"'",
|
|
861
|
-
"cid": "'"$DEVICE_CID"'",
|
|
862
|
-
"configModule": "'"$CONFIG_MODULE"'",
|
|
863
|
-
"method": "bypassV2",
|
|
864
|
-
"payload": {
|
|
865
|
-
"method": "getHumidifierStatus",
|
|
866
|
-
"source": "APP",
|
|
867
|
-
"data": {}
|
|
868
|
-
}
|
|
869
|
-
}')
|
|
870
|
-
|
|
871
|
-
echo "Humidifier status for $DEVICE_NAME:"
|
|
872
|
-
echo "$STATUS_RESPONSE" | jq '.'
|
|
873
|
-
fi
|
|
874
|
-
|
|
875
856
|
echo "----------------------------------------"
|
|
876
857
|
done
|
|
877
858
|
|