node-switchbot 1.6.0-beta.1 → 1.6.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/lib/switchbot-advertising.js +52 -34
- package/package.json +1 -1
|
@@ -198,8 +198,8 @@ class SwitchbotAdvertising {
|
|
|
198
198
|
let byte5 = buf.readUInt8(5);
|
|
199
199
|
|
|
200
200
|
let temp_sign = byte4 & 0b10000000 ? 1 : -1;
|
|
201
|
-
let temp_c = temp_sign * ((byte4 & 0b01111111) + byte3 / 10);
|
|
202
|
-
let temp_f = (temp_c * 9
|
|
201
|
+
let temp_c = temp_sign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
|
|
202
|
+
let temp_f = (temp_c * 9 / 5) + 32;
|
|
203
203
|
temp_f = Math.round(temp_f * 10) / 10;
|
|
204
204
|
|
|
205
205
|
let data = {
|
|
@@ -256,23 +256,35 @@ class SwitchbotAdvertising {
|
|
|
256
256
|
}
|
|
257
257
|
return null;
|
|
258
258
|
}
|
|
259
|
+
|
|
260
|
+
|
|
259
261
|
let byte1 = buf.readUInt8(1);
|
|
260
262
|
let byte2 = buf.readUInt8(2);
|
|
261
|
-
//
|
|
262
|
-
//
|
|
263
|
+
//let byte3 = buf.readUInt8(3);
|
|
264
|
+
//let byte4 = buf.readUInt8(4);
|
|
263
265
|
let byte5 = buf.readUInt8(5);
|
|
264
266
|
|
|
265
|
-
|
|
266
|
-
let
|
|
267
|
-
let
|
|
267
|
+
|
|
268
|
+
let tested = byte1 & 0b10000000 ? true : false;
|
|
269
|
+
let movement = byte1 & 0b01000000 ? true : false;
|
|
270
|
+
let battery = byte2 & 0b01111111;
|
|
271
|
+
let led = (byte5 & 0b00100000) >> 5;
|
|
272
|
+
let iot = (byte5 & 0b00010000) >> 4;
|
|
273
|
+
let sense_distance = (byte5 & 0b00001100) >> 2;
|
|
274
|
+
let light_intensity = byte5 & 0b00000011;
|
|
275
|
+
let is_light = byte5 & 0b00000010 ? true : false;
|
|
268
276
|
|
|
269
277
|
let data = {
|
|
270
278
|
model: "s",
|
|
271
279
|
modelName: "WoMotion",
|
|
272
|
-
|
|
280
|
+
tested: tested,
|
|
281
|
+
movement: movement,
|
|
273
282
|
battery: battery,
|
|
274
|
-
|
|
275
|
-
|
|
283
|
+
led: led,
|
|
284
|
+
iot: iot,
|
|
285
|
+
sense_distance: sense_distance,
|
|
286
|
+
light_intensity: light_intensity,
|
|
287
|
+
is_light: is_light,
|
|
276
288
|
};
|
|
277
289
|
|
|
278
290
|
return data;
|
|
@@ -295,25 +307,28 @@ class SwitchbotAdvertising {
|
|
|
295
307
|
// let byte5 = buf.readUInt8(5);
|
|
296
308
|
// let byte6 = buf.readUInt8(6);
|
|
297
309
|
// let byte7 = buf.readUInt8(7);
|
|
298
|
-
|
|
310
|
+
let byte8 = buf.readUInt8(8);
|
|
299
311
|
|
|
300
|
-
let pirState = byte1 & 0b01000000 ? true : false; // 1 - Movement detected
|
|
301
|
-
let battery = byte2 & 0b01111111; // %
|
|
302
312
|
let hallState = (byte3 >> 1) & 0b00000011;
|
|
303
|
-
let
|
|
313
|
+
let tested = byte1 & 0b10000000;
|
|
314
|
+
let movement = byte1 & 0b01000000 ? true : false; // 1 - Movement detected
|
|
315
|
+
let battery = byte2 & 0b01111111; // %
|
|
316
|
+
let contact_open = byte3 & 0b00000010 == 0b00000010;
|
|
317
|
+
let contact_timeout = byte3 & 0b00000100 == 0b00000100;
|
|
318
|
+
let is_light = byte3 & 0b00000001 ? true : false;
|
|
319
|
+
let button_count = (data[8] & 0b00001111);
|
|
304
320
|
|
|
305
321
|
let data = {
|
|
306
322
|
model: "d",
|
|
307
323
|
modelName: "WoContact",
|
|
308
|
-
movement:
|
|
324
|
+
movement: movement,
|
|
325
|
+
tested: tested,
|
|
309
326
|
battery: battery,
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
: "timeout no closed",
|
|
316
|
-
lightLevel: lightLevel == 0 ? "dark" : "bright",
|
|
327
|
+
contact_open: contact_open,
|
|
328
|
+
contact_timeout: contact_timeout,
|
|
329
|
+
is_light: is_light,
|
|
330
|
+
button_count: button_count,
|
|
331
|
+
hallState: hallState,
|
|
317
332
|
};
|
|
318
333
|
|
|
319
334
|
return data;
|
|
@@ -332,20 +347,23 @@ class SwitchbotAdvertising {
|
|
|
332
347
|
let byte2 = buf.readUInt8(2);
|
|
333
348
|
let byte3 = buf.readUInt8(3);
|
|
334
349
|
let byte4 = buf.readUInt8(4);
|
|
335
|
-
// let byte5 = buf.readUInt8(5);
|
|
336
350
|
|
|
337
351
|
let calibration = byte1 & 0b01000000 ? true : false; // Whether the calibration is completed
|
|
338
352
|
let battery = byte2 & 0b01111111; // %
|
|
339
|
-
let
|
|
353
|
+
let inMotion = byte3 & 0b10000000 ? true : false;
|
|
354
|
+
let currPosition = max(min(data[3] & 0b01111111, 100), 0) //byte3 & 0b01111111; // current positon %
|
|
340
355
|
let lightLevel = (byte4 >> 4) & 0b00001111; // light sensor level (1-10)
|
|
356
|
+
let deviceChain = byte4 & 0b00000111;
|
|
341
357
|
|
|
342
358
|
let data = {
|
|
343
359
|
model: "c",
|
|
344
360
|
modelName: "WoCurtain",
|
|
345
361
|
calibration: calibration,
|
|
346
362
|
battery: battery,
|
|
363
|
+
inMotion: inMotion,
|
|
347
364
|
position: currPosition,
|
|
348
365
|
lightLevel: lightLevel,
|
|
366
|
+
deviceChain: deviceChain,
|
|
349
367
|
};
|
|
350
368
|
|
|
351
369
|
return data;
|
|
@@ -369,7 +387,7 @@ class SwitchbotAdvertising {
|
|
|
369
387
|
|
|
370
388
|
|
|
371
389
|
const sequence_number = byte6;
|
|
372
|
-
const
|
|
390
|
+
const state = byte7 & 0b01111111 ? true : false;
|
|
373
391
|
const brightness = byte7 & 0b01111111;
|
|
374
392
|
const delay = byte8 & 0b10000000;
|
|
375
393
|
const preset = byte8 & 0b00001000;
|
|
@@ -381,7 +399,7 @@ class SwitchbotAdvertising {
|
|
|
381
399
|
model: "u",
|
|
382
400
|
modelName: "WoBulb",
|
|
383
401
|
sequence_number: sequence_number,
|
|
384
|
-
|
|
402
|
+
state: state,
|
|
385
403
|
brightness: brightness,
|
|
386
404
|
delay: delay,
|
|
387
405
|
preset: preset,
|
|
@@ -486,14 +504,14 @@ class SwitchbotAdvertising {
|
|
|
486
504
|
// let byte4 = buf.readUInt8(4);
|
|
487
505
|
let byte5 = buf.readUInt8(5);
|
|
488
506
|
|
|
489
|
-
//let
|
|
507
|
+
//let movement = (byte1 & 0b01000000) ? true : false; // 1 - Movement detected
|
|
490
508
|
let battery = byte2 & 0b01111111; // %
|
|
491
509
|
//let lightLevel = byte5 & 0b00000011;
|
|
492
510
|
|
|
493
511
|
let data = {
|
|
494
512
|
model: "o",
|
|
495
513
|
modelName: "WoSmartLock",
|
|
496
|
-
//movement:
|
|
514
|
+
//movement: movement,
|
|
497
515
|
battery: battery,
|
|
498
516
|
//lightLevel: (lightLevel == 1) ? 'dark' : ((lightLevel == 2) ? 'bright' : 'unknown'),
|
|
499
517
|
};
|
|
@@ -516,8 +534,8 @@ class SwitchbotAdvertising {
|
|
|
516
534
|
let byte5 = buf.readUInt8(5);
|
|
517
535
|
|
|
518
536
|
let temp_sign = byte4 & 0b10000000 ? 1 : -1;
|
|
519
|
-
let temp_c = temp_sign * ((byte4 & 0b01111111) + byte3 / 10);
|
|
520
|
-
let temp_f = (temp_c * 9
|
|
537
|
+
let temp_c = temp_sign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
|
|
538
|
+
let temp_f = (temp_c * 9 / 5) + 32;
|
|
521
539
|
temp_f = Math.round(temp_f * 10) / 10;
|
|
522
540
|
|
|
523
541
|
let data = {
|
|
@@ -550,8 +568,8 @@ class SwitchbotAdvertising {
|
|
|
550
568
|
const byte9 = buf.readUInt8(9);
|
|
551
569
|
const byte10 = buf.readUInt8(10);
|
|
552
570
|
|
|
553
|
-
const
|
|
554
|
-
const
|
|
571
|
+
const state = byte7 & 0b10000000 ? true : false;
|
|
572
|
+
const lightLevel = byte7 & 0b01111111;
|
|
555
573
|
const delay = byte8 & 0b10000000;
|
|
556
574
|
const preset = byte8 & 0b00001000;
|
|
557
575
|
const color_mode = byte8 & 0b00000111;
|
|
@@ -561,8 +579,8 @@ class SwitchbotAdvertising {
|
|
|
561
579
|
const data = {
|
|
562
580
|
model: "r",
|
|
563
581
|
modelName: "WoStrip",
|
|
564
|
-
|
|
565
|
-
|
|
582
|
+
state: state,
|
|
583
|
+
lightLevel: lightLevel,
|
|
566
584
|
delay: delay,
|
|
567
585
|
preset: preset,
|
|
568
586
|
color_mode: color_mode,
|
package/package.json
CHANGED