diff --git a/homeassistant/components/ambient_station/__init__.py b/homeassistant/components/ambient_station/__init__.py index b4ac6992459..bee5ab33db7 100644 --- a/homeassistant/components/ambient_station/__init__.py +++ b/homeassistant/components/ambient_station/__init__.py @@ -18,6 +18,7 @@ from homeassistant.const import ( CONCENTRATION_PARTS_PER_MILLION, CONF_API_KEY, DEGREE, + DEVICE_CLASS_CO2, EVENT_HOMEASSISTANT_STOP, IRRADIATION_WATTS_PER_SQUARE_METER, LIGHT_LUX, @@ -159,7 +160,7 @@ SENSOR_TYPES = { TYPE_BATT8: ("Battery 8", None, BINARY_SENSOR, "battery"), TYPE_BATT9: ("Battery 9", None, BINARY_SENSOR, "battery"), TYPE_BATTOUT: ("Battery", None, BINARY_SENSOR, "battery"), - TYPE_CO2: ("co2", CONCENTRATION_PARTS_PER_MILLION, SENSOR, None), + TYPE_CO2: ("co2", CONCENTRATION_PARTS_PER_MILLION, SENSOR, DEVICE_CLASS_CO2), TYPE_DAILYRAININ: ("Daily Rain", "in", SENSOR, None), TYPE_DEWPOINT: ("Dew Point", TEMP_FAHRENHEIT, SENSOR, "temperature"), TYPE_EVENTRAININ: ("Event Rain", "in", SENSOR, None), diff --git a/homeassistant/components/awair/const.py b/homeassistant/components/awair/const.py index 44490b8401f..2853ef9dd6c 100644 --- a/homeassistant/components/awair/const.py +++ b/homeassistant/components/awair/const.py @@ -12,6 +12,7 @@ from homeassistant.const import ( CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION, + DEVICE_CLASS_CO2, DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_TEMPERATURE, @@ -104,7 +105,7 @@ SENSOR_TYPES = { ATTR_UNIQUE_ID: "PM10", # matches legacy format }, API_CO2: { - ATTR_DEVICE_CLASS: None, + ATTR_DEVICE_CLASS: DEVICE_CLASS_CO2, ATTR_ICON: "mdi:cloud", ATTR_UNIT: CONCENTRATION_PARTS_PER_MILLION, ATTR_LABEL: "Carbon dioxide", diff --git a/homeassistant/components/fibaro/sensor.py b/homeassistant/components/fibaro/sensor.py index 4e9af8803f2..40a843bc7bb 100644 --- a/homeassistant/components/fibaro/sensor.py +++ b/homeassistant/components/fibaro/sensor.py @@ -2,6 +2,7 @@ from homeassistant.components.sensor import DOMAIN from homeassistant.const import ( CONCENTRATION_PARTS_PER_MILLION, + DEVICE_CLASS_CO2, DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_TEMPERATURE, @@ -27,7 +28,13 @@ SENSOR_TYPES = { "mdi:fire", None, ], - "CO2": ["CO2", CONCENTRATION_PARTS_PER_MILLION, "mdi:cloud", None], + "CO2": [ + "CO2", + CONCENTRATION_PARTS_PER_MILLION, + None, + None, + DEVICE_CLASS_CO2, + ], "com.fibaro.humiditySensor": [ "Humidity", PERCENTAGE, diff --git a/homeassistant/components/netatmo/sensor.py b/homeassistant/components/netatmo/sensor.py index 9176b670bea..efda94d6399 100644 --- a/homeassistant/components/netatmo/sensor.py +++ b/homeassistant/components/netatmo/sensor.py @@ -8,6 +8,7 @@ from homeassistant.const import ( CONCENTRATION_PARTS_PER_MILLION, DEGREE, DEVICE_CLASS_BATTERY, + DEVICE_CLASS_CO2, DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_PRESSURE, DEVICE_CLASS_SIGNAL_STRENGTH, @@ -52,7 +53,7 @@ SUPPORTED_PUBLIC_SENSOR_TYPES = [ SENSOR_TYPES = { "temperature": ["Temperature", TEMP_CELSIUS, None, DEVICE_CLASS_TEMPERATURE, True], "temp_trend": ["Temperature trend", None, "mdi:trending-up", None, False], - "co2": ["CO2", CONCENTRATION_PARTS_PER_MILLION, "mdi:molecule-co2", None, True], + "co2": ["CO2", CONCENTRATION_PARTS_PER_MILLION, None, DEVICE_CLASS_CO2, True], "pressure": ["Pressure", PRESSURE_MBAR, None, DEVICE_CLASS_PRESSURE, True], "pressure_trend": ["Pressure trend", None, "mdi:trending-up", None, False], "noise": ["Noise", "dB", "mdi:volume-high", None, True], diff --git a/homeassistant/components/tasmota/sensor.py b/homeassistant/components/tasmota/sensor.py index 39577e9e558..0387e835522 100644 --- a/homeassistant/components/tasmota/sensor.py +++ b/homeassistant/components/tasmota/sensor.py @@ -9,6 +9,7 @@ from homeassistant.const import ( CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION, DEVICE_CLASS_BATTERY, + DEVICE_CLASS_CO2, DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_POWER, @@ -52,7 +53,7 @@ SENSOR_DEVICE_CLASS_ICON_MAP = { hc.SENSOR_APPARENT_POWERUSAGE: {DEVICE_CLASS: DEVICE_CLASS_POWER}, hc.SENSOR_BATTERY: {DEVICE_CLASS: DEVICE_CLASS_BATTERY}, hc.SENSOR_CCT: {ICON: "mdi:temperature-kelvin"}, - hc.SENSOR_CO2: {ICON: "mdi:molecule-co2"}, + hc.SENSOR_CO2: {DEVICE_CLASS: DEVICE_CLASS_CO2}, hc.SENSOR_COLOR_BLUE: {ICON: "mdi:palette"}, hc.SENSOR_COLOR_GREEN: {ICON: "mdi:palette"}, hc.SENSOR_COLOR_RED: {ICON: "mdi:palette"}, diff --git a/tests/components/tasmota/test_sensor.py b/tests/components/tasmota/test_sensor.py index c08b1b531de..2b7c388ca2f 100644 --- a/tests/components/tasmota/test_sensor.py +++ b/tests/components/tasmota/test_sensor.py @@ -446,9 +446,9 @@ async def test_attributes(hass, mqtt_mock, setup_tasmota): assert state.attributes.get("unit_of_measurement") == "°C" state = hass.states.get("sensor.tasmota_beer_CarbonDioxide") - assert state.attributes.get("device_class") is None + assert state.attributes.get("device_class") == "carbon_dioxide" assert state.attributes.get("friendly_name") == "Tasmota Beer CarbonDioxide" - assert state.attributes.get("icon") == "mdi:molecule-co2" + assert state.attributes.get("icon") is None assert state.attributes.get("unit_of_measurement") == "ppm" @@ -516,9 +516,9 @@ async def test_indexed_sensor_attributes(hass, mqtt_mock, setup_tasmota): assert state.attributes.get("unit_of_measurement") == "°C" state = hass.states.get("sensor.tasmota_dummy2_carbondioxide_1") - assert state.attributes.get("device_class") is None + assert state.attributes.get("device_class") == "carbon_dioxide" assert state.attributes.get("friendly_name") == "Tasmota Dummy2 CarbonDioxide 1" - assert state.attributes.get("icon") == "mdi:molecule-co2" + assert state.attributes.get("icon") is None assert state.attributes.get("unit_of_measurement") == "ppm"