1 """Common code for GogoGate2 component."""
3 from __future__
import annotations
5 from ismartgate.common
import AbstractDoor, get_door_by_id
12 from .const
import DOMAIN, MANUFACTURER
13 from .coordinator
import DeviceDataUpdateCoordinator
17 """Base class for gogogate2 entities."""
21 config_entry: ConfigEntry,
22 data_update_coordinator: DeviceDataUpdateCoordinator,
26 """Initialize gogogate2 base entity."""
27 super().
__init__(data_update_coordinator)
31 self.
_api_api = data_update_coordinator.api
35 def door(self) -> AbstractDoor:
36 """Return the door object."""
37 door = get_door_by_id(self.
_door_door.door_id, self.coordinator.data)
39 return self.
_door_door
43 """Return the door with status."""
44 data = self.coordinator.data
45 door_with_statuses = self.
_api_api.async_get_door_statuses_from_info(data)
46 return door_with_statuses[self.
_door_id_door_id]
50 """Device info for the controller."""
51 data = self.coordinator.data
52 if data.remoteaccessenabled:
53 configuration_url = f
"https://{data.remoteaccess}"
55 configuration_url = f
"http://{self._config_entry.data[CONF_IP_ADDRESS]}"
57 configuration_url=configuration_url,
60 manufacturer=MANUFACTURER,
62 sw_version=data.firmwareversion,
67 """Return the state attributes."""
68 return {
"door_id": self.
_door_id_door_id}
DeviceInfo device_info(self)
AbstractDoor door_status(self)
None __init__(self, ConfigEntry config_entry, DeviceDataUpdateCoordinator data_update_coordinator, AbstractDoor door, str unique_id)
def extra_state_attributes(self)