1 """The Read Your Meter Pro integration."""
3 from __future__
import annotations
7 from pyrympro
import CannotConnectError, RymPro, UnauthorizedError
15 from .const
import DOMAIN
16 from .coordinator
import RymProDataUpdateCoordinator
18 PLATFORMS: list[Platform] = [Platform.SENSOR]
19 _LOGGER = logging.getLogger(__name__)
23 """Set up Read Your Meter Pro from a config entry."""
26 rympro.set_token(data[CONF_TOKEN])
28 await rympro.account_info()
29 except CannotConnectError
as error:
30 raise ConfigEntryNotReady
from error
31 except UnauthorizedError:
33 token = await rympro.login(data[CONF_EMAIL], data[CONF_PASSWORD],
"ha")
34 except UnauthorizedError
as error:
35 raise ConfigEntryAuthFailed
from error
36 hass.config_entries.async_update_entry(
38 data={**data, CONF_TOKEN: token},
42 await coordinator.async_config_entry_first_refresh()
44 hass.data.setdefault(DOMAIN, {})
45 hass.data[DOMAIN][entry.entry_id] = coordinator
47 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
53 """Unload a config entry."""
54 if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
55 hass.data[DOMAIN].pop(entry.entry_id)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)