Add frequency device class for sensor (#59700)
Co-authored-by: Hedda <rockerc.harley@gmail.com> Co-authored-by: epenet <epenet@users.noreply.github.com>pull/59782/head
parent
1b5d32514f
commit
a3885f4fda
homeassistant
components/sensor
tests
components/sensor
testing_config/custom_components/test
|
@ -20,6 +20,7 @@ from homeassistant.const import (
|
|||
DEVICE_CLASS_CURRENT,
|
||||
DEVICE_CLASS_DATE,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_FREQUENCY,
|
||||
DEVICE_CLASS_GAS,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
|
@ -72,6 +73,7 @@ DEVICE_CLASSES: Final[list[str]] = [
|
|||
DEVICE_CLASS_CURRENT, # current (A)
|
||||
DEVICE_CLASS_DATE, # date (ISO8601)
|
||||
DEVICE_CLASS_ENERGY, # energy (kWh, Wh)
|
||||
DEVICE_CLASS_FREQUENCY, # frequency (Hz, kHz, MHz, GHz)
|
||||
DEVICE_CLASS_HUMIDITY, # % of humidity in the air
|
||||
DEVICE_CLASS_ILLUMINANCE, # current light level (lx/lm)
|
||||
DEVICE_CLASS_MONETARY, # Amount of money (currency)
|
||||
|
|
|
@ -16,6 +16,7 @@ from homeassistant.const import (
|
|||
DEVICE_CLASS_CO2,
|
||||
DEVICE_CLASS_CURRENT,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_FREQUENCY,
|
||||
DEVICE_CLASS_GAS,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
|
@ -55,6 +56,7 @@ CONF_IS_CO = "is_carbon_monoxide"
|
|||
CONF_IS_CO2 = "is_carbon_dioxide"
|
||||
CONF_IS_CURRENT = "is_current"
|
||||
CONF_IS_ENERGY = "is_energy"
|
||||
CONF_IS_FREQUENCY = "is_frequency"
|
||||
CONF_IS_HUMIDITY = "is_humidity"
|
||||
CONF_IS_GAS = "is_gas"
|
||||
CONF_IS_ILLUMINANCE = "is_illuminance"
|
||||
|
@ -81,6 +83,7 @@ ENTITY_CONDITIONS = {
|
|||
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_FREQUENCY: [{CONF_TYPE: CONF_IS_FREQUENCY}],
|
||||
DEVICE_CLASS_GAS: [{CONF_TYPE: CONF_IS_GAS}],
|
||||
DEVICE_CLASS_HUMIDITY: [{CONF_TYPE: CONF_IS_HUMIDITY}],
|
||||
DEVICE_CLASS_ILLUMINANCE: [{CONF_TYPE: CONF_IS_ILLUMINANCE}],
|
||||
|
@ -115,6 +118,7 @@ CONDITION_SCHEMA = vol.All(
|
|||
CONF_IS_CO2,
|
||||
CONF_IS_CURRENT,
|
||||
CONF_IS_ENERGY,
|
||||
CONF_IS_FREQUENCY,
|
||||
CONF_IS_GAS,
|
||||
CONF_IS_HUMIDITY,
|
||||
CONF_IS_ILLUMINANCE,
|
||||
|
|
|
@ -19,6 +19,7 @@ from homeassistant.const import (
|
|||
DEVICE_CLASS_CO2,
|
||||
DEVICE_CLASS_CURRENT,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_FREQUENCY,
|
||||
DEVICE_CLASS_GAS,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
|
@ -54,6 +55,7 @@ CONF_CO = "carbon_monoxide"
|
|||
CONF_CO2 = "carbon_dioxide"
|
||||
CONF_CURRENT = "current"
|
||||
CONF_ENERGY = "energy"
|
||||
CONF_FREQUENCY = "frequency"
|
||||
CONF_GAS = "gas"
|
||||
CONF_HUMIDITY = "humidity"
|
||||
CONF_ILLUMINANCE = "illuminance"
|
||||
|
@ -80,6 +82,7 @@ ENTITY_TRIGGERS = {
|
|||
DEVICE_CLASS_CO2: [{CONF_TYPE: CONF_CO2}],
|
||||
DEVICE_CLASS_CURRENT: [{CONF_TYPE: CONF_CURRENT}],
|
||||
DEVICE_CLASS_ENERGY: [{CONF_TYPE: CONF_ENERGY}],
|
||||
DEVICE_CLASS_FREQUENCY: [{CONF_TYPE: CONF_FREQUENCY}],
|
||||
DEVICE_CLASS_GAS: [{CONF_TYPE: CONF_GAS}],
|
||||
DEVICE_CLASS_HUMIDITY: [{CONF_TYPE: CONF_HUMIDITY}],
|
||||
DEVICE_CLASS_ILLUMINANCE: [{CONF_TYPE: CONF_ILLUMINANCE}],
|
||||
|
@ -115,6 +118,7 @@ TRIGGER_SCHEMA = vol.All(
|
|||
CONF_CO2,
|
||||
CONF_CURRENT,
|
||||
CONF_ENERGY,
|
||||
CONF_FREQUENCY,
|
||||
CONF_GAS,
|
||||
CONF_HUMIDITY,
|
||||
CONF_ILLUMINANCE,
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
"is_temperature": "Current {entity_name} temperature",
|
||||
"is_current": "Current {entity_name} current",
|
||||
"is_energy": "Current {entity_name} energy",
|
||||
"is_frequency": "Current {entity_name} frequency",
|
||||
"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",
|
||||
|
@ -48,6 +49,7 @@
|
|||
"temperature": "{entity_name} temperature changes",
|
||||
"current": "{entity_name} current changes",
|
||||
"energy": "{entity_name} energy changes",
|
||||
"frequency": "{entity_name} frequency changes",
|
||||
"power_factor": "{entity_name} power factor changes",
|
||||
"volatile_organic_compounds": "{entity_name} volatile organic compounds concentration changes",
|
||||
"voltage": "{entity_name} voltage changes",
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
"is_carbon_monoxide": "Current {entity_name} carbon monoxide concentration level",
|
||||
"is_current": "Current {entity_name} current",
|
||||
"is_energy": "Current {entity_name} energy",
|
||||
"is_frequency": "Current {entity_name} frequency",
|
||||
"is_gas": "Current {entity_name} gas",
|
||||
"is_humidity": "Current {entity_name} humidity",
|
||||
"is_illuminance": "Current {entity_name} illuminance",
|
||||
|
@ -32,6 +33,7 @@
|
|||
"carbon_monoxide": "{entity_name} carbon monoxide concentration changes",
|
||||
"current": "{entity_name} current changes",
|
||||
"energy": "{entity_name} energy changes",
|
||||
"frequency": "{entity_name} frequency changes",
|
||||
"gas": "{entity_name} gas changes",
|
||||
"humidity": "{entity_name} humidity changes",
|
||||
"illuminance": "{entity_name} illuminance changes",
|
||||
|
|
|
@ -240,6 +240,7 @@ DEVICE_CLASS_CO2: Final = "carbon_dioxide"
|
|||
DEVICE_CLASS_CURRENT: Final = "current"
|
||||
DEVICE_CLASS_DATE: Final = "date"
|
||||
DEVICE_CLASS_ENERGY: Final = "energy"
|
||||
DEVICE_CLASS_FREQUENCY: Final = "frequency"
|
||||
DEVICE_CLASS_HUMIDITY: Final = "humidity"
|
||||
DEVICE_CLASS_ILLUMINANCE: Final = "illuminance"
|
||||
DEVICE_CLASS_MONETARY: Final = "monetary"
|
||||
|
|
|
@ -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) == 23
|
||||
assert len(triggers) == 24
|
||||
assert triggers == expected_triggers
|
||||
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import homeassistant.components.sensor as sensor
|
|||
from homeassistant.const import (
|
||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||
CONCENTRATION_PARTS_PER_MILLION,
|
||||
FREQUENCY_GIGAHERTZ,
|
||||
PERCENTAGE,
|
||||
PRESSURE_HPA,
|
||||
SIGNAL_STRENGTH_DECIBELS,
|
||||
|
@ -38,6 +39,7 @@ UNITS_OF_MEASUREMENT = {
|
|||
sensor.DEVICE_CLASS_POWER: "kW", # power (W/kW)
|
||||
sensor.DEVICE_CLASS_CURRENT: "A", # current (A)
|
||||
sensor.DEVICE_CLASS_ENERGY: "kWh", # energy (Wh/kWh)
|
||||
sensor.DEVICE_CLASS_FREQUENCY: FREQUENCY_GIGAHERTZ, # energy (Hz/kHz/MHz/GHz)
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue