1 """Support for Freedompro light."""
3 from __future__
import annotations
8 from pyfreedompro
import put_state
24 from .const
import DOMAIN
25 from .coordinator
import FreedomproDataUpdateCoordinator
29 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
31 """Set up Freedompro light."""
32 api_key: str = entry.data[CONF_API_KEY]
33 coordinator: FreedomproDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
35 Device(hass, api_key, device, coordinator)
36 for device
in coordinator.data
37 if device[
"type"] ==
"lightbulb"
42 """Representation of a Freedompro light."""
44 _attr_has_entity_name =
True
53 device: dict[str, Any],
54 coordinator: FreedomproDataUpdateCoordinator,
56 """Initialize the Freedompro light."""
58 self.
_session_session = aiohttp_client.async_get_clientsession(hass)
62 identifiers={(DOMAIN, device[
"uid"])},
63 manufacturer=
"Freedompro",
67 color_mode = ColorMode.ONOFF
68 if "hue" in device[
"characteristics"]:
69 color_mode = ColorMode.HS
70 elif "brightness" in device[
"characteristics"]:
71 color_mode = ColorMode.BRIGHTNESS
77 """Handle updated data from the coordinator."""
81 for device
in self.coordinator.data
86 if device
is not None and "state" in device:
87 state = device[
"state"]
90 if "brightness" in state:
92 if "hue" in state
and "saturation" in state:
97 """When entity is added to hass."""
102 """Async function to set on to light."""
103 payload: dict[str, Any] = {
"on":
True}
104 if ATTR_BRIGHTNESS
in kwargs:
105 payload[
"brightness"] = round(kwargs[ATTR_BRIGHTNESS] / 255 * 100)
106 if ATTR_HS_COLOR
in kwargs:
107 payload[
"saturation"] = round(kwargs[ATTR_HS_COLOR][1])
108 payload[
"hue"] = round(kwargs[ATTR_HS_COLOR][0])
118 """Async function to set off to light."""
119 payload = {
"on":
False}
None async_turn_on(self, **Any kwargs)
None async_turn_off(self, **Any kwargs)
None __init__(self, HomeAssistant hass, str api_key, dict[str, Any] device, FreedomproDataUpdateCoordinator coordinator)
None async_added_to_hass(self)
_attr_supported_color_modes
None _handle_coordinator_update(self)
None async_request_refresh(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)