@homebridge-plugins/homebridge-meross 10.8.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 (54) hide show
  1. package/CHANGELOG.md +1346 -0
  2. package/LICENSE +21 -0
  3. package/README.md +68 -0
  4. package/config.schema.json +2066 -0
  5. package/eslint.config.js +49 -0
  6. package/lib/connection/http.js +345 -0
  7. package/lib/connection/mqtt.js +174 -0
  8. package/lib/device/baby.js +532 -0
  9. package/lib/device/cooler-single.js +447 -0
  10. package/lib/device/diffuser.js +730 -0
  11. package/lib/device/fan.js +530 -0
  12. package/lib/device/garage-main.js +225 -0
  13. package/lib/device/garage-single.js +495 -0
  14. package/lib/device/garage-sub.js +376 -0
  15. package/lib/device/heater-single.js +445 -0
  16. package/lib/device/hub-contact.js +56 -0
  17. package/lib/device/hub-leak.js +86 -0
  18. package/lib/device/hub-main.js +403 -0
  19. package/lib/device/hub-sensor.js +115 -0
  20. package/lib/device/hub-smoke.js +40 -0
  21. package/lib/device/hub-valve.js +377 -0
  22. package/lib/device/humidifier.js +521 -0
  23. package/lib/device/index.js +63 -0
  24. package/lib/device/light-cct.js +474 -0
  25. package/lib/device/light-dimmer.js +312 -0
  26. package/lib/device/light-rgb.js +528 -0
  27. package/lib/device/outlet-multi.js +383 -0
  28. package/lib/device/outlet-single.js +405 -0
  29. package/lib/device/power-strip.js +282 -0
  30. package/lib/device/purifier-single.js +372 -0
  31. package/lib/device/purifier.js +403 -0
  32. package/lib/device/roller-location.js +317 -0
  33. package/lib/device/roller.js +234 -0
  34. package/lib/device/sensor-presence.js +201 -0
  35. package/lib/device/switch-multi.js +403 -0
  36. package/lib/device/switch-single.js +371 -0
  37. package/lib/device/template.js +177 -0
  38. package/lib/device/thermostat.js +493 -0
  39. package/lib/fakegato/LICENSE +21 -0
  40. package/lib/fakegato/fakegato-history.js +814 -0
  41. package/lib/fakegato/fakegato-storage.js +108 -0
  42. package/lib/fakegato/fakegato-timer.js +125 -0
  43. package/lib/fakegato/uuid.js +27 -0
  44. package/lib/homebridge-ui/public/index.html +316 -0
  45. package/lib/homebridge-ui/server.js +10 -0
  46. package/lib/index.js +8 -0
  47. package/lib/platform.js +1256 -0
  48. package/lib/utils/colour.js +581 -0
  49. package/lib/utils/constants.js +377 -0
  50. package/lib/utils/custom-chars.js +165 -0
  51. package/lib/utils/eve-chars.js +130 -0
  52. package/lib/utils/functions.js +39 -0
  53. package/lib/utils/lang-en.js +114 -0
  54. package/package.json +70 -0
@@ -0,0 +1,581 @@
1
+ function hs2rgb(h, s) {
2
+ /*
3
+ Credit:
4
+ https://github.com/WickyNilliams/pure-color
5
+ */
6
+ h = Number.parseInt(h, 10) / 60
7
+ s = Number.parseInt(s, 10) / 100
8
+ const f = h - Math.floor(h)
9
+ const p = 255 * (1 - s)
10
+ const q = 255 * (1 - s * f)
11
+ const t = 255 * (1 - s * (1 - f))
12
+ let rgb
13
+ switch (Math.floor(h) % 6) {
14
+ case 0:
15
+ rgb = [255, t, p]
16
+ break
17
+ case 1:
18
+ rgb = [q, 255, p]
19
+ break
20
+ case 2:
21
+ rgb = [p, 255, t]
22
+ break
23
+ case 3:
24
+ rgb = [p, q, 255]
25
+ break
26
+ case 4:
27
+ rgb = [t, p, 255]
28
+ break
29
+ case 5:
30
+ rgb = [255, p, q]
31
+ break
32
+ default:
33
+ return []
34
+ }
35
+ if (rgb[0] === 255 && rgb[1] <= 25 && rgb[2] <= 25) {
36
+ rgb[1] = 0
37
+ rgb[2] = 0
38
+ }
39
+ return [Math.round(rgb[0]), Math.round(rgb[1]), Math.round(rgb[2])]
40
+ }
41
+
42
+ function rgb2hs(r, g, b) {
43
+ /*
44
+ Credit:
45
+ https://github.com/WickyNilliams/pure-color
46
+ */
47
+ r = Number.parseInt(r, 10)
48
+ g = Number.parseInt(g, 10)
49
+ b = Number.parseInt(b, 10)
50
+ const min = Math.min(r, g, b)
51
+ const max = Math.max(r, g, b)
52
+ const delta = max - min
53
+ let h
54
+ let s
55
+ if (max === 0) {
56
+ s = 0
57
+ } else {
58
+ s = (delta / max) * 100
59
+ }
60
+ if (max === min) {
61
+ h = 0
62
+ } else if (r === max) {
63
+ h = (g - b) / delta
64
+ } else if (g === max) {
65
+ h = 2 + (b - r) / delta
66
+ } else if (b === max) {
67
+ h = 4 + (r - g) / delta
68
+ }
69
+ h = Math.min(h * 60, 360)
70
+
71
+ if (h < 0) {
72
+ h += 360
73
+ }
74
+ return [Math.round(h), Math.round(s)]
75
+ }
76
+
77
+ function k2rgb(k) {
78
+ /*
79
+ Credit:
80
+ https://tannerhelland.com/2012/09/18/convert-temperature-rgb-algorithm-code.html
81
+ */
82
+ k /= 100
83
+ let r
84
+ let g
85
+ let b
86
+ if (k <= 66) {
87
+ r = 255
88
+ } else {
89
+ r = k - 60
90
+ r = 329.698727466 * r ** -0.1332047592
91
+ if (r < 0) {
92
+ r = 0
93
+ }
94
+ if (r > 255) {
95
+ r = 255
96
+ }
97
+ }
98
+ if (k <= 66) {
99
+ g = k
100
+ g = 99.4708025861 * Math.log(g) - 161.1195681661
101
+ if (g < 0) {
102
+ g = 0
103
+ }
104
+ if (g > 255) {
105
+ g = 255
106
+ }
107
+ } else {
108
+ g = k - 60
109
+ g = 288.1221695283 * g ** -0.0755148492
110
+ if (g < 0) {
111
+ g = 0
112
+ }
113
+ if (g > 255) {
114
+ g = 255
115
+ }
116
+ }
117
+ if (k >= 66) {
118
+ b = 255
119
+ } else if (k <= 19) {
120
+ b = 0
121
+ } else {
122
+ b = k - 10
123
+ b = 138.5177312231 * Math.log(b) - 305.0447927307
124
+ if (b < 0) {
125
+ b = 0
126
+ }
127
+ if (b > 255) {
128
+ b = 255
129
+ }
130
+ }
131
+ return [Math.round(r), Math.round(g), Math.round(b)]
132
+ }
133
+
134
+ function m2hs(m) {
135
+ /*
136
+ Credit:
137
+ https://github.com/homebridge/HAP-NodeJS
138
+ */
139
+ const table = {
140
+ 100: [19, 222.1],
141
+ 101: [18.7, 222.2],
142
+ 102: [18.4, 222.3],
143
+ 103: [18.2, 222.3],
144
+ 104: [17.9, 222.4],
145
+ 105: [17.6, 222.5],
146
+ 106: [17.3, 222.7],
147
+ 107: [17, 222.8],
148
+ 108: [16.7, 222.9],
149
+ 109: [16.4, 223],
150
+ 110: [16.1, 223.2],
151
+ 111: [15.8, 223.3],
152
+ 112: [15.4, 223.4],
153
+ 113: [15.2, 223.6],
154
+ 114: [14.9, 223.8],
155
+ 115: [14.7, 223.9],
156
+ 116: [14.3, 224.1],
157
+ 117: [14.1, 224.2],
158
+ 118: [13.8, 224.4],
159
+ 119: [13.5, 224.6],
160
+ 120: [13.2, 224.8],
161
+ 121: [12.9, 225],
162
+ 122: [12.5, 225.3],
163
+ 123: [12.2, 225.6],
164
+ 124: [11.8, 225.9],
165
+ 125: [11.4, 226.3],
166
+ 126: [11.1, 226.7],
167
+ 127: [10.7, 227.1],
168
+ 128: [10.3, 227.6],
169
+ 129: [9.9, 228],
170
+ 130: [9.6, 228.5],
171
+ 131: [9.3, 229.1],
172
+ 132: [8.9, 229.6],
173
+ 133: [8.5, 230.2],
174
+ 134: [8.2, 230.9],
175
+ 135: [7.8, 231.6],
176
+ 136: [7.5, 232.5],
177
+ 137: [7.1, 233.5],
178
+ 138: [6.7, 234.6],
179
+ 139: [6.3, 235.8],
180
+ 140: [6, 237.1],
181
+ 141: [5.6, 238.9],
182
+ 142: [5.2, 240.9],
183
+ 143: [5, 242.9],
184
+ 144: [4.8, 244.9],
185
+ 145: [4.6, 246.9],
186
+ 146: [4.4, 249.3],
187
+ 147: [4.3, 251.9],
188
+ 148: [4.1, 254.9],
189
+ 149: [3.9, 258],
190
+ 150: [3.7, 261.8],
191
+ 151: [3.4, 265.9],
192
+ 152: [3.2, 271],
193
+ 153: [3, 276.4],
194
+ 154: [2.8, 283.6],
195
+ 155: [2.6, 290.4],
196
+ 156: [2.3, 295.3],
197
+ 157: [2.1, 300],
198
+ 158: [1.9, 300],
199
+ 159: [1.6, 300],
200
+ 160: [1.4, 195.8],
201
+ 161: [1.2, 84.3],
202
+ 162: [1.3, 58.2],
203
+ 163: [1.5, 55.9],
204
+ 164: [1.7, 53.2],
205
+ 165: [1.9, 50.2],
206
+ 166: [2.1, 47.1],
207
+ 167: [2.4, 44.5],
208
+ 168: [2.6, 42.6],
209
+ 169: [2.9, 40.9],
210
+ 170: [3.1, 39.5],
211
+ 171: [3.4, 38.3],
212
+ 172: [3.7, 37.3],
213
+ 173: [3.9, 36.5],
214
+ 174: [4.2, 35.7],
215
+ 175: [4.4, 35.1],
216
+ 176: [4.6, 34.5],
217
+ 177: [4.9, 34],
218
+ 178: [5.1, 33.5],
219
+ 179: [5.3, 33],
220
+ 180: [5.6, 32.7],
221
+ 181: [5.8, 32.3],
222
+ 182: [6, 32],
223
+ 183: [6.3, 31.7],
224
+ 184: [6.5, 31.4],
225
+ 185: [6.7, 31.2],
226
+ 186: [7, 30.9],
227
+ 187: [7.2, 30.7],
228
+ 188: [7.4, 30.5],
229
+ 189: [7.6, 30.3],
230
+ 190: [7.9, 30.1],
231
+ 191: [8.1, 29.9],
232
+ 192: [8.4, 29.7],
233
+ 193: [8.6, 29.6],
234
+ 194: [8.9, 29.5],
235
+ 195: [9.1, 29.3],
236
+ 196: [9.4, 29.2],
237
+ 197: [9.6, 29.1],
238
+ 198: [9.8, 29],
239
+ 199: [10, 28.9],
240
+ 200: [10.2, 28.7],
241
+ 201: [10.5, 28.7],
242
+ 202: [10.7, 28.6],
243
+ 203: [11, 28.5],
244
+ 204: [11.2, 28.4],
245
+ 205: [11.4, 28.3],
246
+ 206: [11.6, 28.3],
247
+ 207: [11.8, 28.2],
248
+ 208: [12.1, 28.1],
249
+ 209: [12.3, 28.1],
250
+ 210: [12.5, 28],
251
+ 211: [12.7, 28],
252
+ 212: [12.9, 27.9],
253
+ 213: [13.2, 27.8],
254
+ 214: [13.4, 27.8],
255
+ 215: [13.6, 27.7],
256
+ 216: [13.8, 27.7],
257
+ 217: [14, 27.7],
258
+ 218: [14.3, 27.6],
259
+ 219: [14.5, 27.6],
260
+ 220: [14.7, 27.5],
261
+ 221: [14.9, 27.5],
262
+ 222: [15.1, 27.5],
263
+ 223: [15.3, 27.4],
264
+ 224: [15.5, 27.4],
265
+ 225: [15.8, 27.4],
266
+ 226: [16, 27.3],
267
+ 227: [16.2, 27.3],
268
+ 228: [16.4, 27.3],
269
+ 229: [16.6, 27.3],
270
+ 230: [16.8, 27.2],
271
+ 231: [17, 27.2],
272
+ 232: [17.2, 27.2],
273
+ 233: [17.4, 27.2],
274
+ 234: [17.6, 27.2],
275
+ 235: [17.8, 27.1],
276
+ 236: [18, 27.1],
277
+ 237: [18.2, 27.1],
278
+ 238: [18.4, 27.1],
279
+ 239: [18.7, 27.1],
280
+ 240: [18.8, 27],
281
+ 241: [19, 27],
282
+ 242: [19.2, 27],
283
+ 243: [19.4, 27],
284
+ 244: [19.6, 27],
285
+ 245: [19.8, 27],
286
+ 246: [20, 27],
287
+ 247: [20.3, 26.9],
288
+ 248: [20.5, 26.9],
289
+ 249: [20.6, 26.9],
290
+ 250: [20.8, 26.9],
291
+ 251: [21, 26.9],
292
+ 252: [21.3, 26.9],
293
+ 253: [21.5, 26.9],
294
+ 254: [21.6, 26.9],
295
+ 255: [21.8, 26.8],
296
+ 256: [22, 26.8],
297
+ 257: [22.2, 26.8],
298
+ 258: [22.4, 26.8],
299
+ 259: [22.6, 26.8],
300
+ 260: [22.8, 26.8],
301
+ 261: [23, 26.8],
302
+ 262: [23.2, 26.8],
303
+ 263: [23.4, 26.8],
304
+ 264: [23.6, 26.8],
305
+ 265: [23.8, 26.8],
306
+ 266: [24, 26.8],
307
+ 267: [24.1, 26.8],
308
+ 268: [24.3, 26.8],
309
+ 269: [24.5, 26.8],
310
+ 270: [24.7, 26.8],
311
+ 271: [24.8, 26.8],
312
+ 272: [25.1, 26.7],
313
+ 273: [25.3, 26.7],
314
+ 274: [25.4, 26.7],
315
+ 275: [25.6, 26.7],
316
+ 276: [25.8, 26.7],
317
+ 277: [26, 26.7],
318
+ 278: [26.1, 26.7],
319
+ 279: [26.3, 26.7],
320
+ 280: [26.5, 26.7],
321
+ 281: [26.7, 26.7],
322
+ 282: [26.9, 26.7],
323
+ 283: [27.1, 26.7],
324
+ 284: [27.3, 26.7],
325
+ 285: [27.5, 26.7],
326
+ 286: [27.7, 26.7],
327
+ 287: [27.8, 26.7],
328
+ 288: [28, 26.7],
329
+ 289: [28.2, 26.7],
330
+ 290: [28.4, 26.7],
331
+ 291: [28.6, 26.7],
332
+ 292: [28.8, 26.7],
333
+ 293: [28.9, 26.7],
334
+ 294: [29.1, 26.7],
335
+ 295: [29.3, 26.7],
336
+ 296: [29.5, 26.7],
337
+ 297: [29.6, 26.7],
338
+ 298: [29.8, 26.7],
339
+ 299: [30, 26.7],
340
+ 300: [30.2, 26.7],
341
+ 301: [30.4, 26.7],
342
+ 302: [30.5, 26.7],
343
+ 303: [30.7, 26.7],
344
+ 304: [30.9, 26.7],
345
+ 305: [31.1, 26.7],
346
+ 306: [31.2, 26.7],
347
+ 307: [31.4, 26.7],
348
+ 308: [31.6, 26.7],
349
+ 309: [31.8, 26.8],
350
+ 310: [31.9, 26.8],
351
+ 311: [32.1, 26.8],
352
+ 312: [32.3, 26.8],
353
+ 313: [32.5, 26.8],
354
+ 314: [32.6, 26.8],
355
+ 315: [32.8, 26.8],
356
+ 316: [33, 26.8],
357
+ 317: [33.2, 26.8],
358
+ 318: [33.3, 26.8],
359
+ 319: [33.5, 26.8],
360
+ 320: [33.7, 26.8],
361
+ 321: [33.8, 26.8],
362
+ 322: [34, 26.8],
363
+ 323: [34.2, 26.8],
364
+ 324: [34.4, 26.8],
365
+ 325: [34.5, 26.8],
366
+ 326: [34.7, 26.8],
367
+ 327: [34.9, 26.8],
368
+ 328: [35.1, 26.8],
369
+ 329: [35.2, 26.8],
370
+ 330: [35.4, 26.8],
371
+ 331: [35.5, 26.8],
372
+ 332: [35.7, 26.8],
373
+ 333: [35.9, 26.8],
374
+ 334: [36.1, 26.8],
375
+ 335: [36.3, 26.9],
376
+ 336: [36.5, 26.9],
377
+ 337: [36.7, 26.9],
378
+ 338: [36.9, 26.9],
379
+ 339: [37.1, 26.9],
380
+ 340: [37.2, 26.9],
381
+ 341: [37.4, 26.9],
382
+ 342: [37.5, 26.9],
383
+ 343: [37.7, 26.9],
384
+ 344: [37.9, 26.9],
385
+ 345: [38.1, 26.9],
386
+ 346: [38.3, 26.9],
387
+ 347: [38.5, 26.9],
388
+ 348: [38.7, 26.9],
389
+ 349: [38.9, 26.9],
390
+ 350: [39, 26.9],
391
+ 351: [39.2, 26.9],
392
+ 352: [39.3, 27],
393
+ 353: [39.5, 27],
394
+ 354: [39.7, 27],
395
+ 355: [39.9, 27],
396
+ 356: [40.1, 27],
397
+ 357: [40.2, 27],
398
+ 358: [40.4, 27],
399
+ 359: [40.6, 27],
400
+ 360: [40.8, 27],
401
+ 361: [40.9, 27],
402
+ 362: [41.1, 27],
403
+ 363: [41.2, 27],
404
+ 364: [41.4, 27],
405
+ 365: [41.6, 27],
406
+ 366: [41.8, 27],
407
+ 367: [42, 27],
408
+ 368: [42.1, 27.1],
409
+ 369: [42.3, 27.1],
410
+ 370: [42.4, 27.1],
411
+ 371: [42.6, 27.1],
412
+ 372: [42.8, 27.1],
413
+ 373: [43, 27.1],
414
+ 374: [43.1, 27.1],
415
+ 375: [43.2, 27.1],
416
+ 376: [43.4, 27.1],
417
+ 377: [43.6, 27.1],
418
+ 378: [43.8, 27.1],
419
+ 379: [43.9, 27.1],
420
+ 380: [44.1, 27.1],
421
+ 381: [44.3, 27.2],
422
+ 382: [44.4, 27.2],
423
+ 383: [44.6, 27.2],
424
+ 384: [44.7, 27.2],
425
+ 385: [44.9, 27.2],
426
+ 386: [45.1, 27.2],
427
+ 387: [45.3, 27.2],
428
+ 388: [45.5, 27.2],
429
+ 389: [45.6, 27.2],
430
+ 390: [45.8, 27.2],
431
+ 391: [46, 27.2],
432
+ 392: [46.2, 27.2],
433
+ 393: [46.4, 27.3],
434
+ 394: [46.5, 27.3],
435
+ 395: [46.7, 27.3],
436
+ 396: [46.9, 27.3],
437
+ 397: [47.1, 27.3],
438
+ 398: [47.2, 27.3],
439
+ 399: [47.4, 27.3],
440
+ 400: [47.6, 27.3],
441
+ 401: [47.7, 27.3],
442
+ 402: [47.9, 27.3],
443
+ 403: [48.1, 27.3],
444
+ 404: [48.3, 27.3],
445
+ 405: [48.5, 27.4],
446
+ 406: [48.7, 27.4],
447
+ 407: [48.8, 27.4],
448
+ 408: [49, 27.4],
449
+ 409: [49.2, 27.4],
450
+ 410: [49.4, 27.4],
451
+ 411: [49.6, 27.4],
452
+ 412: [49.7, 27.4],
453
+ 413: [49.9, 27.4],
454
+ 414: [50.1, 27.4],
455
+ 415: [50.2, 27.4],
456
+ 416: [50.4, 27.4],
457
+ 417: [50.6, 27.5],
458
+ 418: [50.7, 27.5],
459
+ 419: [50.9, 27.5],
460
+ 420: [51.1, 27.5],
461
+ 421: [51.2, 27.5],
462
+ 422: [51.4, 27.5],
463
+ 423: [51.6, 27.5],
464
+ 424: [51.7, 27.5],
465
+ 425: [51.9, 27.5],
466
+ 426: [52.1, 27.5],
467
+ 427: [51.2, 27.6],
468
+ 428: [52.4, 27.6],
469
+ 429: [52.5, 27.6],
470
+ 430: [52.7, 27.6],
471
+ 431: [52.9, 27.6],
472
+ 432: [53.1, 27.6],
473
+ 433: [53.2, 27.6],
474
+ 434: [53.4, 27.6],
475
+ 435: [53.6, 27.6],
476
+ 436: [53.7, 27.6],
477
+ 437: [53.9, 27.6],
478
+ 438: [54.1, 27.7],
479
+ 439: [54.2, 27.7],
480
+ 440: [54.3, 27.7],
481
+ 441: [54.5, 27.7],
482
+ 442: [54.7, 27.7],
483
+ 443: [54.8, 27.7],
484
+ 444: [55, 27.7],
485
+ 445: [55.2, 27.7],
486
+ 446: [55.3, 27.7],
487
+ 447: [55.5, 27.7],
488
+ 448: [55.7, 27.7],
489
+ 449: [55.8, 27.8],
490
+ 450: [56, 27.8],
491
+ 451: [56.2, 27.8],
492
+ 452: [56.3, 27.8],
493
+ 453: [56.5, 27.8],
494
+ 454: [56.7, 27.8],
495
+ 455: [56.8, 27.8],
496
+ 456: [57, 27.8],
497
+ 457: [57.2, 27.8],
498
+ 458: [57.3, 27.9],
499
+ 459: [57.4, 27.9],
500
+ 460: [57.6, 27.9],
501
+ 461: [57.8, 27.9],
502
+ 462: [57.9, 27.9],
503
+ 463: [58.1, 27.9],
504
+ 464: [58.3, 27.9],
505
+ 465: [58.4, 27.9],
506
+ 466: [58.6, 27.9],
507
+ 467: [58.8, 27.9],
508
+ 468: [59, 28],
509
+ 469: [59.1, 28],
510
+ 470: [59.2, 28],
511
+ 471: [59.4, 28],
512
+ 472: [59.6, 28],
513
+ 473: [59.7, 28],
514
+ 474: [60, 28],
515
+ 475: [60.1, 28],
516
+ 476: [60.2, 28],
517
+ 477: [60.4, 28],
518
+ 478: [60.6, 28.1],
519
+ 479: [60.7, 28.1],
520
+ 480: [60.9, 28.1],
521
+ 481: [60.1, 28.1],
522
+ 482: [60.3, 28.1],
523
+ 483: [61.4, 28.1],
524
+ 484: [61.5, 28.1],
525
+ 485: [61.7, 28.1],
526
+ 486: [61.9, 28.1],
527
+ 487: [62, 28.2],
528
+ 488: [62.2, 28.2],
529
+ 489: [62.3, 28.2],
530
+ 490: [62.5, 28.2],
531
+ 491: [62.7, 28.2],
532
+ 492: [62.8, 28.2],
533
+ 493: [63, 28.2],
534
+ 494: [63.2, 28.2],
535
+ 495: [63.3, 28.2],
536
+ 496: [63.4, 28.2],
537
+ 497: [63.6, 28.2],
538
+ 498: [63.8, 28.3],
539
+ 499: [63.9, 28.3],
540
+ 500: [64.1, 28.3],
541
+ }
542
+ const input = Math.min(Math.max(Math.round(m), 140), 500)
543
+ const toReturn = table[input]
544
+ return [Math.round(toReturn[1]), Math.round(toReturn[0])]
545
+ }
546
+
547
+ const hk2mrRGB = (r, g, b) => (r << 16) + (g << 8) + b
548
+
549
+ function hk2mrCT(val) {
550
+ let mrVal = val - 140
551
+ mrVal = 360 - mrVal
552
+ mrVal = Math.round(mrVal / 3.6)
553
+ mrVal = mrVal === 0 ? 1 : mrVal
554
+ return mrVal
555
+ }
556
+
557
+ function mr2hkRGB(val) {
558
+ const r = (val & 0xFF0000) >> 16
559
+ const g = (val & 0x00FF00) >> 8
560
+ const b = val & 0x0000FF
561
+ return [r, g, b]
562
+ }
563
+
564
+ function mr2hkCT(val) {
565
+ let hkVal = val * 3.6
566
+ hkVal = 360 - hkVal
567
+ hkVal += 140
568
+ hkVal = Math.round(hkVal)
569
+ return hkVal
570
+ }
571
+
572
+ export {
573
+ hk2mrCT,
574
+ hk2mrRGB,
575
+ hs2rgb,
576
+ k2rgb,
577
+ m2hs,
578
+ mr2hkCT,
579
+ mr2hkRGB,
580
+ rgb2hs,
581
+ }