1 """The Omnilogic integration."""
5 from omnilogic
import LoginException, OmniLogic, OmniLogicException
16 DEFAULT_SCAN_INTERVAL,
20 from .coordinator
import OmniLogicUpdateCoordinator
22 _LOGGER = logging.getLogger(__name__)
24 PLATFORMS = [Platform.SENSOR, Platform.SWITCH]
28 """Set up Omnilogic from a config entry."""
31 username = conf[CONF_USERNAME]
32 password = conf[CONF_PASSWORD]
34 polling_interval = conf.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
36 session = aiohttp_client.async_get_clientsession(hass)
38 api = OmniLogic(username, password, session)
42 await api.get_telemetry_data()
43 except LoginException
as error:
44 _LOGGER.error(
"Login Failed: %s", error)
46 except OmniLogicException
as error:
47 _LOGGER.debug(
"OmniLogic API error: %s", error)
48 raise ConfigEntryNotReady
from error
55 polling_interval=polling_interval,
57 await coordinator.async_config_entry_first_refresh()
59 hass.data.setdefault(DOMAIN, {})
60 hass.data[DOMAIN][entry.entry_id] = {
61 COORDINATOR: coordinator,
65 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
71 """Unload a config entry."""
72 unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
74 hass.data[DOMAIN].pop(entry.entry_id)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)