1 """IoTaWatt DataUpdateCoordinator."""
3 from __future__
import annotations
5 from datetime
import datetime, timedelta
8 from iotawattpy.iotawatt
import Iotawatt
17 from .const
import CONNECTION_ERRORS
19 _LOGGER = logging.getLogger(__name__)
22 REQUEST_REFRESH_DEFAULT_COOLDOWN = 5
26 """Class to manage fetching update data from the IoTaWatt Energy Device."""
28 api: Iotawatt |
None =
None
30 def __init__(self, hass: HomeAssistant, entry: ConfigEntry) ->
None:
31 """Initialize IotaWattUpdater object."""
41 cooldown=REQUEST_REFRESH_DEFAULT_COOLDOWN,
46 self.
_last_run_last_run: datetime |
None =
None
49 """Notify coordinator of a sensor last update time."""
57 """Fetch sensors from IoTaWatt device."""
58 if self.
apiapi
is None:
60 self.
entryentry.title,
61 self.
entryentry.data[CONF_HOST],
62 httpx_client.get_async_client(self.
hasshass),
63 self.
entryentry.data.get(CONF_USERNAME),
64 self.
entryentry.data.get(CONF_PASSWORD),
65 integratedInterval=
"d",
66 includeNonTotalSensors=
False,
69 is_authenticated = await api.connect()
70 except CONNECTION_ERRORS
as err:
73 if not is_authenticated:
80 return self.
apiapi.getSensors()
def _async_update_data(self)
None update_last_run(self, datetime last_run)
None __init__(self, HomeAssistant hass, ConfigEntry entry)
IssData update(pyiss.ISS iss)