node-switchbot 1.6.0-beta.3 → 1.6.0-beta.5
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/lib/switchbot-advertising.js +68 -61
- package/package.json +1 -1
|
@@ -267,7 +267,7 @@ class SwitchbotAdvertising {
|
|
|
267
267
|
let led = (byte5 & 0b00100000) >> 5;
|
|
268
268
|
let iot = (byte5 & 0b00010000) >> 4;
|
|
269
269
|
let sense_distance = (byte5 & 0b00001100) >> 2;
|
|
270
|
-
let
|
|
270
|
+
let lightLevel = byte5 & 0b00000011;
|
|
271
271
|
let is_light = byte5 & 0b00000010 ? true : false;
|
|
272
272
|
|
|
273
273
|
let data = {
|
|
@@ -279,7 +279,8 @@ class SwitchbotAdvertising {
|
|
|
279
279
|
led: led,
|
|
280
280
|
iot: iot,
|
|
281
281
|
sense_distance: sense_distance,
|
|
282
|
-
|
|
282
|
+
lightLevel:
|
|
283
|
+
lightLevel == 1 ? "dark" : lightLevel == 2 ? "bright" : "unknown",
|
|
283
284
|
is_light: is_light,
|
|
284
285
|
};
|
|
285
286
|
|
|
@@ -307,7 +308,7 @@ class SwitchbotAdvertising {
|
|
|
307
308
|
let battery = byte2 & 0b01111111; // %
|
|
308
309
|
let contact_open = byte3 & 0b00000010 == 0b00000010;
|
|
309
310
|
let contact_timeout = byte3 & 0b00000100 == 0b00000100;
|
|
310
|
-
let
|
|
311
|
+
let lightLevel = byte3 & 0b00000001;
|
|
311
312
|
let button_count = byte8 & 0b00001111;
|
|
312
313
|
|
|
313
314
|
let data = {
|
|
@@ -318,9 +319,14 @@ class SwitchbotAdvertising {
|
|
|
318
319
|
battery: battery,
|
|
319
320
|
contact_open: contact_open,
|
|
320
321
|
contact_timeout: contact_timeout,
|
|
321
|
-
|
|
322
|
+
lightLevel: lightLevel == 0 ? "dark" : "bright",
|
|
322
323
|
button_count: button_count,
|
|
323
|
-
|
|
324
|
+
doorState:
|
|
325
|
+
hallState == 0
|
|
326
|
+
? "close"
|
|
327
|
+
: hallState == 1
|
|
328
|
+
? "open"
|
|
329
|
+
: "timeout no closed",
|
|
324
330
|
};
|
|
325
331
|
|
|
326
332
|
return data;
|
|
@@ -343,7 +349,8 @@ class SwitchbotAdvertising {
|
|
|
343
349
|
let calibration = byte1 & 0b01000000 ? true : false; // Whether the calibration is completed
|
|
344
350
|
let battery = byte2 & 0b01111111; // %
|
|
345
351
|
let inMotion = byte3 & 0b10000000 ? true : false;
|
|
346
|
-
let currPosition =
|
|
352
|
+
let currPosition = byte3 & 0b01111111; // current positon %
|
|
353
|
+
//let currPosition = max(min(byte3 & 0b01111111, 100), 0) //byte3 & 0b01111111; // current positon %
|
|
347
354
|
let lightLevel = (byte4 >> 4) & 0b00001111; // light sensor level (1-10)
|
|
348
355
|
let deviceChain = byte4 & 0b00000111;
|
|
349
356
|
|
|
@@ -371,23 +378,23 @@ class SwitchbotAdvertising {
|
|
|
371
378
|
return null;
|
|
372
379
|
}
|
|
373
380
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
381
|
+
let byte6 = buf.readUInt8(6);
|
|
382
|
+
let byte7 = buf.readUInt8(7);
|
|
383
|
+
let byte8 = buf.readUInt8(8);
|
|
384
|
+
let byte9 = buf.readUInt8(9);
|
|
385
|
+
let byte10 = buf.readUInt8(10);
|
|
379
386
|
|
|
380
387
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
388
|
+
let sequence_number = byte6;
|
|
389
|
+
let state = byte7 & 0b01111111 ? true : false;
|
|
390
|
+
let brightness = byte7 & 0b01111111;
|
|
391
|
+
let delay = byte8 & 0b10000000;
|
|
392
|
+
let preset = byte8 & 0b00001000;
|
|
393
|
+
let color_mode = byte8 & 0b00000111;
|
|
394
|
+
let speed = byte9 & 0b01111111;
|
|
395
|
+
let loop_index = byte10 & 0b11111110;
|
|
389
396
|
|
|
390
|
-
|
|
397
|
+
let data = {
|
|
391
398
|
model: "u",
|
|
392
399
|
modelName: "WoBulb",
|
|
393
400
|
sequence_number: sequence_number,
|
|
@@ -412,22 +419,22 @@ class SwitchbotAdvertising {
|
|
|
412
419
|
}
|
|
413
420
|
return null;
|
|
414
421
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
422
|
+
let byte9 = buf.readUInt8(9); // byte9: plug mini state; 0x00=off, 0x80=on
|
|
423
|
+
let byte10 = buf.readUInt8(10); // byte10: bit0: 0=no delay,1=delay, bit1:0=no timer, 1=timer; bit2:0=no sync time, 1=sync'ed time
|
|
424
|
+
let byte11 = buf.readUInt8(11); // byte11: wifi rssi
|
|
425
|
+
let byte12 = buf.readUInt8(12); // byte12: bit7: overload?
|
|
426
|
+
let byte13 = buf.readUInt8(13); // byte12[bit0~6] + byte13: current power value
|
|
427
|
+
|
|
428
|
+
let state = byte9 === 0x00 ? "off" : byte9 === 0x80 ? "on" : null;
|
|
429
|
+
let delay = !!(byte10 & 0b00000001);
|
|
430
|
+
let timer = !!(byte10 & 0b00000010);
|
|
431
|
+
let syncUtcTime = !!(byte10 & 0b00000100);
|
|
432
|
+
let wifiRssi = byte11;
|
|
433
|
+
let overload = !!(byte12 & 0b10000000);
|
|
434
|
+
let currentPower = (((byte12 & 0b01111111) << 8) + byte13) / 10; // in watt
|
|
428
435
|
// TODO: voltage ???
|
|
429
436
|
|
|
430
|
-
|
|
437
|
+
let data = {
|
|
431
438
|
model: "g",
|
|
432
439
|
modelName: "WoPlugMini",
|
|
433
440
|
state: state,
|
|
@@ -451,22 +458,22 @@ class SwitchbotAdvertising {
|
|
|
451
458
|
}
|
|
452
459
|
return null;
|
|
453
460
|
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
461
|
+
let byte9 = buf.readUInt8(9); // byte9: plug mini state; 0x00=off, 0x80=on
|
|
462
|
+
let byte10 = buf.readUInt8(10); // byte10: bit0: 0=no delay,1=delay, bit1:0=no timer, 1=timer; bit2:0=no sync time, 1=sync'ed time
|
|
463
|
+
let byte11 = buf.readUInt8(11); // byte11: wifi rssi
|
|
464
|
+
let byte12 = buf.readUInt8(12); // byte12: bit7: overload?
|
|
465
|
+
let byte13 = buf.readUInt8(13); // byte12[bit0~6] + byte13: current power value
|
|
466
|
+
|
|
467
|
+
let state = byte9 === 0x00 ? "off" : byte9 === 0x80 ? "on" : null;
|
|
468
|
+
let delay = !!(byte10 & 0b00000001);
|
|
469
|
+
let timer = !!(byte10 & 0b00000010);
|
|
470
|
+
let syncUtcTime = !!(byte10 & 0b00000100);
|
|
471
|
+
let wifiRssi = byte11;
|
|
472
|
+
let overload = !!(byte12 & 0b10000000);
|
|
473
|
+
let currentPower = (((byte12 & 0b01111111) << 8) + byte13) / 10; // in watt
|
|
467
474
|
// TODO: voltage ???
|
|
468
475
|
|
|
469
|
-
|
|
476
|
+
let data = {
|
|
470
477
|
model: "j",
|
|
471
478
|
modelName: "WoPlugMini",
|
|
472
479
|
state: state,
|
|
@@ -550,24 +557,24 @@ class SwitchbotAdvertising {
|
|
|
550
557
|
return null;
|
|
551
558
|
}
|
|
552
559
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
560
|
+
let byte7 = buf.readUInt8(7);
|
|
561
|
+
let byte8 = buf.readUInt8(8);
|
|
562
|
+
let byte9 = buf.readUInt8(9);
|
|
563
|
+
let byte10 = buf.readUInt8(10);
|
|
557
564
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
+
let state = byte7 & 0b10000000 ? true : false;
|
|
566
|
+
let brightness = byte7 & 0b01111111;
|
|
567
|
+
let delay = byte8 & 0b10000000;
|
|
568
|
+
let preset = byte8 & 0b00001000;
|
|
569
|
+
let color_mode = byte8 & 0b00000111;
|
|
570
|
+
let speed = byte9 & 0b01111111;
|
|
571
|
+
let loop_index = byte10 & 0b11111110;
|
|
565
572
|
|
|
566
|
-
|
|
573
|
+
let data = {
|
|
567
574
|
model: "r",
|
|
568
575
|
modelName: "WoStrip",
|
|
569
576
|
state: state,
|
|
570
|
-
|
|
577
|
+
brightness: brightness,
|
|
571
578
|
delay: delay,
|
|
572
579
|
preset: preset,
|
|
573
580
|
color_mode: color_mode,
|
package/package.json
CHANGED