28 lines
840 B
Python
28 lines
840 B
Python
from __future__ import annotations
|
|||
|
|
|
||
|
|
from datetime import timedelta
|
||
|
|
|
||
|
|
from homeassistant.core import HomeAssistant
|
||
|
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||
|
|
|
||
|
|
from .data_client import StateGridDataClient
|
||
|
|
|
||
|
|
from .const import DOMAIN
|
||
|
|
from .utils.logger import LOGGER
|
||
|
|
|
||
|
|
class StateGridCoordinator(DataUpdateCoordinator):
|
||
|
|
|
||
|
|
def __init__(self, hass: HomeAssistant) -> None:
|
||
|
|
super().__init__(
|
||
|
|
hass,
|
||
|
|
LOGGER,
|
||
|
|
name=DOMAIN,
|
||
|
|
update_interval=timedelta(seconds=300)
|
||
|
|
)
|
||
|
|
self.first_setup = True
|
||
|
|
self.data_client: StateGridDataClient = hass.data[DOMAIN]
|
||
|
|
|
||
|
|
async def _async_update_data(self):
|
||
|
|
await self.data_client.refresh_data(setup=self.first_setup)
|
||
|
|
self.first_setup = False
|
||
|
|
return self.data_client.get_door_account()
|