diff --git a/homeassistant/components/meater/__init__.py b/homeassistant/components/meater/__init__.py index 3d4f45206b6..0a9fa77f902 100644 --- a/homeassistant/components/meater/__init__.py +++ b/homeassistant/components/meater/__init__.py @@ -1,33 +1,28 @@ """The Meater Temperature Probe integration.""" -from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant from .const import DOMAIN -from .coordinator import MeaterCoordinator +from .coordinator import MeaterConfigEntry, MeaterCoordinator PLATFORMS = [Platform.SENSOR] -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_setup_entry(hass: HomeAssistant, entry: MeaterConfigEntry) -> bool: """Set up Meater Temperature Probe from a config entry.""" coordinator = MeaterCoordinator(hass, entry) await coordinator.async_config_entry_first_refresh() - hass.data.setdefault(DOMAIN, {}) - hass.data[DOMAIN].setdefault("known_probes", set()) + hass.data.setdefault(DOMAIN, {}).setdefault("known_probes", set()) - hass.data[DOMAIN][entry.entry_id] = coordinator + entry.runtime_data = coordinator await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) return True -async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_unload_entry(hass: HomeAssistant, entry: MeaterConfigEntry) -> bool: """Unload a config entry.""" - if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): - hass.data[DOMAIN].pop(entry.entry_id) - - return unload_ok + return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) diff --git a/homeassistant/components/meater/coordinator.py b/homeassistant/components/meater/coordinator.py index 7fb0c69d4eb..042a3c87b0c 100644 --- a/homeassistant/components/meater/coordinator.py +++ b/homeassistant/components/meater/coordinator.py @@ -21,16 +21,18 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda _LOGGER = logging.getLogger(__name__) +type MeaterConfigEntry = ConfigEntry[MeaterCoordinator] + class MeaterCoordinator(DataUpdateCoordinator[dict[str, MeaterProbe]]): """Meater Coordinator.""" - config_entry: ConfigEntry + config_entry: MeaterConfigEntry def __init__( self, hass: HomeAssistant, - entry: ConfigEntry, + entry: MeaterConfigEntry, ) -> None: """Initialize the Meater Coordinator.""" super().__init__( diff --git a/homeassistant/components/meater/sensor.py b/homeassistant/components/meater/sensor.py index cf1c72de85e..f7a746c923f 100644 --- a/homeassistant/components/meater/sensor.py +++ b/homeassistant/components/meater/sensor.py @@ -14,7 +14,6 @@ from homeassistant.components.sensor import ( SensorEntityDescription, SensorStateClass, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import UnitOfTemperature from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.device_registry import DeviceInfo @@ -24,6 +23,7 @@ from homeassistant.util import dt as dt_util from . import MeaterCoordinator from .const import DOMAIN +from .coordinator import MeaterConfigEntry @dataclass(frozen=True, kw_only=True) @@ -135,11 +135,11 @@ SENSOR_TYPES = ( async def async_setup_entry( hass: HomeAssistant, - entry: ConfigEntry, + entry: MeaterConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up the entry.""" - coordinator: MeaterCoordinator = hass.data[DOMAIN][entry.entry_id] + coordinator = entry.runtime_data @callback def async_update_data():