mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 04:37:06 +00:00
Add device class for volatile organic compounds (#55050)
This commit is contained in:
parent
4a2eeed1e8
commit
2dd4de060b
@ -37,6 +37,7 @@ from homeassistant.const import (
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_TIMESTAMP,
|
||||
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS,
|
||||
DEVICE_CLASS_VOLTAGE,
|
||||
TEMP_CELSIUS,
|
||||
TEMP_FAHRENHEIT,
|
||||
@ -85,6 +86,7 @@ DEVICE_CLASSES: Final[list[str]] = [
|
||||
DEVICE_CLASS_POWER, # power (W/kW)
|
||||
DEVICE_CLASS_POWER_FACTOR, # power factor (%)
|
||||
DEVICE_CLASS_VOLTAGE, # voltage (V)
|
||||
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS, # Amount of VOC (µg/m³)
|
||||
DEVICE_CLASS_GAS, # gas (m³ or ft³)
|
||||
]
|
||||
|
||||
|
@ -32,6 +32,7 @@ from homeassistant.const import (
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS,
|
||||
DEVICE_CLASS_VOLTAGE,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant, HomeAssistantError, callback
|
||||
@ -70,6 +71,7 @@ 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_VOLATILE_ORGANIC_COMPOUNDS = "is_volatile_organic_compounds"
|
||||
CONF_IS_VOLTAGE = "is_voltage"
|
||||
CONF_IS_VALUE = "is_value"
|
||||
|
||||
@ -95,6 +97,9 @@ ENTITY_CONDITIONS = {
|
||||
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_VOLATILE_ORGANIC_COMPOUNDS: [
|
||||
{CONF_TYPE: CONF_IS_VOLATILE_ORGANIC_COMPOUNDS}
|
||||
],
|
||||
DEVICE_CLASS_VOLTAGE: [{CONF_TYPE: CONF_IS_VOLTAGE}],
|
||||
DEVICE_CLASS_NONE: [{CONF_TYPE: CONF_IS_VALUE}],
|
||||
}
|
||||
@ -126,6 +131,7 @@ CONDITION_SCHEMA = vol.All(
|
||||
CONF_IS_SIGNAL_STRENGTH,
|
||||
CONF_IS_SULPHUR_DIOXIDE,
|
||||
CONF_IS_TEMPERATURE,
|
||||
CONF_IS_VOLATILE_ORGANIC_COMPOUNDS,
|
||||
CONF_IS_VOLTAGE,
|
||||
CONF_IS_VALUE,
|
||||
]
|
||||
|
@ -35,6 +35,7 @@ from homeassistant.const import (
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||
DEVICE_CLASS_SULPHUR_DIOXIDE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS,
|
||||
DEVICE_CLASS_VOLTAGE,
|
||||
)
|
||||
from homeassistant.core import HomeAssistantError
|
||||
@ -69,6 +70,7 @@ CONF_PRESSURE = "pressure"
|
||||
CONF_SIGNAL_STRENGTH = "signal_strength"
|
||||
CONF_SULPHUR_DIOXIDE = "sulphur_dioxide"
|
||||
CONF_TEMPERATURE = "temperature"
|
||||
CONF_VOLATILE_ORGANIC_COMPOUNDS = "volatile_organic_compounds"
|
||||
CONF_VOLTAGE = "voltage"
|
||||
CONF_VALUE = "value"
|
||||
|
||||
@ -94,6 +96,9 @@ ENTITY_TRIGGERS = {
|
||||
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_VOLATILE_ORGANIC_COMPOUNDS: [
|
||||
{CONF_TYPE: CONF_VOLATILE_ORGANIC_COMPOUNDS}
|
||||
],
|
||||
DEVICE_CLASS_VOLTAGE: [{CONF_TYPE: CONF_VOLTAGE}],
|
||||
DEVICE_CLASS_NONE: [{CONF_TYPE: CONF_VALUE}],
|
||||
}
|
||||
@ -126,6 +131,7 @@ TRIGGER_SCHEMA = vol.All(
|
||||
CONF_SIGNAL_STRENGTH,
|
||||
CONF_SULPHUR_DIOXIDE,
|
||||
CONF_TEMPERATURE,
|
||||
CONF_VOLATILE_ORGANIC_COMPOUNDS,
|
||||
CONF_VOLTAGE,
|
||||
CONF_VALUE,
|
||||
]
|
||||
|
@ -23,6 +23,7 @@
|
||||
"is_current": "Current {entity_name} current",
|
||||
"is_energy": "Current {entity_name} energy",
|
||||
"is_power_factor": "Current {entity_name} power factor",
|
||||
"is_volatile_organic_compounds": "Current {entity_name} volatile organic compounds concentration level",
|
||||
"is_voltage": "Current {entity_name} voltage",
|
||||
"is_value": "Current {entity_name} value"
|
||||
},
|
||||
@ -48,6 +49,7 @@
|
||||
"current": "{entity_name} current changes",
|
||||
"energy": "{entity_name} energy changes",
|
||||
"power_factor": "{entity_name} power factor changes",
|
||||
"volatile_organic_compounds": "{entity_name} volatile organic compounds concentration changes",
|
||||
"voltage": "{entity_name} voltage changes",
|
||||
"value": "{entity_name} value changes"
|
||||
}
|
||||
|
@ -256,6 +256,7 @@ DEVICE_CLASS_SULPHUR_DIOXIDE = "sulphur_dioxide"
|
||||
DEVICE_CLASS_TEMPERATURE: Final = "temperature"
|
||||
DEVICE_CLASS_TIMESTAMP: Final = "timestamp"
|
||||
DEVICE_CLASS_VOLTAGE: Final = "voltage"
|
||||
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS = "volatile_organic_compounds"
|
||||
DEVICE_CLASS_GAS: Final = "gas"
|
||||
|
||||
# #### STATES ####
|
||||
|
@ -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) == 22
|
||||
assert len(triggers) == 23
|
||||
assert triggers == expected_triggers
|
||||
|
||||
|
||||
|
@ -39,6 +39,7 @@ UNITS_OF_MEASUREMENT = {
|
||||
sensor.DEVICE_CLASS_CURRENT: "A", # current (A)
|
||||
sensor.DEVICE_CLASS_ENERGY: "kWh", # energy (Wh/kWh)
|
||||
sensor.DEVICE_CLASS_POWER_FACTOR: PERCENTAGE, # power factor (no unit, min: -1.0, max: 1.0)
|
||||
sensor.DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of vocs
|
||||
sensor.DEVICE_CLASS_VOLTAGE: "V", # voltage (V)
|
||||
sensor.DEVICE_CLASS_GAS: VOLUME_CUBIC_METERS, # gas (m³)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user