From f92fb0f4921a93fe14d0ce1775b317688b3c9f0d Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Mon, 6 May 2024 19:12:45 +0200 Subject: [PATCH] Remove deprecated WAQI state attributes (#116595) --- homeassistant/components/waqi/sensor.py | 48 +++---------------- .../waqi/snapshots/test_sensor.ambr | 10 ---- 2 files changed, 6 insertions(+), 52 deletions(-) diff --git a/homeassistant/components/waqi/sensor.py b/homeassistant/components/waqi/sensor.py index ce967a9b538..4c921c68336 100644 --- a/homeassistant/components/waqi/sensor.py +++ b/homeassistant/components/waqi/sensor.py @@ -2,10 +2,9 @@ from __future__ import annotations -from collections.abc import Callable, Mapping +from collections.abc import Callable from dataclasses import dataclass import logging -from typing import Any from aiowaqi import WAQIAirQuality from aiowaqi.models import Pollutant @@ -17,13 +16,7 @@ from homeassistant.components.sensor import ( SensorStateClass, ) from homeassistant.config_entries import ConfigEntry -from homeassistant.const import ( - ATTR_TEMPERATURE, - ATTR_TIME, - PERCENTAGE, - UnitOfPressure, - UnitOfTemperature, -) +from homeassistant.const import PERCENTAGE, UnitOfPressure, UnitOfTemperature from homeassistant.core import HomeAssistant from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -49,7 +42,7 @@ ATTR_SULFUR_DIOXIDE = "sulfur_dioxide" class WAQISensorEntityDescription(SensorEntityDescription): """Describes WAQI sensor entity.""" - available_fn: Callable[[WAQIAirQuality], bool] + available_fn: Callable[[WAQIAirQuality], bool] = lambda _: True value_fn: Callable[[WAQIAirQuality], StateType] @@ -59,7 +52,6 @@ SENSORS: list[WAQISensorEntityDescription] = [ device_class=SensorDeviceClass.AQI, state_class=SensorStateClass.MEASUREMENT, value_fn=lambda aq: aq.air_quality_index, - available_fn=lambda _: True, ), WAQISensorEntityDescription( key="humidity", @@ -141,7 +133,6 @@ SENSORS: list[WAQISensorEntityDescription] = [ device_class=SensorDeviceClass.ENUM, options=[pollutant.value for pollutant in Pollutant], value_fn=lambda aq: aq.dominant_pollutant, - available_fn=lambda _: True, ), ] @@ -152,11 +143,9 @@ async def async_setup_entry( """Set up the WAQI sensor.""" coordinator: WAQIDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] async_add_entities( - [ - WaqiSensor(coordinator, sensor) - for sensor in SENSORS - if sensor.available_fn(coordinator.data) - ] + WaqiSensor(coordinator, sensor) + for sensor in SENSORS + if sensor.available_fn(coordinator.data) ) @@ -188,28 +177,3 @@ class WaqiSensor(CoordinatorEntity[WAQIDataUpdateCoordinator], SensorEntity): def native_value(self) -> StateType: """Return the state of the device.""" return self.entity_description.value_fn(self.coordinator.data) - - @property - def extra_state_attributes(self) -> Mapping[str, Any] | None: - """Return old state attributes if the entity is AQI entity.""" - # These are deprecated and will be removed in 2024.5 - if self.entity_description.key != "air_quality": - return None - attrs: dict[str, Any] = {} - attrs[ATTR_TIME] = self.coordinator.data.measured_at - attrs[ATTR_DOMINENTPOL] = self.coordinator.data.dominant_pollutant - - iaqi = self.coordinator.data.extended_air_quality - - attribute = { - ATTR_PM2_5: iaqi.pm25, - ATTR_PM10: iaqi.pm10, - ATTR_HUMIDITY: iaqi.humidity, - ATTR_PRESSURE: iaqi.pressure, - ATTR_TEMPERATURE: iaqi.temperature, - ATTR_OZONE: iaqi.ozone, - ATTR_NITROGEN_DIOXIDE: iaqi.nitrogen_dioxide, - ATTR_SULFUR_DIOXIDE: iaqi.sulfur_dioxide, - } - res_attributes = {k: v for k, v in attribute.items() if v is not None} - return {**attrs, **res_attributes} diff --git a/tests/components/waqi/snapshots/test_sensor.ambr b/tests/components/waqi/snapshots/test_sensor.ambr index f476514a6c7..3d00f1cff26 100644 --- a/tests/components/waqi/snapshots/test_sensor.ambr +++ b/tests/components/waqi/snapshots/test_sensor.ambr @@ -4,18 +4,8 @@ 'attributes': ReadOnlyDict({ 'attribution': 'RIVM - Rijksinstituut voor Volksgezondheid en Milieum, Landelijk Meetnet Luchtkwaliteit and World Air Quality Index Project', 'device_class': 'aqi', - 'dominentpol': , 'friendly_name': 'de Jongweg, Utrecht Air quality index', - 'humidity': 80, - 'nitrogen_dioxide': 2.3, - 'ozone': 29.4, - 'pm_10': 12, - 'pm_2_5': 17, - 'pressure': 1008.8, 'state_class': , - 'sulfur_dioxide': 2.3, - 'temperature': 16, - 'time': datetime.datetime(2023, 8, 7, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), }), 'context': , 'entity_id': 'sensor.de_jongweg_utrecht_air_quality_index',