1 """YoLink Garage Door."""
3 from __future__
import annotations
7 from yolink.client_request
import ClientRequest
8 from yolink.const
import ATTR_DEVICE_FINGER, ATTR_GARAGE_DOOR_CONTROLLER
19 from .const
import DOMAIN
20 from .coordinator
import YoLinkCoordinator
21 from .entity
import YoLinkEntity
26 config_entry: ConfigEntry,
27 async_add_entities: AddEntitiesCallback,
29 """Set up YoLink garage door from a config entry."""
30 device_coordinators = hass.data[DOMAIN][config_entry.entry_id].device_coordinators
33 for device_coordinator
in device_coordinators.values()
34 if device_coordinator.device.device_type
35 in [ATTR_GARAGE_DOOR_CONTROLLER, ATTR_DEVICE_FINGER]
41 """YoLink Cover Entity."""
47 config_entry: ConfigEntry,
48 coordinator: YoLinkCoordinator,
50 """Init YoLink garage door entity."""
51 super().
__init__(config_entry, coordinator)
52 self.
_attr_unique_id_attr_unique_id = f
"{coordinator.device.device_id}_door_state"
55 CoverEntityFeature.OPEN | CoverEntityFeature.CLOSE
60 """Update HA Entity State."""
61 if (state_val := state.get(
"state"))
is None:
63 if self.coordinator.paired_device
is None or state_val ==
"error":
67 elif state_val
in [
"open",
"closed"]:
73 """Toggle Garage door state."""
76 await self.
call_devicecall_device(ClientRequest(
"toggle", {}))
79 """Toggle garage door."""
83 """Toggle garage door."""
None update_entity_state(self, dict[str, Any] state)
None toggle_garage_state(self)
None async_open_cover(self, **Any kwargs)
None async_close_cover(self, **Any kwargs)
None __init__(self, ConfigEntry config_entry, YoLinkCoordinator coordinator)
None call_device(self, ClientRequest request)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)