diff --git a/homeassistant/components/airthings_ble/__init__.py b/homeassistant/components/airthings_ble/__init__.py index 39617a8a019..a1053f6856e 100644 --- a/homeassistant/components/airthings_ble/__init__.py +++ b/homeassistant/components/airthings_ble/__init__.py @@ -22,8 +22,13 @@ PLATFORMS: list[Platform] = [Platform.SENSOR] _LOGGER = logging.getLogger(__name__) +AirthingsBLEDataUpdateCoordinator = DataUpdateCoordinator[AirthingsDevice] +AirthingsBLEConfigEntry = ConfigEntry[AirthingsBLEDataUpdateCoordinator] -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + +async def async_setup_entry( + hass: HomeAssistant, entry: AirthingsBLEConfigEntry +) -> bool: """Set up Airthings BLE device from a config entry.""" hass.data.setdefault(DOMAIN, {}) address = entry.unique_id @@ -51,7 +56,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return data - coordinator = DataUpdateCoordinator( + coordinator: AirthingsBLEDataUpdateCoordinator = DataUpdateCoordinator( hass, _LOGGER, name=DOMAIN, @@ -61,16 +66,15 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: await coordinator.async_config_entry_first_refresh() - 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: AirthingsBLEConfigEntry +) -> 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/airthings_ble/sensor.py b/homeassistant/components/airthings_ble/sensor.py index 3b012ed7316..2883c2b351e 100644 --- a/homeassistant/components/airthings_ble/sensor.py +++ b/homeassistant/components/airthings_ble/sensor.py @@ -13,7 +13,6 @@ from homeassistant.components.sensor import ( SensorEntityDescription, SensorStateClass, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION, @@ -36,12 +35,10 @@ from homeassistant.helpers.entity_registry import ( async_get as entity_async_get, ) from homeassistant.helpers.typing import StateType -from homeassistant.helpers.update_coordinator import ( - CoordinatorEntity, - DataUpdateCoordinator, -) +from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.util.unit_system import METRIC_SYSTEM +from . import AirthingsBLEConfigEntry, AirthingsBLEDataUpdateCoordinator from .const import DOMAIN, VOLUME_BECQUEREL, VOLUME_PICOCURIE _LOGGER = logging.getLogger(__name__) @@ -152,15 +149,13 @@ def async_migrate(hass: HomeAssistant, address: str, sensor_name: str) -> None: async def async_setup_entry( hass: HomeAssistant, - entry: ConfigEntry, + entry: AirthingsBLEConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up the Airthings BLE sensors.""" is_metric = hass.config.units is METRIC_SYSTEM - coordinator: DataUpdateCoordinator[AirthingsDevice] = hass.data[DOMAIN][ - entry.entry_id - ] + coordinator = entry.runtime_data # we need to change some units sensors_mapping = SENSORS_MAPPING_TEMPLATE.copy() @@ -193,7 +188,7 @@ async def async_setup_entry( class AirthingsSensor( - CoordinatorEntity[DataUpdateCoordinator[AirthingsDevice]], SensorEntity + CoordinatorEntity[AirthingsBLEDataUpdateCoordinator], SensorEntity ): """Airthings BLE sensors for the device.""" @@ -201,7 +196,7 @@ class AirthingsSensor( def __init__( self, - coordinator: DataUpdateCoordinator[AirthingsDevice], + coordinator: AirthingsBLEDataUpdateCoordinator, airthings_device: AirthingsDevice, entity_description: SensorEntityDescription, ) -> None: