"""XT211 HAN integration for Home Assistant.""" from __future__ import annotations import logging from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT, Platform from homeassistant.core import HomeAssistant from .const import DEFAULT_NAME, DOMAIN from .coordinator import XT211Coordinator _LOGGER = logging.getLogger(__name__) PLATFORMS = [Platform.SENSOR, Platform.BINARY_SENSOR] async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: hass.data.setdefault(DOMAIN, {}) coordinator = XT211Coordinator( hass, host=entry.data[CONF_HOST], port=entry.data[CONF_PORT], name=entry.data.get(CONF_NAME, DEFAULT_NAME), ) hass.data[DOMAIN][entry.entry_id] = coordinator await coordinator.async_setup() await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) _LOGGER.info( "XT211 HAN integration started for %s:%d", entry.data[CONF_HOST], entry.data[CONF_PORT], ) return True async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: coordinator: XT211Coordinator | None = hass.data[DOMAIN].get(entry.entry_id) if coordinator: await coordinator.async_shutdown() unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) if unload_ok: hass.data[DOMAIN].pop(entry.entry_id, None) return unload_ok