kasa-smart-hub
Version:
Virtual Smart Hub for TP-Link Kasa Smart Home
28 lines (25 loc) • 561 B
JavaScript
export default (r, g, b) => {
const max = Math.max(r, g, b);
const min = Math.min(r, g, b);
const delta = max - min;
// hue
let h;
if (delta === 0) {
h = 0;
} else if (r === max) {
h = ((g - b) / delta) % 6;
} else if (g === max) {
h = (b - r) / delta + 2;
} else if (b === max) {
h = (r - g) / delta + 4;
}
h = Math.round(h * 60);
if (h < 0) {
h += 360;
}
// saturation
const s = Math.round((max === 0 ? 0 : (delta / max)) * 100);
// value
const v = Math.round((max / 255) * 100);
return [h, s, v];
};