diff --git a/homeassistant/components/iqvia/__init__.py b/homeassistant/components/iqvia/__init__.py index 0a782669846..8d556251e4e 100644 --- a/homeassistant/components/iqvia/__init__.py +++ b/homeassistant/components/iqvia/__init__.py @@ -24,7 +24,6 @@ from homeassistant.helpers.update_coordinator import ( from .const import ( CONF_ZIP_CODE, - DATA_COORDINATOR, DOMAIN, LOGGER, TYPE_ALLERGY_FORECAST, @@ -45,7 +44,7 @@ PLATFORMS = ["sensor"] async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up IQVIA as config entry.""" hass.data.setdefault(DOMAIN, {}) - coordinators = {} + hass.data[DOMAIN][entry.entry_id] = {} if not entry.unique_id: # If the config entry doesn't already have a unique ID, set one: @@ -67,7 +66,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return cast(Dict[str, Any], data) + coordinators = {} init_data_update_tasks = [] + for sensor_type, api_coro in ( (TYPE_ALLERGY_FORECAST, client.allergens.extended), (TYPE_ALLERGY_INDEX, client.allergens.current), @@ -93,7 +94,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: # API calls fail: raise ConfigEntryNotReady() - hass.data[DOMAIN].setdefault(DATA_COORDINATOR, {})[entry.entry_id] = coordinators + hass.data[DOMAIN][entry.entry_id] = coordinators hass.config_entries.async_setup_platforms(entry, PLATFORMS) return True @@ -103,7 +104,8 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Unload an OpenUV config entry.""" unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) if unload_ok: - hass.data[DOMAIN][DATA_COORDINATOR].pop(entry.entry_id) + hass.data[DOMAIN].pop(entry.entry_id) + return unload_ok @@ -139,7 +141,7 @@ class IQVIAEntity(CoordinatorEntity): if self.entity_description.key == TYPE_ALLERGY_FORECAST: self.async_on_remove( - self.hass.data[DOMAIN][DATA_COORDINATOR][self._entry.entry_id][ + self.hass.data[DOMAIN][self._entry.entry_id][ TYPE_ALLERGY_OUTLOOK ].async_add_listener(self._handle_coordinator_update) ) diff --git a/homeassistant/components/iqvia/const.py b/homeassistant/components/iqvia/const.py index cbcda26982e..3ed961f2e74 100644 --- a/homeassistant/components/iqvia/const.py +++ b/homeassistant/components/iqvia/const.py @@ -7,8 +7,6 @@ DOMAIN = "iqvia" CONF_ZIP_CODE = "zip_code" -DATA_COORDINATOR = "coordinator" - TYPE_ALLERGY_FORECAST = "allergy_average_forecasted" TYPE_ALLERGY_INDEX = "allergy_index" TYPE_ALLERGY_OUTLOOK = "allergy_outlook" diff --git a/homeassistant/components/iqvia/sensor.py b/homeassistant/components/iqvia/sensor.py index 187816f5f9f..d4c01c6fb67 100644 --- a/homeassistant/components/iqvia/sensor.py +++ b/homeassistant/components/iqvia/sensor.py @@ -18,7 +18,6 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import IQVIAEntity from .const import ( - DATA_COORDINATOR, DOMAIN, TYPE_ALLERGY_FORECAST, TYPE_ALLERGY_INDEX, @@ -133,7 +132,7 @@ async def async_setup_entry( """Set up IQVIA sensors based on a config entry.""" sensors: list[ForecastSensor | IndexSensor] = [ ForecastSensor( - hass.data[DOMAIN][DATA_COORDINATOR][entry.entry_id][ + hass.data[DOMAIN][entry.entry_id][ API_CATEGORY_MAPPING.get(description.key, description.key) ], entry, @@ -144,7 +143,7 @@ async def async_setup_entry( sensors.extend( [ IndexSensor( - hass.data[DOMAIN][DATA_COORDINATOR][entry.entry_id][ + hass.data[DOMAIN][entry.entry_id][ API_CATEGORY_MAPPING.get(description.key, description.key) ], entry, @@ -206,9 +205,9 @@ class ForecastSensor(IQVIAEntity, SensorEntity): ) if self.entity_description.key == TYPE_ALLERGY_FORECAST: - outlook_coordinator = self.hass.data[DOMAIN][DATA_COORDINATOR][ - self._entry.entry_id - ][TYPE_ALLERGY_OUTLOOK] + outlook_coordinator = self.hass.data[DOMAIN][self._entry.entry_id][ + TYPE_ALLERGY_OUTLOOK + ] if not outlook_coordinator.last_update_success: return