1 """The rova component."""
3 from __future__
import annotations
5 from requests.exceptions
import ConnectTimeout, HTTPError
6 from rova.rova
import Rova
14 from .const
import CONF_HOUSE_NUMBER, CONF_HOUSE_NUMBER_SUFFIX, CONF_ZIP_CODE, DOMAIN
15 from .coordinator
import RovaCoordinator
17 PLATFORMS: list[Platform] = [Platform.SENSOR]
21 """Set up ROVA from a config entry."""
24 entry.data[CONF_ZIP_CODE],
25 entry.data[CONF_HOUSE_NUMBER],
26 entry.data[CONF_HOUSE_NUMBER_SUFFIX],
30 rova_area = await hass.async_add_executor_job(api.is_rova_area)
31 except (ConnectTimeout, HTTPError)
as ex:
32 raise ConfigEntryNotReady
from ex
38 f
"no_rova_area_{entry.data[CONF_ZIP_CODE]}",
41 severity=IssueSeverity.ERROR,
42 translation_key=
"no_rova_area",
43 translation_placeholders={
44 CONF_ZIP_CODE: entry.data[CONF_ZIP_CODE],
51 await coordinator.async_config_entry_first_refresh()
53 hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
54 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
59 """Unload ROVA config entry."""
61 if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
62 hass.data[DOMAIN].pop(entry.entry_id)
None async_create_issue(HomeAssistant hass, str entry_id)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)