1 """Support for Blinkstick lights."""
4 from __future__
import annotations
9 import voluptuous
as vol
14 PLATFORM_SCHEMA
as LIGHT_PLATFORM_SCHEMA,
25 CONF_SERIAL =
"serial"
27 DEFAULT_NAME =
"Blinkstick"
29 PLATFORM_SCHEMA = LIGHT_PLATFORM_SCHEMA.extend(
31 vol.Required(CONF_SERIAL): cv.string,
32 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
40 add_entities: AddEntitiesCallback,
41 discovery_info: DiscoveryInfoType |
None =
None,
43 """Set up Blinkstick device specified by serial number."""
45 name = config[CONF_NAME]
46 serial = config[CONF_SERIAL]
48 stick = blinkstick.find_by_serial(serial)
54 """Representation of a BlinkStick light."""
56 _attr_color_mode = ColorMode.HS
57 _attr_supported_color_modes = {ColorMode.HS}
60 """Initialize the light."""
65 """Read back the device state."""
66 rgb_color = self.
_stick_stick.get_color()
67 hsv = color_util.color_RGB_to_hsv(*rgb_color)
73 """Turn the device on."""
74 if ATTR_HS_COLOR
in kwargs:
77 brightness: int = kwargs.get(ATTR_BRIGHTNESS, 255)
82 rgb_color = color_util.color_hsv_to_RGB(
85 self.
_stick_stick.set_color(red=rgb_color[0], green=rgb_color[1], blue=rgb_color[2])
88 """Turn the device off."""
None turn_off(self, **Any kwargs)
None turn_on(self, **Any kwargs)
def __init__(self, stick, name)
int|None brightness(self)
tuple[float, float]|None hs_color(self)
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)