def test_parse_css_color(self): rgb = parse_css_color("#F0F") self.assertEqual(rgb, RGB(255, 0, 255)) rgb = parse_css_color("#FF00FF") self.assertEqual(rgb, RGB(255, 0, 255)) rgb = parse_css_color(" rgb ( 255, 0, 255 ) ") self.assertEqual(rgb, RGB(255, 0, 255)) bhs = parse_css_color(" bhs ( 255, 32767, 255 ) ") self.assertEqual(bhs, BHS(255, 32767, 255)) mired = parse_css_color(" mired ( 500 ) ") self.assertEqual(mired, Mired(500))
def light_state_from_color(self, raw_color: str) -> dict: on_state = raw_color != "none" props = {"on": on_state} if on_state: color = parse_css_color(raw_color) props["transitiontime"] = int(self.transition_time * 10) if isinstance(color, BHS): props.update({"bri": color.b, "hue": color.h, "sat": color.s}) else: assert isinstance(color, Mired) props.update({"ct": color.ct}) return props