@switchbot/homebridge-switchbot 3.5.0-beta.2 → 3.5.0-beta.21

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