Add frequency device class for sensor ()

Co-authored-by: Hedda <rockerc.harley@gmail.com>
Co-authored-by: epenet <epenet@users.noreply.github.com>
pull/59782/head
epenet 2021-11-15 14:33:50 +01:00 committed by GitHub
parent 1b5d32514f
commit a3885f4fda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 18 additions and 1 deletions
tests
components/sensor
testing_config/custom_components/test

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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",

View File

@ -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",

View File

@ -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"

View File

@ -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

View File

@ -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)