1 """The Read Your Meter Pro integration."""
3 from __future__
import annotations
5 from datetime
import timedelta
8 from pyrympro
import CannotConnectError, OperationError, RymPro, UnauthorizedError
13 from .const
import DOMAIN
15 SCAN_INTERVAL = 60 * 60
17 _LOGGER = logging.getLogger(__name__)
21 """Class to manage fetching RYM Pro data."""
23 def __init__(self, hass: HomeAssistant, rympro: RymPro) ->
None:
24 """Initialize global RymPro data updater."""
26 interval =
timedelta(seconds=SCAN_INTERVAL)
31 update_interval=interval,
35 """Fetch data from Rym Pro."""
37 meters = await self.
rymprorympro.last_read()
38 for meter_id, meter
in meters.items():
39 meter[
"consumption_forecast"] = await self.
rymprorympro.consumption_forecast(
42 except UnauthorizedError
as error:
44 await self.
hasshass.config_entries.async_reload(self.
config_entryconfig_entry.entry_id)
46 except (CannotConnectError, OperationError)
as error:
None __init__(self, HomeAssistant hass, RymPro rympro)
dict[int, dict] _async_update_data(self)