3 from __future__
import annotations
7 from yolink.client_request
import ClientRequest
8 from yolink.const
import ATTR_DEVICE_DIMMER
15 from .const
import DOMAIN
16 from .coordinator
import YoLinkCoordinator
17 from .entity
import YoLinkEntity
22 config_entry: ConfigEntry,
23 async_add_entities: AddEntitiesCallback,
25 """Set up YoLink Dimmer from a config entry."""
26 device_coordinators = hass.data[DOMAIN][config_entry.entry_id].device_coordinators
29 for device_coordinator
in device_coordinators.values()
30 if device_coordinator.device.device_type == ATTR_DEVICE_DIMMER
36 """YoLink Dimmer Entity."""
38 _attr_color_mode = ColorMode.BRIGHTNESS
40 _attr_supported_color_modes: set[ColorMode] = {ColorMode.BRIGHTNESS}
44 config_entry: ConfigEntry,
45 coordinator: YoLinkCoordinator,
47 """Init YoLink Dimmer entity."""
48 super().
__init__(config_entry, coordinator)
53 """Update HA Entity State."""
54 if (dimmer_state := state.get(
"state"))
is not None:
57 if (brightness := state.get(
"brightness"))
is not None:
62 """Toggle light state."""
63 params: dict[str, Any] = {
"state": state}
64 if brightness
is not None:
66 params[
"brightness"] = round(brightness / 255, 2) * 100
67 await self.
call_devicecall_device(ClientRequest(
"setState", params))
73 brightness = kwargs.get(ATTR_BRIGHTNESS)
None call_device(self, ClientRequest request)
None __init__(self, ConfigEntry config_entry, YoLinkCoordinator coordinator)
None update_entity_state(self, dict[str, Any] state)
None async_turn_off(self, **Any kwargs)
None async_turn_on(self, **Any kwargs)
None toggle_light_state(self, str state, int|None brightness)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)