diff --git a/homeassistant/components/nam/sensor.py b/homeassistant/components/nam/sensor.py index ce3fdbf16a8..7cb5940b050 100644 --- a/homeassistant/components/nam/sensor.py +++ b/homeassistant/components/nam/sensor.py @@ -150,7 +150,9 @@ SENSORS: tuple[SensorEntityDescription, ...] = ( key=ATTR_PMSX003_CAQI_LEVEL, name="PMSx003 CAQI level", icon="mdi:air-filter", - device_class="nam__caqi_level", + device_class=SensorDeviceClass.ENUM, + options=["very low", "low", "medium", "high", "very high"], + translation_key="caqi_level", ), SensorEntityDescription( key=ATTR_PMSX003_P0, @@ -182,7 +184,9 @@ SENSORS: tuple[SensorEntityDescription, ...] = ( key=ATTR_SDS011_CAQI_LEVEL, name="SDS011 CAQI level", icon="mdi:air-filter", - device_class="nam__caqi_level", + device_class=SensorDeviceClass.ENUM, + options=["very low", "low", "medium", "high", "very high"], + translation_key="caqi_level", ), SensorEntityDescription( key=ATTR_SDS011_P1, @@ -221,7 +225,9 @@ SENSORS: tuple[SensorEntityDescription, ...] = ( key=ATTR_SPS30_CAQI_LEVEL, name="SPS30 CAQI level", icon="mdi:air-filter", - device_class="nam__caqi_level", + device_class=SensorDeviceClass.ENUM, + options=["very low", "low", "medium", "high", "very high"], + translation_key="caqi_level", ), SensorEntityDescription( key=ATTR_SPS30_P0, diff --git a/homeassistant/components/nam/strings.json b/homeassistant/components/nam/strings.json index dab6eefb095..a37bcc2983e 100644 --- a/homeassistant/components/nam/strings.json +++ b/homeassistant/components/nam/strings.json @@ -37,5 +37,18 @@ "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reauth_unsuccessful": "Re-authentication was unsuccessful, please remove the integration and set it up again." } + }, + "entity": { + "sensor": { + "caqi_level": { + "state": { + "very low": "Very low", + "low": "Low", + "medium": "Medium", + "high": "High", + "very high": "Very high" + } + } + } } } diff --git a/homeassistant/components/nam/strings.sensor.json b/homeassistant/components/nam/strings.sensor.json deleted file mode 100644 index ee53079d7d0..00000000000 --- a/homeassistant/components/nam/strings.sensor.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "state": { - "nam__caqi_level": { - "very low": "Very low", - "low": "Low", - "medium": "Medium", - "high": "High", - "very high": "Very high" - } - } -} diff --git a/homeassistant/components/nam/translations/en.json b/homeassistant/components/nam/translations/en.json index 4378f8d6c51..4fd31471742 100644 --- a/homeassistant/components/nam/translations/en.json +++ b/homeassistant/components/nam/translations/en.json @@ -37,5 +37,18 @@ "description": "Set up Nettigo Air Monitor integration." } } + }, + "entity": { + "sensor": { + "caqi_level": { + "state": { + "high": "High", + "low": "Low", + "medium": "Medium", + "very high": "Very high", + "very low": "Very low" + } + } + } } } \ No newline at end of file diff --git a/tests/components/nam/test_sensor.py b/tests/components/nam/test_sensor.py index dc9e9a76d76..271f8a7cb85 100644 --- a/tests/components/nam/test_sensor.py +++ b/tests/components/nam/test_sensor.py @@ -6,6 +6,7 @@ from nettigo_air_monitor import ApiError from homeassistant.components.nam.const import DOMAIN from homeassistant.components.sensor import ( + ATTR_OPTIONS, ATTR_STATE_CLASS, DOMAIN as SENSOR_DOMAIN, SensorDeviceClass, @@ -231,12 +232,20 @@ async def test_sensor(hass): state = hass.states.get("sensor.nettigo_air_monitor_pmsx003_caqi_level") assert state assert state.state == "very low" - assert state.attributes.get(ATTR_DEVICE_CLASS) == "nam__caqi_level" + assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENUM + assert state.attributes.get(ATTR_OPTIONS) == [ + "very low", + "low", + "medium", + "high", + "very high", + ] assert state.attributes.get(ATTR_ICON) == "mdi:air-filter" entry = registry.async_get("sensor.nettigo_air_monitor_pmsx003_caqi_level") assert entry assert entry.unique_id == "aa:bb:cc:dd:ee:ff-pms_caqi_level" + assert entry.translation_key == "caqi_level" state = hass.states.get("sensor.nettigo_air_monitor_pmsx003_caqi") assert state @@ -323,12 +332,20 @@ async def test_sensor(hass): state = hass.states.get("sensor.nettigo_air_monitor_sds011_caqi_level") assert state assert state.state == "very low" - assert state.attributes.get(ATTR_DEVICE_CLASS) == "nam__caqi_level" + assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENUM + assert state.attributes.get(ATTR_OPTIONS) == [ + "very low", + "low", + "medium", + "high", + "very high", + ] assert state.attributes.get(ATTR_ICON) == "mdi:air-filter" entry = registry.async_get("sensor.nettigo_air_monitor_sds011_caqi_level") assert entry assert entry.unique_id == "aa:bb:cc:dd:ee:ff-sds011_caqi_level" + assert entry.translation_key == "caqi_level" state = hass.states.get("sensor.nettigo_air_monitor_sds011_particulate_matter_2_5") assert state @@ -358,12 +375,20 @@ async def test_sensor(hass): state = hass.states.get("sensor.nettigo_air_monitor_sps30_caqi_level") assert state assert state.state == "medium" - assert state.attributes.get(ATTR_DEVICE_CLASS) == "nam__caqi_level" + assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENUM + assert state.attributes.get(ATTR_OPTIONS) == [ + "very low", + "low", + "medium", + "high", + "very high", + ] assert state.attributes.get(ATTR_ICON) == "mdi:air-filter" entry = registry.async_get("sensor.nettigo_air_monitor_sps30_caqi_level") assert entry assert entry.unique_id == "aa:bb:cc:dd:ee:ff-sps30_caqi_level" + assert entry.translation_key == "caqi_level" state = hass.states.get("sensor.nettigo_air_monitor_sps30_particulate_matter_1_0") assert state