1 """The Nobø Ecohub integration."""
3 from __future__
import annotations
5 from pynobo
import nobo
12 from .const
import CONF_AUTO_DISCOVERED, CONF_SERIAL, DOMAIN
14 PLATFORMS = [Platform.CLIMATE, Platform.SELECT, Platform.SENSOR]
18 """Set up Nobø Ecohub from a config entry."""
20 serial = entry.data[CONF_SERIAL]
21 discover = entry.data[CONF_AUTO_DISCOVERED]
22 ip_address =
None if discover
else entry.data[CONF_IP_ADDRESS]
28 timezone=dt_util.get_default_time_zone(),
32 hass.data.setdefault(DOMAIN, {})
34 async
def _async_close(event):
35 """Close the Nobø Ecohub socket connection when HA stops."""
38 entry.async_on_unload(
39 hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, _async_close)
41 hass.data[DOMAIN][entry.entry_id] = hub
43 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
45 entry.async_on_unload(entry.add_update_listener(options_update_listener))
53 """Unload a config entry."""
55 hub: nobo = hass.data[DOMAIN][entry.entry_id]
56 if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
58 hass.data[DOMAIN].pop(entry.entry_id)
64 hass: HomeAssistant, config_entry: ConfigEntry
66 """Handle options update."""
67 await hass.config_entries.async_reload(config_entry.entry_id)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
None options_update_listener(HomeAssistant hass, ConfigEntry config_entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)