node-switchbot 1.6.0-beta.1 → 1.6.0-beta.3
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 +51 -46
- 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 = {
|
|
@@ -227,10 +227,8 @@ class SwitchbotAdvertising {
|
|
|
227
227
|
return null;
|
|
228
228
|
}
|
|
229
229
|
let byte1 = buf.readUInt8(1);
|
|
230
|
-
// let byte2 = buf.readUInt8(2);
|
|
231
|
-
let byte3 = buf.readUInt8(3);
|
|
232
230
|
let byte4 = buf.readUInt8(4);
|
|
233
|
-
|
|
231
|
+
|
|
234
232
|
|
|
235
233
|
let onState = byte1 & 0b10000000 ? true : false; // 1 - on
|
|
236
234
|
let autoMode = byte4 & 0b10000000 ? true : false; // 1 - auto
|
|
@@ -256,23 +254,33 @@ class SwitchbotAdvertising {
|
|
|
256
254
|
}
|
|
257
255
|
return null;
|
|
258
256
|
}
|
|
257
|
+
|
|
258
|
+
|
|
259
259
|
let byte1 = buf.readUInt8(1);
|
|
260
260
|
let byte2 = buf.readUInt8(2);
|
|
261
|
-
// let byte3 = buf.readUInt8(3);
|
|
262
|
-
// let byte4 = buf.readUInt8(4);
|
|
263
261
|
let byte5 = buf.readUInt8(5);
|
|
264
262
|
|
|
265
|
-
|
|
266
|
-
let
|
|
267
|
-
let
|
|
263
|
+
|
|
264
|
+
let tested = byte1 & 0b10000000 ? true : false;
|
|
265
|
+
let movement = byte1 & 0b01000000 ? true : false;
|
|
266
|
+
let battery = byte2 & 0b01111111;
|
|
267
|
+
let led = (byte5 & 0b00100000) >> 5;
|
|
268
|
+
let iot = (byte5 & 0b00010000) >> 4;
|
|
269
|
+
let sense_distance = (byte5 & 0b00001100) >> 2;
|
|
270
|
+
let light_intensity = byte5 & 0b00000011;
|
|
271
|
+
let is_light = byte5 & 0b00000010 ? true : false;
|
|
268
272
|
|
|
269
273
|
let data = {
|
|
270
274
|
model: "s",
|
|
271
275
|
modelName: "WoMotion",
|
|
272
|
-
|
|
276
|
+
tested: tested,
|
|
277
|
+
movement: movement,
|
|
273
278
|
battery: battery,
|
|
274
|
-
|
|
275
|
-
|
|
279
|
+
led: led,
|
|
280
|
+
iot: iot,
|
|
281
|
+
sense_distance: sense_distance,
|
|
282
|
+
light_intensity: light_intensity,
|
|
283
|
+
is_light: is_light,
|
|
276
284
|
};
|
|
277
285
|
|
|
278
286
|
return data;
|
|
@@ -291,29 +299,28 @@ class SwitchbotAdvertising {
|
|
|
291
299
|
let byte1 = buf.readUInt8(1);
|
|
292
300
|
let byte2 = buf.readUInt8(2);
|
|
293
301
|
let byte3 = buf.readUInt8(3);
|
|
294
|
-
|
|
295
|
-
// let byte5 = buf.readUInt8(5);
|
|
296
|
-
// let byte6 = buf.readUInt8(6);
|
|
297
|
-
// let byte7 = buf.readUInt8(7);
|
|
298
|
-
// let byte8 = buf.readUInt8(8);
|
|
302
|
+
let byte8 = buf.readUInt8(8);
|
|
299
303
|
|
|
300
|
-
let pirState = byte1 & 0b01000000 ? true : false; // 1 - Movement detected
|
|
301
|
-
let battery = byte2 & 0b01111111; // %
|
|
302
304
|
let hallState = (byte3 >> 1) & 0b00000011;
|
|
303
|
-
let
|
|
305
|
+
let tested = byte1 & 0b10000000;
|
|
306
|
+
let movement = byte1 & 0b01000000 ? true : false; // 1 - Movement detected
|
|
307
|
+
let battery = byte2 & 0b01111111; // %
|
|
308
|
+
let contact_open = byte3 & 0b00000010 == 0b00000010;
|
|
309
|
+
let contact_timeout = byte3 & 0b00000100 == 0b00000100;
|
|
310
|
+
let is_light = byte3 & 0b00000001 ? true : false;
|
|
311
|
+
let button_count = byte8 & 0b00001111;
|
|
304
312
|
|
|
305
313
|
let data = {
|
|
306
314
|
model: "d",
|
|
307
315
|
modelName: "WoContact",
|
|
308
|
-
movement:
|
|
316
|
+
movement: movement,
|
|
317
|
+
tested: tested,
|
|
309
318
|
battery: battery,
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
: "timeout no closed",
|
|
316
|
-
lightLevel: lightLevel == 0 ? "dark" : "bright",
|
|
319
|
+
contact_open: contact_open,
|
|
320
|
+
contact_timeout: contact_timeout,
|
|
321
|
+
is_light: is_light,
|
|
322
|
+
button_count: button_count,
|
|
323
|
+
hallState: hallState,
|
|
317
324
|
};
|
|
318
325
|
|
|
319
326
|
return data;
|
|
@@ -332,20 +339,23 @@ class SwitchbotAdvertising {
|
|
|
332
339
|
let byte2 = buf.readUInt8(2);
|
|
333
340
|
let byte3 = buf.readUInt8(3);
|
|
334
341
|
let byte4 = buf.readUInt8(4);
|
|
335
|
-
// let byte5 = buf.readUInt8(5);
|
|
336
342
|
|
|
337
343
|
let calibration = byte1 & 0b01000000 ? true : false; // Whether the calibration is completed
|
|
338
344
|
let battery = byte2 & 0b01111111; // %
|
|
339
|
-
let
|
|
345
|
+
let inMotion = byte3 & 0b10000000 ? true : false;
|
|
346
|
+
let currPosition = max(min(byte3 & 0b01111111, 100), 0) //byte3 & 0b01111111; // current positon %
|
|
340
347
|
let lightLevel = (byte4 >> 4) & 0b00001111; // light sensor level (1-10)
|
|
348
|
+
let deviceChain = byte4 & 0b00000111;
|
|
341
349
|
|
|
342
350
|
let data = {
|
|
343
351
|
model: "c",
|
|
344
352
|
modelName: "WoCurtain",
|
|
345
353
|
calibration: calibration,
|
|
346
354
|
battery: battery,
|
|
355
|
+
inMotion: inMotion,
|
|
347
356
|
position: currPosition,
|
|
348
357
|
lightLevel: lightLevel,
|
|
358
|
+
deviceChain: deviceChain,
|
|
349
359
|
};
|
|
350
360
|
|
|
351
361
|
return data;
|
|
@@ -369,7 +379,7 @@ class SwitchbotAdvertising {
|
|
|
369
379
|
|
|
370
380
|
|
|
371
381
|
const sequence_number = byte6;
|
|
372
|
-
const
|
|
382
|
+
const state = byte7 & 0b01111111 ? true : false;
|
|
373
383
|
const brightness = byte7 & 0b01111111;
|
|
374
384
|
const delay = byte8 & 0b10000000;
|
|
375
385
|
const preset = byte8 & 0b00001000;
|
|
@@ -381,7 +391,7 @@ class SwitchbotAdvertising {
|
|
|
381
391
|
model: "u",
|
|
382
392
|
modelName: "WoBulb",
|
|
383
393
|
sequence_number: sequence_number,
|
|
384
|
-
|
|
394
|
+
state: state,
|
|
385
395
|
brightness: brightness,
|
|
386
396
|
delay: delay,
|
|
387
397
|
preset: preset,
|
|
@@ -482,20 +492,15 @@ class SwitchbotAdvertising {
|
|
|
482
492
|
}
|
|
483
493
|
let byte1 = buf.readUInt8(1);
|
|
484
494
|
let byte2 = buf.readUInt8(2);
|
|
485
|
-
// let byte3 = buf.readUInt8(3);
|
|
486
|
-
// let byte4 = buf.readUInt8(4);
|
|
487
|
-
let byte5 = buf.readUInt8(5);
|
|
488
495
|
|
|
489
|
-
|
|
496
|
+
let movement = (byte1 & 0b01000000) ? true : false; // 1 - Movement detected
|
|
490
497
|
let battery = byte2 & 0b01111111; // %
|
|
491
|
-
//let lightLevel = byte5 & 0b00000011;
|
|
492
498
|
|
|
493
499
|
let data = {
|
|
494
500
|
model: "o",
|
|
495
501
|
modelName: "WoSmartLock",
|
|
496
|
-
//movement: pirState,
|
|
497
502
|
battery: battery,
|
|
498
|
-
|
|
503
|
+
movement: movement,
|
|
499
504
|
};
|
|
500
505
|
|
|
501
506
|
return data;
|
|
@@ -516,8 +521,8 @@ class SwitchbotAdvertising {
|
|
|
516
521
|
let byte5 = buf.readUInt8(5);
|
|
517
522
|
|
|
518
523
|
let temp_sign = byte4 & 0b10000000 ? 1 : -1;
|
|
519
|
-
let temp_c = temp_sign * ((byte4 & 0b01111111) + byte3 / 10);
|
|
520
|
-
let temp_f = (temp_c * 9
|
|
524
|
+
let temp_c = temp_sign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
|
|
525
|
+
let temp_f = (temp_c * 9 / 5) + 32;
|
|
521
526
|
temp_f = Math.round(temp_f * 10) / 10;
|
|
522
527
|
|
|
523
528
|
let data = {
|
|
@@ -550,8 +555,8 @@ class SwitchbotAdvertising {
|
|
|
550
555
|
const byte9 = buf.readUInt8(9);
|
|
551
556
|
const byte10 = buf.readUInt8(10);
|
|
552
557
|
|
|
553
|
-
const
|
|
554
|
-
const
|
|
558
|
+
const state = byte7 & 0b10000000 ? true : false;
|
|
559
|
+
const lightLevel = byte7 & 0b01111111;
|
|
555
560
|
const delay = byte8 & 0b10000000;
|
|
556
561
|
const preset = byte8 & 0b00001000;
|
|
557
562
|
const color_mode = byte8 & 0b00000111;
|
|
@@ -561,8 +566,8 @@ class SwitchbotAdvertising {
|
|
|
561
566
|
const data = {
|
|
562
567
|
model: "r",
|
|
563
568
|
modelName: "WoStrip",
|
|
564
|
-
|
|
565
|
-
|
|
569
|
+
state: state,
|
|
570
|
+
lightLevel: lightLevel,
|
|
566
571
|
delay: delay,
|
|
567
572
|
preset: preset,
|
|
568
573
|
color_mode: color_mode,
|
package/package.json
CHANGED