Add device classes that were part of deprecated air quality entity (#54075)
This commit is contained in:
parent
85ff5e34cd
commit
de0460de61
7 changed files with 117 additions and 1 deletions
|
@ -12,6 +12,7 @@ import voluptuous as vol
|
|||
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import (
|
||||
DEVICE_CLASS_AQI,
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_CO,
|
||||
DEVICE_CLASS_CO2,
|
||||
|
@ -21,10 +22,18 @@ from homeassistant.const import (
|
|||
DEVICE_CLASS_HUMIDITY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
DEVICE_CLASS_MONETARY,
|
||||
DEVICE_CLASS_NITROGEN_DIOXIDE,
|
||||
DEVICE_CLASS_NITROGEN_MONOXIDE,
|
||||
DEVICE_CLASS_NITROUS_OXIDE,
|
||||
DEVICE_CLASS_OZONE,
|
||||
DEVICE_CLASS_PM1,
|
||||
DEVICE_CLASS_PM10,
|
||||
DEVICE_CLASS_PM25,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_POWER_FACTOR,
|
||||
DEVICE_CLASS_PRESSURE,
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_TIMESTAMP,
|
||||
DEVICE_CLASS_VOLTAGE,
|
||||
|
@ -51,6 +60,7 @@ ENTITY_ID_FORMAT: Final = DOMAIN + ".{}"
|
|||
|
||||
SCAN_INTERVAL: Final = timedelta(seconds=30)
|
||||
DEVICE_CLASSES: Final[list[str]] = [
|
||||
DEVICE_CLASS_AQI, # Air Quality Index
|
||||
DEVICE_CLASS_BATTERY, # % of battery that is left
|
||||
DEVICE_CLASS_CO, # ppm (parts per million) Carbon Monoxide gas concentration
|
||||
DEVICE_CLASS_CO2, # ppm (parts per million) Carbon Dioxide gas concentration
|
||||
|
@ -59,7 +69,15 @@ DEVICE_CLASSES: Final[list[str]] = [
|
|||
DEVICE_CLASS_HUMIDITY, # % of humidity in the air
|
||||
DEVICE_CLASS_ILLUMINANCE, # current light level (lx/lm)
|
||||
DEVICE_CLASS_MONETARY, # Amount of money (currency)
|
||||
DEVICE_CLASS_OZONE, # Amount of O3 (µg/m³)
|
||||
DEVICE_CLASS_NITROGEN_DIOXIDE, # Amount of NO2 (µg/m³)
|
||||
DEVICE_CLASS_NITROUS_OXIDE, # Amount of NO (µg/m³)
|
||||
DEVICE_CLASS_NITROGEN_MONOXIDE, # Amount of N2O (µg/m³)
|
||||
DEVICE_CLASS_PM1, # Particulate matter <= 0.1 μm (µg/m³)
|
||||
DEVICE_CLASS_PM10, # Particulate matter <= 10 μm (µg/m³)
|
||||
DEVICE_CLASS_PM25, # Particulate matter <= 2.5 μm (µg/m³)
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH, # signal strength (dB/dBm)
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE, # Amount of SO2 (µg/m³)
|
||||
DEVICE_CLASS_TEMPERATURE, # temperature (C/F)
|
||||
DEVICE_CLASS_TIMESTAMP, # timestamp (ISO8601)
|
||||
DEVICE_CLASS_PRESSURE, # pressure (hPa/mbar)
|
||||
|
|
|
@ -19,10 +19,18 @@ from homeassistant.const import (
|
|||
DEVICE_CLASS_GAS,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
DEVICE_CLASS_NITROGEN_DIOXIDE,
|
||||
DEVICE_CLASS_NITROGEN_MONOXIDE,
|
||||
DEVICE_CLASS_NITROUS_OXIDE,
|
||||
DEVICE_CLASS_OZONE,
|
||||
DEVICE_CLASS_PM1,
|
||||
DEVICE_CLASS_PM10,
|
||||
DEVICE_CLASS_PM25,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_POWER_FACTOR,
|
||||
DEVICE_CLASS_PRESSURE,
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_VOLTAGE,
|
||||
)
|
||||
|
@ -49,10 +57,18 @@ CONF_IS_ENERGY = "is_energy"
|
|||
CONF_IS_HUMIDITY = "is_humidity"
|
||||
CONF_IS_GAS = "is_gas"
|
||||
CONF_IS_ILLUMINANCE = "is_illuminance"
|
||||
CONF_IS_NITROGEN_DIOXIDE = "is_nitrogen_dioxide"
|
||||
CONF_IS_NITROGEN_MONOXIDE = "is_nitrogen_monoxide"
|
||||
CONF_IS_NITROUS_OXIDE = "is_nitrous_oxide"
|
||||
CONF_IS_OZONE = "is_ozone"
|
||||
CONF_IS_PM1 = "is_pm1"
|
||||
CONF_IS_PM10 = "is_pm10"
|
||||
CONF_IS_PM25 = "is_pm25"
|
||||
CONF_IS_POWER = "is_power"
|
||||
CONF_IS_POWER_FACTOR = "is_power_factor"
|
||||
CONF_IS_PRESSURE = "is_pressure"
|
||||
CONF_IS_SIGNAL_STRENGTH = "is_signal_strength"
|
||||
CONF_IS_SULPHUR_DIOXIDE = "is_sulphur_dioxide"
|
||||
CONF_IS_TEMPERATURE = "is_temperature"
|
||||
CONF_IS_VOLTAGE = "is_voltage"
|
||||
CONF_IS_VALUE = "is_value"
|
||||
|
@ -66,10 +82,18 @@ ENTITY_CONDITIONS = {
|
|||
DEVICE_CLASS_GAS: [{CONF_TYPE: CONF_IS_GAS}],
|
||||
DEVICE_CLASS_HUMIDITY: [{CONF_TYPE: CONF_IS_HUMIDITY}],
|
||||
DEVICE_CLASS_ILLUMINANCE: [{CONF_TYPE: CONF_IS_ILLUMINANCE}],
|
||||
DEVICE_CLASS_NITROGEN_DIOXIDE: [{CONF_TYPE: CONF_IS_NITROGEN_DIOXIDE}],
|
||||
DEVICE_CLASS_NITROGEN_MONOXIDE: [{CONF_TYPE: CONF_IS_NITROGEN_MONOXIDE}],
|
||||
DEVICE_CLASS_NITROUS_OXIDE: [{CONF_TYPE: CONF_IS_NITROUS_OXIDE}],
|
||||
DEVICE_CLASS_OZONE: [{CONF_TYPE: CONF_IS_OZONE}],
|
||||
DEVICE_CLASS_POWER: [{CONF_TYPE: CONF_IS_POWER}],
|
||||
DEVICE_CLASS_POWER_FACTOR: [{CONF_TYPE: CONF_IS_POWER_FACTOR}],
|
||||
DEVICE_CLASS_PM1: [{CONF_TYPE: CONF_IS_PM1}],
|
||||
DEVICE_CLASS_PM10: [{CONF_TYPE: CONF_IS_PM10}],
|
||||
DEVICE_CLASS_PM25: [{CONF_TYPE: CONF_IS_PM25}],
|
||||
DEVICE_CLASS_PRESSURE: [{CONF_TYPE: CONF_IS_PRESSURE}],
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH: [{CONF_TYPE: CONF_IS_SIGNAL_STRENGTH}],
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE: [{CONF_TYPE: CONF_IS_SULPHUR_DIOXIDE}],
|
||||
DEVICE_CLASS_TEMPERATURE: [{CONF_TYPE: CONF_IS_TEMPERATURE}],
|
||||
DEVICE_CLASS_VOLTAGE: [{CONF_TYPE: CONF_IS_VOLTAGE}],
|
||||
DEVICE_CLASS_NONE: [{CONF_TYPE: CONF_IS_VALUE}],
|
||||
|
@ -89,10 +113,18 @@ CONDITION_SCHEMA = vol.All(
|
|||
CONF_IS_GAS,
|
||||
CONF_IS_HUMIDITY,
|
||||
CONF_IS_ILLUMINANCE,
|
||||
CONF_IS_OZONE,
|
||||
CONF_IS_NITROGEN_DIOXIDE,
|
||||
CONF_IS_NITROGEN_MONOXIDE,
|
||||
CONF_IS_NITROUS_OXIDE,
|
||||
CONF_IS_POWER,
|
||||
CONF_IS_POWER_FACTOR,
|
||||
CONF_IS_PM1,
|
||||
CONF_IS_PM10,
|
||||
CONF_IS_PM25,
|
||||
CONF_IS_PRESSURE,
|
||||
CONF_IS_SIGNAL_STRENGTH,
|
||||
CONF_IS_SULPHUR_DIOXIDE,
|
||||
CONF_IS_TEMPERATURE,
|
||||
CONF_IS_VOLTAGE,
|
||||
CONF_IS_VALUE,
|
||||
|
|
|
@ -22,10 +22,18 @@ from homeassistant.const import (
|
|||
DEVICE_CLASS_GAS,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
DEVICE_CLASS_NITROGEN_DIOXIDE,
|
||||
DEVICE_CLASS_NITROGEN_MONOXIDE,
|
||||
DEVICE_CLASS_NITROUS_OXIDE,
|
||||
DEVICE_CLASS_OZONE,
|
||||
DEVICE_CLASS_PM1,
|
||||
DEVICE_CLASS_PM10,
|
||||
DEVICE_CLASS_PM25,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_POWER_FACTOR,
|
||||
DEVICE_CLASS_PRESSURE,
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_VOLTAGE,
|
||||
)
|
||||
|
@ -48,10 +56,18 @@ CONF_ENERGY = "energy"
|
|||
CONF_GAS = "gas"
|
||||
CONF_HUMIDITY = "humidity"
|
||||
CONF_ILLUMINANCE = "illuminance"
|
||||
CONF_NITROGEN_DIOXIDE = "nitrogen_dioxide"
|
||||
CONF_NITROGEN_MONOXIDE = "nitrogen_monoxide"
|
||||
CONF_NITROUS_OXIDE = "nitrous_oxide"
|
||||
CONF_OZONE = "ozone"
|
||||
CONF_PM1 = "pm1"
|
||||
CONF_PM10 = "pm10"
|
||||
CONF_PM25 = "pm25"
|
||||
CONF_POWER = "power"
|
||||
CONF_POWER_FACTOR = "power_factor"
|
||||
CONF_PRESSURE = "pressure"
|
||||
CONF_SIGNAL_STRENGTH = "signal_strength"
|
||||
CONF_SULPHUR_DIOXIDE = "sulphur_dioxide"
|
||||
CONF_TEMPERATURE = "temperature"
|
||||
CONF_VOLTAGE = "voltage"
|
||||
CONF_VALUE = "value"
|
||||
|
@ -65,10 +81,18 @@ ENTITY_TRIGGERS = {
|
|||
DEVICE_CLASS_GAS: [{CONF_TYPE: CONF_GAS}],
|
||||
DEVICE_CLASS_HUMIDITY: [{CONF_TYPE: CONF_HUMIDITY}],
|
||||
DEVICE_CLASS_ILLUMINANCE: [{CONF_TYPE: CONF_ILLUMINANCE}],
|
||||
DEVICE_CLASS_NITROGEN_DIOXIDE: [{CONF_TYPE: CONF_NITROGEN_DIOXIDE}],
|
||||
DEVICE_CLASS_NITROGEN_MONOXIDE: [{CONF_TYPE: CONF_NITROGEN_MONOXIDE}],
|
||||
DEVICE_CLASS_NITROUS_OXIDE: [{CONF_TYPE: CONF_NITROUS_OXIDE}],
|
||||
DEVICE_CLASS_OZONE: [{CONF_TYPE: CONF_OZONE}],
|
||||
DEVICE_CLASS_PM1: [{CONF_TYPE: CONF_PM1}],
|
||||
DEVICE_CLASS_PM10: [{CONF_TYPE: CONF_PM10}],
|
||||
DEVICE_CLASS_PM25: [{CONF_TYPE: CONF_PM25}],
|
||||
DEVICE_CLASS_POWER: [{CONF_TYPE: CONF_POWER}],
|
||||
DEVICE_CLASS_POWER_FACTOR: [{CONF_TYPE: CONF_POWER_FACTOR}],
|
||||
DEVICE_CLASS_PRESSURE: [{CONF_TYPE: CONF_PRESSURE}],
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH: [{CONF_TYPE: CONF_SIGNAL_STRENGTH}],
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE: [{CONF_TYPE: CONF_SULPHUR_DIOXIDE}],
|
||||
DEVICE_CLASS_TEMPERATURE: [{CONF_TYPE: CONF_TEMPERATURE}],
|
||||
DEVICE_CLASS_VOLTAGE: [{CONF_TYPE: CONF_VOLTAGE}],
|
||||
DEVICE_CLASS_NONE: [{CONF_TYPE: CONF_VALUE}],
|
||||
|
@ -89,10 +113,18 @@ TRIGGER_SCHEMA = vol.All(
|
|||
CONF_GAS,
|
||||
CONF_HUMIDITY,
|
||||
CONF_ILLUMINANCE,
|
||||
CONF_NITROGEN_DIOXIDE,
|
||||
CONF_NITROGEN_MONOXIDE,
|
||||
CONF_NITROUS_OXIDE,
|
||||
CONF_OZONE,
|
||||
CONF_PM1,
|
||||
CONF_PM10,
|
||||
CONF_PM25,
|
||||
CONF_POWER,
|
||||
CONF_POWER_FACTOR,
|
||||
CONF_PRESSURE,
|
||||
CONF_SIGNAL_STRENGTH,
|
||||
CONF_SULPHUR_DIOXIDE,
|
||||
CONF_TEMPERATURE,
|
||||
CONF_VOLTAGE,
|
||||
CONF_VALUE,
|
||||
|
|
|
@ -8,9 +8,17 @@
|
|||
"is_gas": "Current {entity_name} gas",
|
||||
"is_humidity": "Current {entity_name} humidity",
|
||||
"is_illuminance": "Current {entity_name} illuminance",
|
||||
"is_nitrogen_dioxide": "Current {entity_name} nitrogen dioxide concentration level",
|
||||
"is_nitrogen_monoxide": "Current {entity_name} nitrogen monoxide concentration level",
|
||||
"is_nitrous_oxide": "Current {entity_name} nitrous oxide concentration level",
|
||||
"is_ozone": "Current {entity_name} ozone concentration level",
|
||||
"is_pm1": "Current {entity_name} PM1 concentration level",
|
||||
"is_pm10": "Current {entity_name} PM10 concentration level",
|
||||
"is_pm25": "Current {entity_name} PM2.5 concentration level",
|
||||
"is_power": "Current {entity_name} power",
|
||||
"is_pressure": "Current {entity_name} pressure",
|
||||
"is_signal_strength": "Current {entity_name} signal strength",
|
||||
"is_sulphur_dioxide": "Current {entity_name} sulphur dioxide concentration level",
|
||||
"is_temperature": "Current {entity_name} temperature",
|
||||
"is_current": "Current {entity_name} current",
|
||||
"is_energy": "Current {entity_name} energy",
|
||||
|
@ -25,9 +33,17 @@
|
|||
"gas": "{entity_name} gas changes",
|
||||
"humidity": "{entity_name} humidity changes",
|
||||
"illuminance": "{entity_name} illuminance changes",
|
||||
"nitrogen_dioxide": "{entity_name} nitrogen dioxide concentration changes",
|
||||
"nitrogen_monoxide": "{entity_name} nitrogen monoxide concentration changes",
|
||||
"nitrous_oxide": "{entity_name} nitrous oxide concentration changes",
|
||||
"ozone": "{entity_name} ozone concentration changes",
|
||||
"pm1": "{entity_name} PM1 concentration changes",
|
||||
"pm10": "{entity_name} PM10 concentration changes",
|
||||
"pm25": "{entity_name} PM2.5 concentration changes",
|
||||
"power": "{entity_name} power changes",
|
||||
"pressure": "{entity_name} pressure changes",
|
||||
"signal_strength": "{entity_name} signal strength changes",
|
||||
"sulphur_dioxide": "{entity_name} sulphur dioxide concentration changes",
|
||||
"temperature": "{entity_name} temperature changes",
|
||||
"current": "{entity_name} current changes",
|
||||
"energy": "{entity_name} energy changes",
|
||||
|
|
|
@ -232,6 +232,7 @@ EVENT_TIME_CHANGED: Final = "time_changed"
|
|||
|
||||
|
||||
# #### DEVICE CLASSES ####
|
||||
DEVICE_CLASS_AQI: Final = "aqi"
|
||||
DEVICE_CLASS_BATTERY: Final = "battery"
|
||||
DEVICE_CLASS_CO: Final = "carbon_monoxide"
|
||||
DEVICE_CLASS_CO2: Final = "carbon_dioxide"
|
||||
|
@ -240,10 +241,18 @@ DEVICE_CLASS_ENERGY: Final = "energy"
|
|||
DEVICE_CLASS_HUMIDITY: Final = "humidity"
|
||||
DEVICE_CLASS_ILLUMINANCE: Final = "illuminance"
|
||||
DEVICE_CLASS_MONETARY: Final = "monetary"
|
||||
DEVICE_CLASS_NITROGEN_DIOXIDE = "nitrogen_dioxide"
|
||||
DEVICE_CLASS_NITROGEN_MONOXIDE = "nitrogen_monoxide"
|
||||
DEVICE_CLASS_NITROUS_OXIDE = "nitrous_oxide"
|
||||
DEVICE_CLASS_OZONE: Final = "ozone"
|
||||
DEVICE_CLASS_POWER_FACTOR: Final = "power_factor"
|
||||
DEVICE_CLASS_POWER: Final = "power"
|
||||
DEVICE_CLASS_PM25: Final = "pm25"
|
||||
DEVICE_CLASS_PM1: Final = "pm1"
|
||||
DEVICE_CLASS_PM10: Final = "pm10"
|
||||
DEVICE_CLASS_PRESSURE: Final = "pressure"
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH: Final = "signal_strength"
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE = "sulphur_dioxide"
|
||||
DEVICE_CLASS_TEMPERATURE: Final = "temperature"
|
||||
DEVICE_CLASS_TIMESTAMP: Final = "timestamp"
|
||||
DEVICE_CLASS_VOLTAGE: Final = "voltage"
|
||||
|
|
|
@ -86,7 +86,7 @@ async def test_get_triggers(hass, device_reg, entity_reg, enable_custom_integrat
|
|||
if device_class != "none"
|
||||
]
|
||||
triggers = await async_get_device_automations(hass, "trigger", device_entry.id)
|
||||
assert len(triggers) == 14
|
||||
assert len(triggers) == 22
|
||||
assert triggers == expected_triggers
|
||||
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ Call init before using it in your tests to ensure clean test data.
|
|||
"""
|
||||
import homeassistant.components.sensor as sensor
|
||||
from homeassistant.const import (
|
||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||
CONCENTRATION_PARTS_PER_MILLION,
|
||||
PERCENTAGE,
|
||||
PRESSURE_HPA,
|
||||
|
@ -23,7 +24,15 @@ UNITS_OF_MEASUREMENT = {
|
|||
sensor.DEVICE_CLASS_CO2: CONCENTRATION_PARTS_PER_MILLION, # ppm of CO2 concentration
|
||||
sensor.DEVICE_CLASS_HUMIDITY: PERCENTAGE, # % of humidity in the air
|
||||
sensor.DEVICE_CLASS_ILLUMINANCE: "lm", # current light level (lx/lm)
|
||||
sensor.DEVICE_CLASS_NITROGEN_DIOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen dioxide
|
||||
sensor.DEVICE_CLASS_NITROGEN_MONOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen monoxide
|
||||
sensor.DEVICE_CLASS_NITROUS_OXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen oxide
|
||||
sensor.DEVICE_CLASS_OZONE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of ozone
|
||||
sensor.DEVICE_CLASS_PM1: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of PM1
|
||||
sensor.DEVICE_CLASS_PM10: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of PM10
|
||||
sensor.DEVICE_CLASS_PM25: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of PM2.5
|
||||
sensor.DEVICE_CLASS_SIGNAL_STRENGTH: SIGNAL_STRENGTH_DECIBELS, # signal strength (dB/dBm)
|
||||
sensor.DEVICE_CLASS_SULPHUR_DIOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of sulphur dioxide
|
||||
sensor.DEVICE_CLASS_TEMPERATURE: "C", # temperature (C/F)
|
||||
sensor.DEVICE_CLASS_PRESSURE: PRESSURE_HPA, # pressure (hPa/mbar)
|
||||
sensor.DEVICE_CLASS_POWER: "kW", # power (W/kW)
|
||||
|
|
Loading…
Add table
Reference in a new issue