@switchbot/homebridge-switchbot 3.5.0-beta.9 → 3.5.0

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 (178) hide show
  1. package/.vscode/settings.json +4 -1
  2. package/CHANGELOG.md +4 -1
  3. package/config.schema.json +166 -24
  4. package/dist/device/blindtilt.d.ts +21 -96
  5. package/dist/device/blindtilt.d.ts.map +1 -1
  6. package/dist/device/blindtilt.js +439 -817
  7. package/dist/device/blindtilt.js.map +1 -1
  8. package/dist/device/bot.d.ts +27 -72
  9. package/dist/device/bot.d.ts.map +1 -1
  10. package/dist/device/bot.js +835 -865
  11. package/dist/device/bot.js.map +1 -1
  12. package/dist/device/ceilinglight.d.ts +15 -69
  13. package/dist/device/ceilinglight.d.ts.map +1 -1
  14. package/dist/device/ceilinglight.js +287 -653
  15. package/dist/device/ceilinglight.js.map +1 -1
  16. package/dist/device/colorbulb.d.ts +15 -76
  17. package/dist/device/colorbulb.d.ts.map +1 -1
  18. package/dist/device/colorbulb.js +354 -732
  19. package/dist/device/colorbulb.js.map +1 -1
  20. package/dist/device/contact.d.ts +14 -66
  21. package/dist/device/contact.d.ts.map +1 -1
  22. package/dist/device/contact.js +268 -576
  23. package/dist/device/contact.js.map +1 -1
  24. package/dist/device/curtain.d.ts +18 -89
  25. package/dist/device/curtain.d.ts.map +1 -1
  26. package/dist/device/curtain.js +431 -851
  27. package/dist/device/curtain.js.map +1 -1
  28. package/dist/device/device.d.ts +60 -0
  29. package/dist/device/device.d.ts.map +1 -0
  30. package/dist/device/device.js +739 -0
  31. package/dist/device/device.js.map +1 -0
  32. package/dist/device/fan.d.ts +63 -0
  33. package/dist/device/fan.d.ts.map +1 -0
  34. package/dist/device/fan.js +698 -0
  35. package/dist/device/fan.js.map +1 -0
  36. package/dist/device/hub.d.ts +15 -60
  37. package/dist/device/hub.d.ts.map +1 -1
  38. package/dist/device/hub.js +257 -631
  39. package/dist/device/hub.js.map +1 -1
  40. package/dist/device/humidifier.d.ts +11 -66
  41. package/dist/device/humidifier.d.ts.map +1 -1
  42. package/dist/device/humidifier.js +266 -629
  43. package/dist/device/humidifier.js.map +1 -1
  44. package/dist/device/iosensor.d.ts +12 -64
  45. package/dist/device/iosensor.d.ts.map +1 -1
  46. package/dist/device/iosensor.js +215 -615
  47. package/dist/device/iosensor.js.map +1 -1
  48. package/dist/device/lightstrip.d.ts +12 -70
  49. package/dist/device/lightstrip.d.ts.map +1 -1
  50. package/dist/device/lightstrip.js +336 -645
  51. package/dist/device/lightstrip.js.map +1 -1
  52. package/dist/device/lock.d.ts +17 -63
  53. package/dist/device/lock.d.ts.map +1 -1
  54. package/dist/device/lock.js +290 -595
  55. package/dist/device/lock.js.map +1 -1
  56. package/dist/device/meter.d.ts +15 -64
  57. package/dist/device/meter.d.ts.map +1 -1
  58. package/dist/device/meter.js +211 -608
  59. package/dist/device/meter.js.map +1 -1
  60. package/dist/device/meterplus.d.ts +15 -65
  61. package/dist/device/meterplus.d.ts.map +1 -1
  62. package/dist/device/meterplus.js +205 -615
  63. package/dist/device/meterplus.js.map +1 -1
  64. package/dist/device/motion.d.ts +12 -69
  65. package/dist/device/motion.d.ts.map +1 -1
  66. package/dist/device/motion.js +202 -563
  67. package/dist/device/motion.js.map +1 -1
  68. package/dist/device/plug.d.ts +10 -57
  69. package/dist/device/plug.d.ts.map +1 -1
  70. package/dist/device/plug.js +125 -484
  71. package/dist/device/plug.js.map +1 -1
  72. package/dist/device/robotvacuumcleaner.d.ts +13 -63
  73. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  74. package/dist/device/robotvacuumcleaner.js +233 -549
  75. package/dist/device/robotvacuumcleaner.js.map +1 -1
  76. package/dist/device/waterdetector.d.ts +11 -63
  77. package/dist/device/waterdetector.d.ts.map +1 -1
  78. package/dist/device/waterdetector.js +170 -493
  79. package/dist/device/waterdetector.js.map +1 -1
  80. package/dist/homebridge-ui/public/index.html +22 -16
  81. package/dist/homebridge-ui/server.js +1 -1
  82. package/dist/homebridge-ui/server.js.map +1 -1
  83. package/dist/index.d.ts +1 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +2 -2
  86. package/dist/index.js.map +1 -1
  87. package/dist/irdevice/airconditioner.d.ts +10 -50
  88. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  89. package/dist/irdevice/airconditioner.js +340 -468
  90. package/dist/irdevice/airconditioner.js.map +1 -1
  91. package/dist/irdevice/airpurifier.d.ts +8 -39
  92. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  93. package/dist/irdevice/airpurifier.js +105 -319
  94. package/dist/irdevice/airpurifier.js.map +1 -1
  95. package/dist/irdevice/camera.d.ts +7 -36
  96. package/dist/irdevice/camera.d.ts.map +1 -1
  97. package/dist/irdevice/camera.js +44 -285
  98. package/dist/irdevice/camera.js.map +1 -1
  99. package/dist/irdevice/fan.d.ts +7 -43
  100. package/dist/irdevice/fan.d.ts.map +1 -1
  101. package/dist/irdevice/fan.js +92 -350
  102. package/dist/irdevice/fan.js.map +1 -1
  103. package/dist/irdevice/irdevice.d.ts +40 -0
  104. package/dist/irdevice/irdevice.d.ts.map +1 -0
  105. package/dist/irdevice/irdevice.js +369 -0
  106. package/dist/irdevice/irdevice.js.map +1 -0
  107. package/dist/irdevice/light.d.ts +12 -45
  108. package/dist/irdevice/light.d.ts.map +1 -1
  109. package/dist/irdevice/light.js +118 -362
  110. package/dist/irdevice/light.js.map +1 -1
  111. package/dist/irdevice/other.d.ts +19 -48
  112. package/dist/irdevice/other.d.ts.map +1 -1
  113. package/dist/irdevice/other.js +438 -570
  114. package/dist/irdevice/other.js.map +1 -1
  115. package/dist/irdevice/tv.d.ts +8 -40
  116. package/dist/irdevice/tv.d.ts.map +1 -1
  117. package/dist/irdevice/tv.js +91 -339
  118. package/dist/irdevice/tv.js.map +1 -1
  119. package/dist/irdevice/vacuumcleaner.d.ts +7 -36
  120. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  121. package/dist/irdevice/vacuumcleaner.js +45 -285
  122. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  123. package/dist/irdevice/waterheater.d.ts +7 -36
  124. package/dist/irdevice/waterheater.d.ts.map +1 -1
  125. package/dist/irdevice/waterheater.js +47 -291
  126. package/dist/irdevice/waterheater.js.map +1 -1
  127. package/dist/platform.d.ts +22 -8
  128. package/dist/platform.d.ts.map +1 -1
  129. package/dist/platform.js +342 -191
  130. package/dist/platform.js.map +1 -1
  131. package/dist/settings.d.ts +64 -17
  132. package/dist/settings.d.ts.map +1 -1
  133. package/dist/settings.js +16 -552
  134. package/dist/settings.js.map +1 -1
  135. package/dist/utils.d.ts +77 -0
  136. package/dist/utils.d.ts.map +1 -1
  137. package/dist/utils.js +638 -1
  138. package/dist/utils.js.map +1 -1
  139. package/eslint.config.js +96 -0
  140. package/package.json +20 -16
  141. package/src/custom.d.ts +2 -1
  142. package/src/device/blindtilt.ts +472 -888
  143. package/src/device/bot.ts +893 -968
  144. package/src/device/ceilinglight.ts +304 -709
  145. package/src/device/colorbulb.ts +370 -803
  146. package/src/device/contact.ts +301 -611
  147. package/src/device/curtain.ts +460 -908
  148. package/src/device/device.ts +755 -0
  149. package/src/device/fan.ts +749 -0
  150. package/src/device/hub.ts +294 -664
  151. package/src/device/humidifier.ts +299 -696
  152. package/src/device/iosensor.ts +251 -644
  153. package/src/device/lightstrip.ts +362 -712
  154. package/src/device/lock.ts +328 -653
  155. package/src/device/meter.ts +247 -637
  156. package/src/device/meterplus.ts +240 -644
  157. package/src/device/motion.ts +230 -598
  158. package/src/device/plug.ts +139 -525
  159. package/src/device/robotvacuumcleaner.ts +258 -593
  160. package/src/device/waterdetector.ts +191 -522
  161. package/src/homebridge-ui/public/index.html +22 -16
  162. package/src/homebridge-ui/server.ts +1 -1
  163. package/src/index.ts +4 -3
  164. package/src/irdevice/airconditioner.ts +370 -527
  165. package/src/irdevice/airpurifier.ts +132 -356
  166. package/src/irdevice/camera.ts +58 -311
  167. package/src/irdevice/fan.ts +109 -379
  168. package/src/irdevice/irdevice.ts +382 -0
  169. package/src/irdevice/light.ts +157 -412
  170. package/src/irdevice/other.ts +507 -648
  171. package/src/irdevice/tv.ts +121 -375
  172. package/src/irdevice/vacuumcleaner.ts +59 -311
  173. package/src/irdevice/waterheater.ts +61 -320
  174. package/src/platform.ts +395 -259
  175. package/src/settings.ts +118 -609
  176. package/src/utils.ts +642 -1
  177. package/.github/npm-version-script.cjs +0 -81
  178. package/src/device/waterdetector.json +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,oBAAY,cAAc;IACxB,OAAO,aAAa;IACpB,OAAO,qBAAqB;IAC5B,IAAI,aAAa;IACjB,GAAG,iBAAiB;IACpB,OAAO,aAAa;IACpB,QAAQ,aAAa;IACrB,UAAU,aAAa;IACvB,IAAI,SAAS,CAAE,oCAAoC;IACnD,KAAK,yBAAyB;IAC9B,WAAW,aAAa;IACxB,WAAW,aAAa;IACxB,YAAY,aAAa;IACzB,YAAY,aAAa;IACzB,aAAa,aAAa;IAC1B,SAAS,aAAa;IACtB,UAAU,aAAa;IACvB,UAAU,sBAAsB;IAChC,UAAU,sBAAsB;IAChC,IAAI,aAAa;IACjB,OAAO,aAAa;IACpB,MAAM,aAAa;IACnB,WAAW,aAAa;IACxB,GAAG,SAAS;IACZ,SAAS,cAAc;IACvB,aAAa,kBAAkB;IAC/B,oBAAoB,aAAa,CAAE,qCAAqC;IACxE,wBAAwB,aAAa,CAAE,qCAAqC;IAC5E,qBAAqB,aAAa;IAClC,MAAM,WAAW;IACjB,eAAe,oBAAoB;IACnC,YAAY,sBAAsB,CAAE,qCAAqC;IACzE,eAAe,sBAAsB,CAAE,qCAAqC;IAC5E,SAAS,aAAa;IACtB,UAAU,aAAa;IACvB,YAAY,aAAa;IACzB,SAAS,aAAa;IACtB,oBAAoB,aAAa;IACjC,aAAa,aAAa;IAC1B,OAAO,YAAY;CACpB;AAED,oBAAY,iBAAiB;IAC3B,GAAG,MAAM;IACT,OAAO,MAAM;IACb,QAAQ,MAAM;IACd,UAAU,MAAM;IAChB,KAAK,MAAM;IACX,SAAS,MAAM;IACf,YAAY,MAAM;IAClB,YAAY,MAAM;IAClB,aAAa,MAAM;IACnB,SAAS,MAAM;IACf,UAAU,MAAM;IAChB,UAAU,MAAM;IAChB,UAAU,MAAM;IAChB,IAAI,MAAM;IACV,MAAM,KAAK;IACX,YAAY,MAAM,CAAE,qCAAqC;IACzD,eAAe,MAAM,CAAE,qCAAqC;IAC5D,SAAS,MAAM;IACf,OAAO,YAAY;CACpB;AAED,oBAAY,oBAAoB;IAC9B,MAAM,YAAY;IAClB,QAAQ,cAAc;IACtB,SAAS,gBAAgB;IACzB,SAAS,gBAAgB;IACzB,mBAAmB,2BAA2B;CAC/C;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlF;AAGD,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,YAiC5C;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,YAyCpC;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,OA8D9B;AAED,wBAAgB,IAAI,CAAC,CAAC,KAAA,YA2ZrB"}
package/dist/utils.js CHANGED
@@ -1,8 +1,645 @@
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
  * util.ts: @switchbot/homebridge-switchbot platform class.
4
4
  */
5
+ export var SwitchBotModel;
6
+ (function (SwitchBotModel) {
7
+ SwitchBotModel["HubMini"] = "W0202200";
8
+ SwitchBotModel["HubPlus"] = "SwitchBot Hub S1";
9
+ SwitchBotModel["Hub2"] = "W3202100";
10
+ SwitchBotModel["Bot"] = "SwitchBot S1";
11
+ SwitchBotModel["Curtain"] = "W0701600";
12
+ SwitchBotModel["Curtain3"] = "W2400000";
13
+ SwitchBotModel["Humidifier"] = "W0801800";
14
+ SwitchBotModel["Plug"] = "SP11";
15
+ SwitchBotModel["Meter"] = "SwitchBot MeterTH S1";
16
+ SwitchBotModel["MeterPlusJP"] = "W2201500";
17
+ SwitchBotModel["MeterPlusUS"] = "W2301500";
18
+ SwitchBotModel["OutdoorMeter"] = "W3400010";
19
+ SwitchBotModel["MotionSensor"] = "W1101500";
20
+ SwitchBotModel["ContactSensor"] = "W1201500";
21
+ SwitchBotModel["ColorBulb"] = "W1401400";
22
+ SwitchBotModel["StripLight"] = "W1701100";
23
+ SwitchBotModel["PlugMiniUS"] = "W1901400/W1901401";
24
+ SwitchBotModel["PlugMiniJP"] = "W2001400/W2001401";
25
+ SwitchBotModel["Lock"] = "W1601700";
26
+ SwitchBotModel["LockPro"] = "W3500000";
27
+ SwitchBotModel["Keypad"] = "W2500010";
28
+ SwitchBotModel["KeypadTouch"] = "W2500020";
29
+ SwitchBotModel["K10"] = "K10+";
30
+ SwitchBotModel["WoSweeper"] = "WoSweeper";
31
+ SwitchBotModel["WoSweeperMini"] = "WoSweeperMini";
32
+ SwitchBotModel["RobotVacuumCleanerS1"] = "W3011000";
33
+ SwitchBotModel["RobotVacuumCleanerS1Plus"] = "W3011010";
34
+ SwitchBotModel["RobotVacuumCleanerS10"] = "W3211800";
35
+ SwitchBotModel["Remote"] = "Remote";
36
+ SwitchBotModel["UniversalRemote"] = "UniversalRemote";
37
+ SwitchBotModel["CeilingLight"] = "W2612230/W2612240";
38
+ SwitchBotModel["CeilingLightPro"] = "W2612210/W2612220";
39
+ SwitchBotModel["IndoorCam"] = "W1301200";
40
+ SwitchBotModel["PanTiltCam"] = "W1801200";
41
+ SwitchBotModel["PanTiltCam2K"] = "W3101100";
42
+ SwitchBotModel["BlindTilt"] = "W2701600";
43
+ SwitchBotModel["BatteryCirculatorFan"] = "W3800510";
44
+ SwitchBotModel["WaterDetector"] = "W4402000";
45
+ SwitchBotModel["Unknown"] = "Unknown";
46
+ })(SwitchBotModel || (SwitchBotModel = {}));
47
+ export var SwitchBotBLEModel;
48
+ (function (SwitchBotBLEModel) {
49
+ SwitchBotBLEModel["Bot"] = "H";
50
+ SwitchBotBLEModel["Curtain"] = "c";
51
+ SwitchBotBLEModel["Curtain3"] = "{";
52
+ SwitchBotBLEModel["Humidifier"] = "e";
53
+ SwitchBotBLEModel["Meter"] = "T";
54
+ SwitchBotBLEModel["MeterPlus"] = "i";
55
+ SwitchBotBLEModel["OutdoorMeter"] = "w";
56
+ SwitchBotBLEModel["MotionSensor"] = "s";
57
+ SwitchBotBLEModel["ContactSensor"] = "d";
58
+ SwitchBotBLEModel["ColorBulb"] = "u";
59
+ SwitchBotBLEModel["StripLight"] = "r";
60
+ SwitchBotBLEModel["PlugMiniUS"] = "g";
61
+ SwitchBotBLEModel["PlugMiniJP"] = "j";
62
+ SwitchBotBLEModel["Lock"] = "o";
63
+ SwitchBotBLEModel["Remote"] = "";
64
+ SwitchBotBLEModel["CeilingLight"] = "q";
65
+ SwitchBotBLEModel["CeilingLightPro"] = "n";
66
+ SwitchBotBLEModel["BlindTilt"] = "x";
67
+ SwitchBotBLEModel["Unknown"] = "Unknown";
68
+ })(SwitchBotBLEModel || (SwitchBotBLEModel = {}));
69
+ export var BlindTiltMappingMode;
70
+ (function (BlindTiltMappingMode) {
71
+ BlindTiltMappingMode["OnlyUp"] = "only_up";
72
+ BlindTiltMappingMode["OnlyDown"] = "only_down";
73
+ BlindTiltMappingMode["DownAndUp"] = "down_and_up";
74
+ BlindTiltMappingMode["UpAndDown"] = "up_and_down";
75
+ BlindTiltMappingMode["UseTiltForDirection"] = "use_tilt_for_direction";
76
+ })(BlindTiltMappingMode || (BlindTiltMappingMode = {}));
5
77
  export function sleep(ms) {
6
78
  return new Promise((resolve) => setTimeout(resolve, ms));
7
79
  }
80
+ /**
81
+ * Converts the value to celsius if the temperature units are in Fahrenheit
82
+ **/
83
+ export function convertUnits(value, unit, convert) {
84
+ if (unit === 'CELSIUS' && convert === 'CELSIUS') {
85
+ return Math.round((value * 9) / 5 + 32);
86
+ }
87
+ else if (unit === 'FAHRENHEIT' && convert === 'FAHRENHEIT') {
88
+ // celsius should be to the nearest 0.5 degree
89
+ return Math.round((5 / 9) * (value - 32) * 2) / 2;
90
+ }
91
+ return value;
92
+ }
93
+ export function rgb2hs(r, g, b) {
94
+ /**
95
+ * Credit:
96
+ * https://github.com/WickyNilliams/pure-color
97
+ **/
98
+ r = parseInt(r);
99
+ g = parseInt(g);
100
+ b = parseInt(b);
101
+ const min = Math.min(r, g, b);
102
+ const max = Math.max(r, g, b);
103
+ const delta = max - min;
104
+ let h;
105
+ let s;
106
+ if (max === 0) {
107
+ s = 0;
108
+ }
109
+ else {
110
+ s = (delta / max) * 100;
111
+ }
112
+ if (max === min) {
113
+ h = 0;
114
+ }
115
+ else if (r === max) {
116
+ h = (g - b) / delta;
117
+ }
118
+ else if (g === max) {
119
+ h = 2 + (b - r) / delta;
120
+ }
121
+ else if (b === max) {
122
+ h = 4 + (r - g) / delta;
123
+ }
124
+ h = Math.min(h * 60, 360);
125
+ if (h < 0) {
126
+ h += 360;
127
+ }
128
+ return [Math.round(h), Math.round(s)];
129
+ }
130
+ export function hs2rgb(h, s) {
131
+ /*
132
+ Credit:
133
+ https://github.com/WickyNilliams/pure-color
134
+ */
135
+ h = parseInt(h) / 60;
136
+ s = parseInt(s) / 100;
137
+ const f = h - Math.floor(h);
138
+ const p = 255 * (1 - s);
139
+ const q = 255 * (1 - s * f);
140
+ const t = 255 * (1 - s * (1 - f));
141
+ let rgb;
142
+ switch (Math.floor(h) % 6) {
143
+ case 0:
144
+ rgb = [255, t, p];
145
+ break;
146
+ case 1:
147
+ rgb = [q, 255, p];
148
+ break;
149
+ case 2:
150
+ rgb = [p, 255, t];
151
+ break;
152
+ case 3:
153
+ rgb = [p, q, 255];
154
+ break;
155
+ case 4:
156
+ rgb = [t, p, 255];
157
+ break;
158
+ case 5:
159
+ rgb = [255, p, q];
160
+ break;
161
+ }
162
+ if (rgb[0] === 255) {
163
+ rgb[1] *= 0.8;
164
+ rgb[2] *= 0.8;
165
+ if (rgb[1] <= 25 && rgb[2] <= 25) {
166
+ rgb[1] = 0;
167
+ rgb[2] = 0;
168
+ }
169
+ }
170
+ return [Math.round(rgb[0]), Math.round(rgb[1]), Math.round(rgb[2])];
171
+ }
172
+ export function k2rgb(k) {
173
+ // Set kelvin to nearest 100, between 2000 and 7100
174
+ k = Math.round(k / 100) * 100;
175
+ k = Math.max(Math.min(k, 7100), 2000);
176
+ // k should now appear in our table of kelvin to rgb
177
+ const values = {
178
+ 2000: [255, 141, 11],
179
+ 2100: [255, 146, 29],
180
+ 2200: [255, 147, 44],
181
+ 2300: [255, 152, 54],
182
+ 2400: [255, 157, 63],
183
+ 2500: [255, 166, 69],
184
+ 2600: [255, 170, 77],
185
+ 2700: [255, 174, 84],
186
+ 2800: [255, 173, 94],
187
+ 2900: [255, 177, 101],
188
+ 3000: [255, 180, 107],
189
+ 3100: [255, 189, 111],
190
+ 3200: [255, 187, 120],
191
+ 3300: [255, 195, 124],
192
+ 3400: [255, 198, 130],
193
+ 3500: [255, 201, 135],
194
+ 3600: [255, 203, 141],
195
+ 3700: [255, 206, 146],
196
+ 3800: [255, 204, 153],
197
+ 3900: [255, 206, 159],
198
+ 4000: [255, 213, 161],
199
+ 4100: [255, 215, 166],
200
+ 4200: [255, 217, 171],
201
+ 4300: [255, 219, 175],
202
+ 4400: [255, 221, 180],
203
+ 4500: [255, 223, 184],
204
+ 4600: [255, 225, 188],
205
+ 4700: [255, 226, 192],
206
+ 4800: [255, 228, 196],
207
+ 4900: [255, 229, 200],
208
+ 5000: [255, 231, 204],
209
+ 5100: [255, 230, 210],
210
+ 5200: [255, 234, 211],
211
+ 5300: [255, 235, 215],
212
+ 5400: [255, 237, 218],
213
+ 5500: [255, 236, 224],
214
+ 5700: [255, 240, 228],
215
+ 5800: [255, 241, 231],
216
+ 5900: [255, 243, 234],
217
+ 6000: [255, 244, 237],
218
+ 6100: [255, 245, 240],
219
+ 6200: [255, 246, 243],
220
+ 6300: [255, 247, 247],
221
+ 6400: [255, 248, 251],
222
+ 6500: [255, 249, 253],
223
+ 6600: [254, 249, 255],
224
+ 6700: [252, 247, 255],
225
+ 6800: [249, 246, 255],
226
+ 6900: [247, 245, 255],
227
+ 7000: [245, 243, 255],
228
+ 7100: [243, 242, 255],
229
+ };
230
+ // Return the value
231
+ return values[k];
232
+ }
233
+ export function m2hs(m) {
234
+ /*
235
+ Credit:
236
+ https://github.com/homebridge/HAP-NodeJS
237
+ */
238
+ const table = {
239
+ 100: [19, 222.1],
240
+ 101: [18.7, 222.2],
241
+ 102: [18.4, 222.3],
242
+ 103: [18.2, 222.3],
243
+ 104: [17.9, 222.4],
244
+ 105: [17.6, 222.5],
245
+ 106: [17.3, 222.7],
246
+ 107: [17, 222.8],
247
+ 108: [16.7, 222.9],
248
+ 109: [16.4, 223],
249
+ 110: [16.1, 223.2],
250
+ 111: [15.8, 223.3],
251
+ 112: [15.4, 223.4],
252
+ 113: [15.2, 223.6],
253
+ 114: [14.9, 223.8],
254
+ 115: [14.7, 223.9],
255
+ 116: [14.3, 224.1],
256
+ 117: [14.1, 224.2],
257
+ 118: [13.8, 224.4],
258
+ 119: [13.5, 224.6],
259
+ 120: [13.2, 224.8],
260
+ 121: [12.9, 225],
261
+ 122: [12.5, 225.3],
262
+ 123: [12.2, 225.6],
263
+ 124: [11.8, 225.9],
264
+ 125: [11.4, 226.3],
265
+ 126: [11.1, 226.7],
266
+ 127: [10.7, 227.1],
267
+ 128: [10.3, 227.6],
268
+ 129: [9.9, 228],
269
+ 130: [9.6, 228.5],
270
+ 131: [9.3, 229.1],
271
+ 132: [8.9, 229.6],
272
+ 133: [8.5, 230.2],
273
+ 134: [8.2, 230.9],
274
+ 135: [7.8, 231.6],
275
+ 136: [7.5, 232.5],
276
+ 137: [7.1, 233.5],
277
+ 138: [6.7, 234.6],
278
+ 139: [6.3, 235.8],
279
+ 140: [6, 237.1],
280
+ 141: [5.6, 238.9],
281
+ 142: [5.2, 240.9],
282
+ 143: [5, 242.9],
283
+ 144: [4.8, 244.9],
284
+ 145: [4.6, 246.9],
285
+ 146: [4.4, 249.3],
286
+ 147: [4.3, 251.9],
287
+ 148: [4.1, 254.9],
288
+ 149: [3.9, 258],
289
+ 150: [3.7, 261.8],
290
+ 151: [3.4, 265.9],
291
+ 152: [3.2, 271],
292
+ 153: [3, 276.4],
293
+ 154: [2.8, 283.6],
294
+ 155: [2.6, 290.4],
295
+ 156: [2.3, 295.3],
296
+ 157: [2.1, 300],
297
+ 158: [1.9, 300],
298
+ 159: [1.6, 300],
299
+ 160: [1.4, 195.8],
300
+ 161: [1.2, 84.3],
301
+ 162: [1.3, 58.2],
302
+ 163: [1.5, 55.9],
303
+ 164: [1.7, 53.2],
304
+ 165: [1.9, 50.2],
305
+ 166: [2.1, 47.1],
306
+ 167: [2.4, 44.5],
307
+ 168: [2.6, 42.6],
308
+ 169: [2.9, 40.9],
309
+ 170: [3.1, 39.5],
310
+ 171: [3.4, 38.3],
311
+ 172: [3.7, 37.3],
312
+ 173: [3.9, 36.5],
313
+ 174: [4.2, 35.7],
314
+ 175: [4.4, 35.1],
315
+ 176: [4.6, 34.5],
316
+ 177: [4.9, 34],
317
+ 178: [5.1, 33.5],
318
+ 179: [5.3, 33],
319
+ 180: [5.6, 32.7],
320
+ 181: [5.8, 32.3],
321
+ 182: [6, 32],
322
+ 183: [6.3, 31.7],
323
+ 184: [6.5, 31.4],
324
+ 185: [6.7, 31.2],
325
+ 186: [7, 30.9],
326
+ 187: [7.2, 30.7],
327
+ 188: [7.4, 30.5],
328
+ 189: [7.6, 30.3],
329
+ 190: [7.9, 30.1],
330
+ 191: [8.1, 29.9],
331
+ 192: [8.4, 29.7],
332
+ 193: [8.6, 29.6],
333
+ 194: [8.9, 29.5],
334
+ 195: [9.1, 29.3],
335
+ 196: [9.4, 29.2],
336
+ 197: [9.6, 29.1],
337
+ 198: [9.8, 29],
338
+ 199: [10, 28.9],
339
+ 200: [10.2, 28.7],
340
+ 201: [10.5, 28.7],
341
+ 202: [10.7, 28.6],
342
+ 203: [11, 28.5],
343
+ 204: [11.2, 28.4],
344
+ 205: [11.4, 28.3],
345
+ 206: [11.6, 28.3],
346
+ 207: [11.8, 28.2],
347
+ 208: [12.1, 28.1],
348
+ 209: [12.3, 28.1],
349
+ 210: [12.5, 28],
350
+ 211: [12.7, 28],
351
+ 212: [12.9, 27.9],
352
+ 213: [13.2, 27.8],
353
+ 214: [13.4, 27.8],
354
+ 215: [13.6, 27.7],
355
+ 216: [13.8, 27.7],
356
+ 217: [14, 27.7],
357
+ 218: [14.3, 27.6],
358
+ 219: [14.5, 27.6],
359
+ 220: [14.7, 27.5],
360
+ 221: [14.9, 27.5],
361
+ 222: [15.1, 27.5],
362
+ 223: [15.3, 27.4],
363
+ 224: [15.5, 27.4],
364
+ 225: [15.8, 27.4],
365
+ 226: [16, 27.3],
366
+ 227: [16.2, 27.3],
367
+ 228: [16.4, 27.3],
368
+ 229: [16.6, 27.3],
369
+ 230: [16.8, 27.2],
370
+ 231: [17, 27.2],
371
+ 232: [17.2, 27.2],
372
+ 233: [17.4, 27.2],
373
+ 234: [17.6, 27.2],
374
+ 235: [17.8, 27.1],
375
+ 236: [18, 27.1],
376
+ 237: [18.2, 27.1],
377
+ 238: [18.4, 27.1],
378
+ 239: [18.7, 27.1],
379
+ 240: [18.8, 27],
380
+ 241: [19, 27],
381
+ 242: [19.2, 27],
382
+ 243: [19.4, 27],
383
+ 244: [19.6, 27],
384
+ 245: [19.8, 27],
385
+ 246: [20, 27],
386
+ 247: [20.3, 26.9],
387
+ 248: [20.5, 26.9],
388
+ 249: [20.6, 26.9],
389
+ 250: [20.8, 26.9],
390
+ 251: [21, 26.9],
391
+ 252: [21.3, 26.9],
392
+ 253: [21.5, 26.9],
393
+ 254: [21.6, 26.9],
394
+ 255: [21.8, 26.8],
395
+ 256: [22, 26.8],
396
+ 257: [22.2, 26.8],
397
+ 258: [22.4, 26.8],
398
+ 259: [22.6, 26.8],
399
+ 260: [22.8, 26.8],
400
+ 261: [23, 26.8],
401
+ 262: [23.2, 26.8],
402
+ 263: [23.4, 26.8],
403
+ 264: [23.6, 26.8],
404
+ 265: [23.8, 26.8],
405
+ 266: [24, 26.8],
406
+ 267: [24.1, 26.8],
407
+ 268: [24.3, 26.8],
408
+ 269: [24.5, 26.8],
409
+ 270: [24.7, 26.8],
410
+ 271: [24.8, 26.8],
411
+ 272: [25.1, 26.7],
412
+ 273: [25.3, 26.7],
413
+ 274: [25.4, 26.7],
414
+ 275: [25.6, 26.7],
415
+ 276: [25.8, 26.7],
416
+ 277: [26, 26.7],
417
+ 278: [26.1, 26.7],
418
+ 279: [26.3, 26.7],
419
+ 280: [26.5, 26.7],
420
+ 281: [26.7, 26.7],
421
+ 282: [26.9, 26.7],
422
+ 283: [27.1, 26.7],
423
+ 284: [27.3, 26.7],
424
+ 285: [27.5, 26.7],
425
+ 286: [27.7, 26.7],
426
+ 287: [27.8, 26.7],
427
+ 288: [28, 26.7],
428
+ 289: [28.2, 26.7],
429
+ 290: [28.4, 26.7],
430
+ 291: [28.6, 26.7],
431
+ 292: [28.8, 26.7],
432
+ 293: [28.9, 26.7],
433
+ 294: [29.1, 26.7],
434
+ 295: [29.3, 26.7],
435
+ 296: [29.5, 26.7],
436
+ 297: [29.6, 26.7],
437
+ 298: [29.8, 26.7],
438
+ 299: [30, 26.7],
439
+ 300: [30.2, 26.7],
440
+ 301: [30.4, 26.7],
441
+ 302: [30.5, 26.7],
442
+ 303: [30.7, 26.7],
443
+ 304: [30.9, 26.7],
444
+ 305: [31.1, 26.7],
445
+ 306: [31.2, 26.7],
446
+ 307: [31.4, 26.7],
447
+ 308: [31.6, 26.7],
448
+ 309: [31.8, 26.8],
449
+ 310: [31.9, 26.8],
450
+ 311: [32.1, 26.8],
451
+ 312: [32.3, 26.8],
452
+ 313: [32.5, 26.8],
453
+ 314: [32.6, 26.8],
454
+ 315: [32.8, 26.8],
455
+ 316: [33, 26.8],
456
+ 317: [33.2, 26.8],
457
+ 318: [33.3, 26.8],
458
+ 319: [33.5, 26.8],
459
+ 320: [33.7, 26.8],
460
+ 321: [33.8, 26.8],
461
+ 322: [34, 26.8],
462
+ 323: [34.2, 26.8],
463
+ 324: [34.4, 26.8],
464
+ 325: [34.5, 26.8],
465
+ 326: [34.7, 26.8],
466
+ 327: [34.9, 26.8],
467
+ 328: [35.1, 26.8],
468
+ 329: [35.2, 26.8],
469
+ 330: [35.4, 26.8],
470
+ 331: [35.5, 26.8],
471
+ 332: [35.7, 26.8],
472
+ 333: [35.9, 26.8],
473
+ 334: [36.1, 26.8],
474
+ 335: [36.3, 26.9],
475
+ 336: [36.5, 26.9],
476
+ 337: [36.7, 26.9],
477
+ 338: [36.9, 26.9],
478
+ 339: [37.1, 26.9],
479
+ 340: [37.2, 26.9],
480
+ 341: [37.4, 26.9],
481
+ 342: [37.5, 26.9],
482
+ 343: [37.7, 26.9],
483
+ 344: [37.9, 26.9],
484
+ 345: [38.1, 26.9],
485
+ 346: [38.3, 26.9],
486
+ 347: [38.5, 26.9],
487
+ 348: [38.7, 26.9],
488
+ 349: [38.9, 26.9],
489
+ 350: [39, 26.9],
490
+ 351: [39.2, 26.9],
491
+ 352: [39.3, 27],
492
+ 353: [39.5, 27],
493
+ 354: [39.7, 27],
494
+ 355: [39.9, 27],
495
+ 356: [40.1, 27],
496
+ 357: [40.2, 27],
497
+ 358: [40.4, 27],
498
+ 359: [40.6, 27],
499
+ 360: [40.8, 27],
500
+ 361: [40.9, 27],
501
+ 362: [41.1, 27],
502
+ 363: [41.2, 27],
503
+ 364: [41.4, 27],
504
+ 365: [41.6, 27],
505
+ 366: [41.8, 27],
506
+ 367: [42, 27],
507
+ 368: [42.1, 27.1],
508
+ 369: [42.3, 27.1],
509
+ 370: [42.4, 27.1],
510
+ 371: [42.6, 27.1],
511
+ 372: [42.8, 27.1],
512
+ 373: [43, 27.1],
513
+ 374: [43.1, 27.1],
514
+ 375: [43.2, 27.1],
515
+ 376: [43.4, 27.1],
516
+ 377: [43.6, 27.1],
517
+ 378: [43.8, 27.1],
518
+ 379: [43.9, 27.1],
519
+ 380: [44.1, 27.1],
520
+ 381: [44.3, 27.2],
521
+ 382: [44.4, 27.2],
522
+ 383: [44.6, 27.2],
523
+ 384: [44.7, 27.2],
524
+ 385: [44.9, 27.2],
525
+ 386: [45.1, 27.2],
526
+ 387: [45.3, 27.2],
527
+ 388: [45.5, 27.2],
528
+ 389: [45.6, 27.2],
529
+ 390: [45.8, 27.2],
530
+ 391: [46, 27.2],
531
+ 392: [46.2, 27.2],
532
+ 393: [46.4, 27.3],
533
+ 394: [46.5, 27.3],
534
+ 395: [46.7, 27.3],
535
+ 396: [46.9, 27.3],
536
+ 397: [47.1, 27.3],
537
+ 398: [47.2, 27.3],
538
+ 399: [47.4, 27.3],
539
+ 400: [47.6, 27.3],
540
+ 401: [47.7, 27.3],
541
+ 402: [47.9, 27.3],
542
+ 403: [48.1, 27.3],
543
+ 404: [48.3, 27.3],
544
+ 405: [48.5, 27.4],
545
+ 406: [48.7, 27.4],
546
+ 407: [48.8, 27.4],
547
+ 408: [49, 27.4],
548
+ 409: [49.2, 27.4],
549
+ 410: [49.4, 27.4],
550
+ 411: [49.6, 27.4],
551
+ 412: [49.7, 27.4],
552
+ 413: [49.9, 27.4],
553
+ 414: [50.1, 27.4],
554
+ 415: [50.2, 27.4],
555
+ 416: [50.4, 27.4],
556
+ 417: [50.6, 27.5],
557
+ 418: [50.7, 27.5],
558
+ 419: [50.9, 27.5],
559
+ 420: [51.1, 27.5],
560
+ 421: [51.2, 27.5],
561
+ 422: [51.4, 27.5],
562
+ 423: [51.6, 27.5],
563
+ 424: [51.7, 27.5],
564
+ 425: [51.9, 27.5],
565
+ 426: [52.1, 27.5],
566
+ 427: [51.2, 27.6],
567
+ 428: [52.4, 27.6],
568
+ 429: [52.5, 27.6],
569
+ 430: [52.7, 27.6],
570
+ 431: [52.9, 27.6],
571
+ 432: [53.1, 27.6],
572
+ 433: [53.2, 27.6],
573
+ 434: [53.4, 27.6],
574
+ 435: [53.6, 27.6],
575
+ 436: [53.7, 27.6],
576
+ 437: [53.9, 27.6],
577
+ 438: [54.1, 27.7],
578
+ 439: [54.2, 27.7],
579
+ 440: [54.3, 27.7],
580
+ 441: [54.5, 27.7],
581
+ 442: [54.7, 27.7],
582
+ 443: [54.8, 27.7],
583
+ 444: [55, 27.7],
584
+ 445: [55.2, 27.7],
585
+ 446: [55.3, 27.7],
586
+ 447: [55.5, 27.7],
587
+ 448: [55.7, 27.7],
588
+ 449: [55.8, 27.8],
589
+ 450: [56, 27.8],
590
+ 451: [56.2, 27.8],
591
+ 452: [56.3, 27.8],
592
+ 453: [56.5, 27.8],
593
+ 454: [56.7, 27.8],
594
+ 455: [56.8, 27.8],
595
+ 456: [57, 27.8],
596
+ 457: [57.2, 27.8],
597
+ 458: [57.3, 27.9],
598
+ 459: [57.4, 27.9],
599
+ 460: [57.6, 27.9],
600
+ 461: [57.8, 27.9],
601
+ 462: [57.9, 27.9],
602
+ 463: [58.1, 27.9],
603
+ 464: [58.3, 27.9],
604
+ 465: [58.4, 27.9],
605
+ 466: [58.6, 27.9],
606
+ 467: [58.8, 27.9],
607
+ 468: [59, 28],
608
+ 469: [59.1, 28],
609
+ 470: [59.2, 28],
610
+ 471: [59.4, 28],
611
+ 472: [59.6, 28],
612
+ 473: [59.7, 28],
613
+ 474: [60, 28],
614
+ 475: [60.1, 28],
615
+ 476: [60.2, 28],
616
+ 477: [60.4, 28],
617
+ 478: [60.6, 28.1],
618
+ 479: [60.7, 28.1],
619
+ 480: [60.9, 28.1],
620
+ 481: [60.1, 28.1],
621
+ 482: [60.3, 28.1],
622
+ 483: [61.4, 28.1],
623
+ 484: [61.5, 28.1],
624
+ 485: [61.7, 28.1],
625
+ 486: [61.9, 28.1],
626
+ 487: [62, 28.2],
627
+ 488: [62.2, 28.2],
628
+ 489: [62.3, 28.2],
629
+ 490: [62.5, 28.2],
630
+ 491: [62.7, 28.2],
631
+ 492: [62.8, 28.2],
632
+ 493: [63, 28.2],
633
+ 494: [63.2, 28.2],
634
+ 495: [63.3, 28.2],
635
+ 496: [63.4, 28.2],
636
+ 497: [63.6, 28.2],
637
+ 498: [63.8, 28.3],
638
+ 499: [63.9, 28.3],
639
+ 500: [64.1, 28.3],
640
+ };
641
+ const input = Math.min(Math.max(Math.round(m), 140), 500);
642
+ const toReturn = table[input];
643
+ return [Math.round(toReturn[1]), Math.round(toReturn[0])];
644
+ }
8
645
  //# sourceMappingURL=utils.js.map