Add device class CO2 to various integrations (#47676)
* Add device class CO2 to Fibaro * Add device class CO2 to Awair * Add device class CO2 to Tasmota * Add device class CO2 to Netatmo * Add device class CO2 to Ambient Station * Update Tasmota tests * Remove icon
This commit is contained in:
parent
5bc0e9a50f
commit
461e766a93
6 changed files with 20 additions and 9 deletions
|
@ -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),
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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],
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue