mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Add device classes for CO and CO2 measurements (#47487)
This commit is contained in:
parent
9101ed2732
commit
79b5ca9415
@ -7,6 +7,8 @@ import voluptuous as vol
|
||||
|
||||
from homeassistant.const import (
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_CO,
|
||||
DEVICE_CLASS_CO2,
|
||||
DEVICE_CLASS_CURRENT,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
@ -36,6 +38,8 @@ ENTITY_ID_FORMAT = DOMAIN + ".{}"
|
||||
SCAN_INTERVAL = timedelta(seconds=30)
|
||||
DEVICE_CLASSES = [
|
||||
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
|
||||
DEVICE_CLASS_CURRENT, # current (A)
|
||||
DEVICE_CLASS_ENERGY, # energy (kWh, Wh)
|
||||
DEVICE_CLASS_HUMIDITY, # % of humidity in the air
|
||||
|
@ -14,6 +14,8 @@ from homeassistant.const import (
|
||||
CONF_ENTITY_ID,
|
||||
CONF_TYPE,
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_CO,
|
||||
DEVICE_CLASS_CO2,
|
||||
DEVICE_CLASS_CURRENT,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
@ -41,6 +43,8 @@ from . import DOMAIN
|
||||
DEVICE_CLASS_NONE = "none"
|
||||
|
||||
CONF_IS_BATTERY_LEVEL = "is_battery_level"
|
||||
CONF_IS_CO = "is_carbon_monoxide"
|
||||
CONF_IS_CO2 = "is_carbon_dioxide"
|
||||
CONF_IS_CURRENT = "is_current"
|
||||
CONF_IS_ENERGY = "is_energy"
|
||||
CONF_IS_HUMIDITY = "is_humidity"
|
||||
@ -56,6 +60,8 @@ CONF_IS_VALUE = "is_value"
|
||||
|
||||
ENTITY_CONDITIONS = {
|
||||
DEVICE_CLASS_BATTERY: [{CONF_TYPE: CONF_IS_BATTERY_LEVEL}],
|
||||
DEVICE_CLASS_CO: [{CONF_TYPE: CONF_IS_CO}],
|
||||
DEVICE_CLASS_CO2: [{CONF_TYPE: CONF_IS_CO2}],
|
||||
DEVICE_CLASS_CURRENT: [{CONF_TYPE: CONF_IS_CURRENT}],
|
||||
DEVICE_CLASS_ENERGY: [{CONF_TYPE: CONF_IS_ENERGY}],
|
||||
DEVICE_CLASS_HUMIDITY: [{CONF_TYPE: CONF_IS_HUMIDITY}],
|
||||
@ -77,6 +83,8 @@ CONDITION_SCHEMA = vol.All(
|
||||
vol.Required(CONF_TYPE): vol.In(
|
||||
[
|
||||
CONF_IS_BATTERY_LEVEL,
|
||||
CONF_IS_CO,
|
||||
CONF_IS_CO2,
|
||||
CONF_IS_CURRENT,
|
||||
CONF_IS_ENERGY,
|
||||
CONF_IS_HUMIDITY,
|
||||
|
@ -17,6 +17,8 @@ from homeassistant.const import (
|
||||
CONF_FOR,
|
||||
CONF_TYPE,
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_CO,
|
||||
DEVICE_CLASS_CO2,
|
||||
DEVICE_CLASS_CURRENT,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
@ -39,6 +41,8 @@ from . import DOMAIN
|
||||
DEVICE_CLASS_NONE = "none"
|
||||
|
||||
CONF_BATTERY_LEVEL = "battery_level"
|
||||
CONF_CO = "carbon_monoxide"
|
||||
CONF_CO2 = "carbon_dioxide"
|
||||
CONF_CURRENT = "current"
|
||||
CONF_ENERGY = "energy"
|
||||
CONF_HUMIDITY = "humidity"
|
||||
@ -54,6 +58,8 @@ CONF_VALUE = "value"
|
||||
|
||||
ENTITY_TRIGGERS = {
|
||||
DEVICE_CLASS_BATTERY: [{CONF_TYPE: CONF_BATTERY_LEVEL}],
|
||||
DEVICE_CLASS_CO: [{CONF_TYPE: CONF_CO}],
|
||||
DEVICE_CLASS_CO2: [{CONF_TYPE: CONF_CO2}],
|
||||
DEVICE_CLASS_CURRENT: [{CONF_TYPE: CONF_CURRENT}],
|
||||
DEVICE_CLASS_ENERGY: [{CONF_TYPE: CONF_ENERGY}],
|
||||
DEVICE_CLASS_HUMIDITY: [{CONF_TYPE: CONF_HUMIDITY}],
|
||||
@ -76,6 +82,8 @@ TRIGGER_SCHEMA = vol.All(
|
||||
vol.Required(CONF_TYPE): vol.In(
|
||||
[
|
||||
CONF_BATTERY_LEVEL,
|
||||
CONF_CO,
|
||||
CONF_CO2,
|
||||
CONF_CURRENT,
|
||||
CONF_ENERGY,
|
||||
CONF_HUMIDITY,
|
||||
|
@ -3,6 +3,8 @@
|
||||
"device_automation": {
|
||||
"condition_type": {
|
||||
"is_battery_level": "Current {entity_name} battery level",
|
||||
"is_carbon_monoxide": "Current {entity_name} carbon monoxide concentration level",
|
||||
"is_carbon_dioxide": "Current {entity_name} carbon dioxide concentration level",
|
||||
"is_humidity": "Current {entity_name} humidity",
|
||||
"is_illuminance": "Current {entity_name} illuminance",
|
||||
"is_power": "Current {entity_name} power",
|
||||
@ -18,6 +20,8 @@
|
||||
},
|
||||
"trigger_type": {
|
||||
"battery_level": "{entity_name} battery level changes",
|
||||
"carbon_monoxide": "{entity_name} carbon monoxide concentration changes",
|
||||
"carbon_dioxide": "{entity_name} carbon dioxide concentration changes",
|
||||
"humidity": "{entity_name} humidity changes",
|
||||
"illuminance": "{entity_name} illuminance changes",
|
||||
"power": "{entity_name} power changes",
|
||||
|
@ -219,6 +219,8 @@ EVENT_TIME_CHANGED = "time_changed"
|
||||
|
||||
# #### DEVICE CLASSES ####
|
||||
DEVICE_CLASS_BATTERY = "battery"
|
||||
DEVICE_CLASS_CO = "carbon_monoxide"
|
||||
DEVICE_CLASS_CO2 = "carbon_dioxide"
|
||||
DEVICE_CLASS_HUMIDITY = "humidity"
|
||||
DEVICE_CLASS_ILLUMINANCE = "illuminance"
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH = "signal_strength"
|
||||
|
@ -77,7 +77,7 @@ async def test_get_triggers(hass, device_reg, entity_reg):
|
||||
if device_class != "none"
|
||||
]
|
||||
triggers = await async_get_device_automations(hass, "trigger", device_entry.id)
|
||||
assert len(triggers) == 12
|
||||
assert len(triggers) == 14
|
||||
assert triggers == expected_triggers
|
||||
|
||||
|
||||
|
@ -4,7 +4,12 @@ Provide a mock sensor platform.
|
||||
Call init before using it in your tests to ensure clean test data.
|
||||
"""
|
||||
import homeassistant.components.sensor as sensor
|
||||
from homeassistant.const import PERCENTAGE, PRESSURE_HPA, SIGNAL_STRENGTH_DECIBELS
|
||||
from homeassistant.const import (
|
||||
CONCENTRATION_PARTS_PER_MILLION,
|
||||
PERCENTAGE,
|
||||
PRESSURE_HPA,
|
||||
SIGNAL_STRENGTH_DECIBELS,
|
||||
)
|
||||
|
||||
from tests.common import MockEntity
|
||||
|
||||
@ -13,6 +18,8 @@ DEVICE_CLASSES.append("none")
|
||||
|
||||
UNITS_OF_MEASUREMENT = {
|
||||
sensor.DEVICE_CLASS_BATTERY: PERCENTAGE, # % of battery that is left
|
||||
sensor.DEVICE_CLASS_CO: CONCENTRATION_PARTS_PER_MILLION, # ppm of CO concentration
|
||||
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_SIGNAL_STRENGTH: SIGNAL_STRENGTH_DECIBELS, # signal strength (dB/dBm)
|
||||
|
Loading…
x
Reference in New Issue
Block a user