@switchbot/homebridge-switchbot 3.5.0-beta.14 → 3.5.0-beta.16

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/src/platform.ts CHANGED
@@ -1,4 +1,4 @@
1
- /* Copyright(C) 2017-2023, donavanbecker (https://github.com/donavanbecker). All rights reserved.
1
+ /* Copyright(C) 2017-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
2
  *
3
3
  * platform.ts: @switchbot/homebridge-switchbot platform class.
4
4
  */
package/src/settings.ts CHANGED
@@ -1,4 +1,4 @@
1
- /* Copyright(C) 2017-2023, donavanbecker (https://github.com/donavanbecker). All rights reserved.
1
+ /* Copyright(C) 2017-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
2
  *
3
3
  * settings.ts: @switchbot/homebridge-switchbot platform class.
4
4
  */
@@ -406,557 +406,3 @@ export type switchbot = {
406
406
  wait: (arg0: number) => any;
407
407
  };
408
408
 
409
- export function rgb2hs(r: any, g: any, b: any) {
410
- /*
411
- Credit:
412
- https://github.com/WickyNilliams/pure-color
413
- */
414
- r = parseInt(r);
415
- g = parseInt(g);
416
- b = parseInt(b);
417
- const min = Math.min(r, g, b);
418
- const max = Math.max(r, g, b);
419
- const delta = max - min;
420
- let h;
421
- let s;
422
- if (max === 0) {
423
- s = 0;
424
- } else {
425
- s = (delta / max) * 100;
426
- }
427
- if (max === min) {
428
- h = 0;
429
- } else if (r === max) {
430
- h = (g - b) / delta;
431
- } else if (g === max) {
432
- h = 2 + (b - r) / delta;
433
- } else if (b === max) {
434
- h = 4 + (r - g) / delta;
435
- }
436
- h = Math.min(h * 60, 360);
437
-
438
- if (h < 0) {
439
- h += 360;
440
- }
441
- return [Math.round(h), Math.round(s)];
442
- }
443
-
444
- export function hs2rgb(h: any, s: any) {
445
- /*
446
- Credit:
447
- https://github.com/WickyNilliams/pure-color
448
- */
449
- h = parseInt(h) / 60;
450
- s = parseInt(s) / 100;
451
- const f = h - Math.floor(h);
452
- const p = 255 * (1 - s);
453
- const q = 255 * (1 - s * f);
454
- const t = 255 * (1 - s * (1 - f));
455
- let rgb;
456
- switch (Math.floor(h) % 6) {
457
- case 0:
458
- rgb = [255, t, p];
459
- break;
460
- case 1:
461
- rgb = [q, 255, p];
462
- break;
463
- case 2:
464
- rgb = [p, 255, t];
465
- break;
466
- case 3:
467
- rgb = [p, q, 255];
468
- break;
469
- case 4:
470
- rgb = [t, p, 255];
471
- break;
472
- case 5:
473
- rgb = [255, p, q];
474
- break;
475
- }
476
- if (rgb[0] === 255) {
477
- rgb[1] *= 0.8;
478
- rgb[2] *= 0.8;
479
- if (rgb[1] <= 25 && rgb[2] <= 25) {
480
- rgb[1] = 0;
481
- rgb[2] = 0;
482
- }
483
- }
484
- return [Math.round(rgb[0]), Math.round(rgb[1]), Math.round(rgb[2])];
485
- }
486
-
487
- export function k2rgb(k: number) {
488
- // Set kelvin to nearest 100, between 2000 and 7100
489
- k = Math.round(k / 100) * 100;
490
- k = Math.max(Math.min(k, 7100), 2000);
491
-
492
- // k should now appear in our table of kelvin to rgb
493
- const values = {
494
- 2000: [255, 141, 11],
495
- 2100: [255, 146, 29],
496
- 2200: [255, 147, 44],
497
- 2300: [255, 152, 54],
498
- 2400: [255, 157, 63],
499
- 2500: [255, 166, 69],
500
- 2600: [255, 170, 77],
501
- 2700: [255, 174, 84],
502
- 2800: [255, 173, 94],
503
- 2900: [255, 177, 101],
504
- 3000: [255, 180, 107],
505
- 3100: [255, 189, 111],
506
- 3200: [255, 187, 120],
507
- 3300: [255, 195, 124],
508
- 3400: [255, 198, 130],
509
- 3500: [255, 201, 135],
510
- 3600: [255, 203, 141],
511
- 3700: [255, 206, 146],
512
- 3800: [255, 204, 153],
513
- 3900: [255, 206, 159],
514
- 4000: [255, 213, 161],
515
- 4100: [255, 215, 166],
516
- 4200: [255, 217, 171],
517
- 4300: [255, 219, 175],
518
- 4400: [255, 221, 180],
519
- 4500: [255, 223, 184],
520
- 4600: [255, 225, 188],
521
- 4700: [255, 226, 192],
522
- 4800: [255, 228, 196],
523
- 4900: [255, 229, 200],
524
- 5000: [255, 231, 204],
525
- 5100: [255, 230, 210],
526
- 5200: [255, 234, 211],
527
- 5300: [255, 235, 215],
528
- 5400: [255, 237, 218],
529
- 5500: [255, 236, 224],
530
- 5700: [255, 240, 228],
531
- 5800: [255, 241, 231],
532
- 5900: [255, 243, 234],
533
- 6000: [255, 244, 237],
534
- 6100: [255, 245, 240],
535
- 6200: [255, 246, 243],
536
- 6300: [255, 247, 247],
537
- 6400: [255, 248, 251],
538
- 6500: [255, 249, 253],
539
- 6600: [254, 249, 255],
540
- 6700: [252, 247, 255],
541
- 6800: [249, 246, 255],
542
- 6900: [247, 245, 255],
543
- 7000: [245, 243, 255],
544
- 7100: [243, 242, 255],
545
- };
546
-
547
- // Return the value
548
- return values[k];
549
- }
550
-
551
- export function m2hs(m) {
552
- /*
553
- Credit:
554
- https://github.com/homebridge/HAP-NodeJS
555
- */
556
- const table = {
557
- 100: [19, 222.1],
558
- 101: [18.7, 222.2],
559
- 102: [18.4, 222.3],
560
- 103: [18.2, 222.3],
561
- 104: [17.9, 222.4],
562
- 105: [17.6, 222.5],
563
- 106: [17.3, 222.7],
564
- 107: [17, 222.8],
565
- 108: [16.7, 222.9],
566
- 109: [16.4, 223],
567
- 110: [16.1, 223.2],
568
- 111: [15.8, 223.3],
569
- 112: [15.4, 223.4],
570
- 113: [15.2, 223.6],
571
- 114: [14.9, 223.8],
572
- 115: [14.7, 223.9],
573
- 116: [14.3, 224.1],
574
- 117: [14.1, 224.2],
575
- 118: [13.8, 224.4],
576
- 119: [13.5, 224.6],
577
- 120: [13.2, 224.8],
578
- 121: [12.9, 225],
579
- 122: [12.5, 225.3],
580
- 123: [12.2, 225.6],
581
- 124: [11.8, 225.9],
582
- 125: [11.4, 226.3],
583
- 126: [11.1, 226.7],
584
- 127: [10.7, 227.1],
585
- 128: [10.3, 227.6],
586
- 129: [9.9, 228],
587
- 130: [9.6, 228.5],
588
- 131: [9.3, 229.1],
589
- 132: [8.9, 229.6],
590
- 133: [8.5, 230.2],
591
- 134: [8.2, 230.9],
592
- 135: [7.8, 231.6],
593
- 136: [7.5, 232.5],
594
- 137: [7.1, 233.5],
595
- 138: [6.7, 234.6],
596
- 139: [6.3, 235.8],
597
- 140: [6, 237.1],
598
- 141: [5.6, 238.9],
599
- 142: [5.2, 240.9],
600
- 143: [5, 242.9],
601
- 144: [4.8, 244.9],
602
- 145: [4.6, 246.9],
603
- 146: [4.4, 249.3],
604
- 147: [4.3, 251.9],
605
- 148: [4.1, 254.9],
606
- 149: [3.9, 258],
607
- 150: [3.7, 261.8],
608
- 151: [3.4, 265.9],
609
- 152: [3.2, 271],
610
- 153: [3, 276.4],
611
- 154: [2.8, 283.6],
612
- 155: [2.6, 290.4],
613
- 156: [2.3, 295.3],
614
- 157: [2.1, 300],
615
- 158: [1.9, 300],
616
- 159: [1.6, 300],
617
- 160: [1.4, 195.8],
618
- 161: [1.2, 84.3],
619
- 162: [1.3, 58.2],
620
- 163: [1.5, 55.9],
621
- 164: [1.7, 53.2],
622
- 165: [1.9, 50.2],
623
- 166: [2.1, 47.1],
624
- 167: [2.4, 44.5],
625
- 168: [2.6, 42.6],
626
- 169: [2.9, 40.9],
627
- 170: [3.1, 39.5],
628
- 171: [3.4, 38.3],
629
- 172: [3.7, 37.3],
630
- 173: [3.9, 36.5],
631
- 174: [4.2, 35.7],
632
- 175: [4.4, 35.1],
633
- 176: [4.6, 34.5],
634
- 177: [4.9, 34],
635
- 178: [5.1, 33.5],
636
- 179: [5.3, 33],
637
- 180: [5.6, 32.7],
638
- 181: [5.8, 32.3],
639
- 182: [6, 32],
640
- 183: [6.3, 31.7],
641
- 184: [6.5, 31.4],
642
- 185: [6.7, 31.2],
643
- 186: [7, 30.9],
644
- 187: [7.2, 30.7],
645
- 188: [7.4, 30.5],
646
- 189: [7.6, 30.3],
647
- 190: [7.9, 30.1],
648
- 191: [8.1, 29.9],
649
- 192: [8.4, 29.7],
650
- 193: [8.6, 29.6],
651
- 194: [8.9, 29.5],
652
- 195: [9.1, 29.3],
653
- 196: [9.4, 29.2],
654
- 197: [9.6, 29.1],
655
- 198: [9.8, 29],
656
- 199: [10, 28.9],
657
- 200: [10.2, 28.7],
658
- 201: [10.5, 28.7],
659
- 202: [10.7, 28.6],
660
- 203: [11, 28.5],
661
- 204: [11.2, 28.4],
662
- 205: [11.4, 28.3],
663
- 206: [11.6, 28.3],
664
- 207: [11.8, 28.2],
665
- 208: [12.1, 28.1],
666
- 209: [12.3, 28.1],
667
- 210: [12.5, 28],
668
- 211: [12.7, 28],
669
- 212: [12.9, 27.9],
670
- 213: [13.2, 27.8],
671
- 214: [13.4, 27.8],
672
- 215: [13.6, 27.7],
673
- 216: [13.8, 27.7],
674
- 217: [14, 27.7],
675
- 218: [14.3, 27.6],
676
- 219: [14.5, 27.6],
677
- 220: [14.7, 27.5],
678
- 221: [14.9, 27.5],
679
- 222: [15.1, 27.5],
680
- 223: [15.3, 27.4],
681
- 224: [15.5, 27.4],
682
- 225: [15.8, 27.4],
683
- 226: [16, 27.3],
684
- 227: [16.2, 27.3],
685
- 228: [16.4, 27.3],
686
- 229: [16.6, 27.3],
687
- 230: [16.8, 27.2],
688
- 231: [17, 27.2],
689
- 232: [17.2, 27.2],
690
- 233: [17.4, 27.2],
691
- 234: [17.6, 27.2],
692
- 235: [17.8, 27.1],
693
- 236: [18, 27.1],
694
- 237: [18.2, 27.1],
695
- 238: [18.4, 27.1],
696
- 239: [18.7, 27.1],
697
- 240: [18.8, 27],
698
- 241: [19, 27],
699
- 242: [19.2, 27],
700
- 243: [19.4, 27],
701
- 244: [19.6, 27],
702
- 245: [19.8, 27],
703
- 246: [20, 27],
704
- 247: [20.3, 26.9],
705
- 248: [20.5, 26.9],
706
- 249: [20.6, 26.9],
707
- 250: [20.8, 26.9],
708
- 251: [21, 26.9],
709
- 252: [21.3, 26.9],
710
- 253: [21.5, 26.9],
711
- 254: [21.6, 26.9],
712
- 255: [21.8, 26.8],
713
- 256: [22, 26.8],
714
- 257: [22.2, 26.8],
715
- 258: [22.4, 26.8],
716
- 259: [22.6, 26.8],
717
- 260: [22.8, 26.8],
718
- 261: [23, 26.8],
719
- 262: [23.2, 26.8],
720
- 263: [23.4, 26.8],
721
- 264: [23.6, 26.8],
722
- 265: [23.8, 26.8],
723
- 266: [24, 26.8],
724
- 267: [24.1, 26.8],
725
- 268: [24.3, 26.8],
726
- 269: [24.5, 26.8],
727
- 270: [24.7, 26.8],
728
- 271: [24.8, 26.8],
729
- 272: [25.1, 26.7],
730
- 273: [25.3, 26.7],
731
- 274: [25.4, 26.7],
732
- 275: [25.6, 26.7],
733
- 276: [25.8, 26.7],
734
- 277: [26, 26.7],
735
- 278: [26.1, 26.7],
736
- 279: [26.3, 26.7],
737
- 280: [26.5, 26.7],
738
- 281: [26.7, 26.7],
739
- 282: [26.9, 26.7],
740
- 283: [27.1, 26.7],
741
- 284: [27.3, 26.7],
742
- 285: [27.5, 26.7],
743
- 286: [27.7, 26.7],
744
- 287: [27.8, 26.7],
745
- 288: [28, 26.7],
746
- 289: [28.2, 26.7],
747
- 290: [28.4, 26.7],
748
- 291: [28.6, 26.7],
749
- 292: [28.8, 26.7],
750
- 293: [28.9, 26.7],
751
- 294: [29.1, 26.7],
752
- 295: [29.3, 26.7],
753
- 296: [29.5, 26.7],
754
- 297: [29.6, 26.7],
755
- 298: [29.8, 26.7],
756
- 299: [30, 26.7],
757
- 300: [30.2, 26.7],
758
- 301: [30.4, 26.7],
759
- 302: [30.5, 26.7],
760
- 303: [30.7, 26.7],
761
- 304: [30.9, 26.7],
762
- 305: [31.1, 26.7],
763
- 306: [31.2, 26.7],
764
- 307: [31.4, 26.7],
765
- 308: [31.6, 26.7],
766
- 309: [31.8, 26.8],
767
- 310: [31.9, 26.8],
768
- 311: [32.1, 26.8],
769
- 312: [32.3, 26.8],
770
- 313: [32.5, 26.8],
771
- 314: [32.6, 26.8],
772
- 315: [32.8, 26.8],
773
- 316: [33, 26.8],
774
- 317: [33.2, 26.8],
775
- 318: [33.3, 26.8],
776
- 319: [33.5, 26.8],
777
- 320: [33.7, 26.8],
778
- 321: [33.8, 26.8],
779
- 322: [34, 26.8],
780
- 323: [34.2, 26.8],
781
- 324: [34.4, 26.8],
782
- 325: [34.5, 26.8],
783
- 326: [34.7, 26.8],
784
- 327: [34.9, 26.8],
785
- 328: [35.1, 26.8],
786
- 329: [35.2, 26.8],
787
- 330: [35.4, 26.8],
788
- 331: [35.5, 26.8],
789
- 332: [35.7, 26.8],
790
- 333: [35.9, 26.8],
791
- 334: [36.1, 26.8],
792
- 335: [36.3, 26.9],
793
- 336: [36.5, 26.9],
794
- 337: [36.7, 26.9],
795
- 338: [36.9, 26.9],
796
- 339: [37.1, 26.9],
797
- 340: [37.2, 26.9],
798
- 341: [37.4, 26.9],
799
- 342: [37.5, 26.9],
800
- 343: [37.7, 26.9],
801
- 344: [37.9, 26.9],
802
- 345: [38.1, 26.9],
803
- 346: [38.3, 26.9],
804
- 347: [38.5, 26.9],
805
- 348: [38.7, 26.9],
806
- 349: [38.9, 26.9],
807
- 350: [39, 26.9],
808
- 351: [39.2, 26.9],
809
- 352: [39.3, 27],
810
- 353: [39.5, 27],
811
- 354: [39.7, 27],
812
- 355: [39.9, 27],
813
- 356: [40.1, 27],
814
- 357: [40.2, 27],
815
- 358: [40.4, 27],
816
- 359: [40.6, 27],
817
- 360: [40.8, 27],
818
- 361: [40.9, 27],
819
- 362: [41.1, 27],
820
- 363: [41.2, 27],
821
- 364: [41.4, 27],
822
- 365: [41.6, 27],
823
- 366: [41.8, 27],
824
- 367: [42, 27],
825
- 368: [42.1, 27.1],
826
- 369: [42.3, 27.1],
827
- 370: [42.4, 27.1],
828
- 371: [42.6, 27.1],
829
- 372: [42.8, 27.1],
830
- 373: [43, 27.1],
831
- 374: [43.1, 27.1],
832
- 375: [43.2, 27.1],
833
- 376: [43.4, 27.1],
834
- 377: [43.6, 27.1],
835
- 378: [43.8, 27.1],
836
- 379: [43.9, 27.1],
837
- 380: [44.1, 27.1],
838
- 381: [44.3, 27.2],
839
- 382: [44.4, 27.2],
840
- 383: [44.6, 27.2],
841
- 384: [44.7, 27.2],
842
- 385: [44.9, 27.2],
843
- 386: [45.1, 27.2],
844
- 387: [45.3, 27.2],
845
- 388: [45.5, 27.2],
846
- 389: [45.6, 27.2],
847
- 390: [45.8, 27.2],
848
- 391: [46, 27.2],
849
- 392: [46.2, 27.2],
850
- 393: [46.4, 27.3],
851
- 394: [46.5, 27.3],
852
- 395: [46.7, 27.3],
853
- 396: [46.9, 27.3],
854
- 397: [47.1, 27.3],
855
- 398: [47.2, 27.3],
856
- 399: [47.4, 27.3],
857
- 400: [47.6, 27.3],
858
- 401: [47.7, 27.3],
859
- 402: [47.9, 27.3],
860
- 403: [48.1, 27.3],
861
- 404: [48.3, 27.3],
862
- 405: [48.5, 27.4],
863
- 406: [48.7, 27.4],
864
- 407: [48.8, 27.4],
865
- 408: [49, 27.4],
866
- 409: [49.2, 27.4],
867
- 410: [49.4, 27.4],
868
- 411: [49.6, 27.4],
869
- 412: [49.7, 27.4],
870
- 413: [49.9, 27.4],
871
- 414: [50.1, 27.4],
872
- 415: [50.2, 27.4],
873
- 416: [50.4, 27.4],
874
- 417: [50.6, 27.5],
875
- 418: [50.7, 27.5],
876
- 419: [50.9, 27.5],
877
- 420: [51.1, 27.5],
878
- 421: [51.2, 27.5],
879
- 422: [51.4, 27.5],
880
- 423: [51.6, 27.5],
881
- 424: [51.7, 27.5],
882
- 425: [51.9, 27.5],
883
- 426: [52.1, 27.5],
884
- 427: [51.2, 27.6],
885
- 428: [52.4, 27.6],
886
- 429: [52.5, 27.6],
887
- 430: [52.7, 27.6],
888
- 431: [52.9, 27.6],
889
- 432: [53.1, 27.6],
890
- 433: [53.2, 27.6],
891
- 434: [53.4, 27.6],
892
- 435: [53.6, 27.6],
893
- 436: [53.7, 27.6],
894
- 437: [53.9, 27.6],
895
- 438: [54.1, 27.7],
896
- 439: [54.2, 27.7],
897
- 440: [54.3, 27.7],
898
- 441: [54.5, 27.7],
899
- 442: [54.7, 27.7],
900
- 443: [54.8, 27.7],
901
- 444: [55, 27.7],
902
- 445: [55.2, 27.7],
903
- 446: [55.3, 27.7],
904
- 447: [55.5, 27.7],
905
- 448: [55.7, 27.7],
906
- 449: [55.8, 27.8],
907
- 450: [56, 27.8],
908
- 451: [56.2, 27.8],
909
- 452: [56.3, 27.8],
910
- 453: [56.5, 27.8],
911
- 454: [56.7, 27.8],
912
- 455: [56.8, 27.8],
913
- 456: [57, 27.8],
914
- 457: [57.2, 27.8],
915
- 458: [57.3, 27.9],
916
- 459: [57.4, 27.9],
917
- 460: [57.6, 27.9],
918
- 461: [57.8, 27.9],
919
- 462: [57.9, 27.9],
920
- 463: [58.1, 27.9],
921
- 464: [58.3, 27.9],
922
- 465: [58.4, 27.9],
923
- 466: [58.6, 27.9],
924
- 467: [58.8, 27.9],
925
- 468: [59, 28],
926
- 469: [59.1, 28],
927
- 470: [59.2, 28],
928
- 471: [59.4, 28],
929
- 472: [59.6, 28],
930
- 473: [59.7, 28],
931
- 474: [60, 28],
932
- 475: [60.1, 28],
933
- 476: [60.2, 28],
934
- 477: [60.4, 28],
935
- 478: [60.6, 28.1],
936
- 479: [60.7, 28.1],
937
- 480: [60.9, 28.1],
938
- 481: [60.1, 28.1],
939
- 482: [60.3, 28.1],
940
- 483: [61.4, 28.1],
941
- 484: [61.5, 28.1],
942
- 485: [61.7, 28.1],
943
- 486: [61.9, 28.1],
944
- 487: [62, 28.2],
945
- 488: [62.2, 28.2],
946
- 489: [62.3, 28.2],
947
- 490: [62.5, 28.2],
948
- 491: [62.7, 28.2],
949
- 492: [62.8, 28.2],
950
- 493: [63, 28.2],
951
- 494: [63.2, 28.2],
952
- 495: [63.3, 28.2],
953
- 496: [63.4, 28.2],
954
- 497: [63.6, 28.2],
955
- 498: [63.8, 28.3],
956
- 499: [63.9, 28.3],
957
- 500: [64.1, 28.3],
958
- };
959
- const input = Math.min(Math.max(Math.round(m), 140), 500);
960
- const toReturn = table[input];
961
- return [Math.round(toReturn[1]), Math.round(toReturn[0])];
962
- }