Add sound pressure unit constants (dB + dBa) (#53159)

pull/53191/head
Marc Mueller 2021-07-19 15:54:38 +02:00 committed by GitHub
parent ea6e325762
commit c35b5a1c64
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 25 additions and 8 deletions

View File

@ -18,6 +18,7 @@ from homeassistant.const import (
DEVICE_CLASS_TEMPERATURE,
LIGHT_LUX,
PERCENTAGE,
SOUND_PRESSURE_WEIGHTED_DBA,
TEMP_CELSIUS,
)
@ -72,7 +73,7 @@ SENSOR_TYPES = {
API_SPL_A: {
ATTR_DEVICE_CLASS: None,
ATTR_ICON: "mdi:ear-hearing",
ATTR_UNIT: "dBa",
ATTR_UNIT: SOUND_PRESSURE_WEIGHTED_DBA,
ATTR_LABEL: "Sound level",
ATTR_UNIQUE_ID: "sound_level",
},

View File

@ -2,7 +2,11 @@
import asyncio
from homeassistant import bootstrap, config_entries
from homeassistant.const import ATTR_ENTITY_ID, EVENT_HOMEASSISTANT_START
from homeassistant.const import (
ATTR_ENTITY_ID,
EVENT_HOMEASSISTANT_START,
SOUND_PRESSURE_DB,
)
import homeassistant.core as ha
DOMAIN = "demo"
@ -119,7 +123,7 @@ async def async_setup(hass, config):
"min": 0,
"max": 10,
"name": "Allowed Noise",
"unit_of_measurement": "dB",
"unit_of_measurement": SOUND_PRESSURE_DB,
}
}
},

View File

@ -71,6 +71,8 @@ from homeassistant.const import (
PRESSURE_MBAR,
SERVICE_LOCK,
SERVICE_UNLOCK,
SOUND_PRESSURE_DB,
SOUND_PRESSURE_WEIGHTED_DBA,
SPEED_INCHES_PER_DAY,
SPEED_INCHES_PER_HOUR,
SPEED_KILOMETERS_PER_HOUR,
@ -341,8 +343,8 @@ UOM_FRIENDLY_NAME = {
"8": VOLUME_CUBIC_METERS,
"9": TIME_DAYS,
"10": TIME_DAYS,
"12": "dB",
"13": "dB A",
"12": SOUND_PRESSURE_DB,
"13": SOUND_PRESSURE_WEIGHTED_DBA,
"14": DEGREE,
"16": "macroseismic",
"17": TEMP_FAHRENHEIT,

View File

@ -20,6 +20,7 @@ from homeassistant.const import (
MASS_KILOGRAMS,
PERCENTAGE,
POWER_WATT,
SOUND_PRESSURE_DB,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
VOLT,
@ -53,7 +54,7 @@ SENSORS: dict[str, list[str | None] | dict[str, list[str | None]]] = {
"V_FLOW": [LENGTH_METERS, "mdi:gauge", None],
"V_VOLUME": [f"{VOLUME_CUBIC_METERS}", None, None],
"V_LEVEL": {
"S_SOUND": ["dB", "mdi:volume-high", None],
"S_SOUND": [SOUND_PRESSURE_DB, "mdi:volume-high", None],
"S_VIBRATION": [FREQUENCY_HERTZ, None, None],
"S_LIGHT_LEVEL": [LIGHT_LUX, "mdi:white-balance-sunny", None],
},

View File

@ -17,6 +17,7 @@ from homeassistant.const import (
PERCENTAGE,
PRESSURE_MBAR,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
SOUND_PRESSURE_DB,
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
)
@ -92,7 +93,7 @@ SENSOR_TYPES = {
None,
False,
],
"noise": ["Noise", "Noise", "dB", "mdi:volume-high", None, True],
"noise": ["Noise", "Noise", SOUND_PRESSURE_DB, "mdi:volume-high", None, True],
"humidity": ["Humidity", "Humidity", PERCENTAGE, None, DEVICE_CLASS_HUMIDITY, True],
"rain": ["Rain", "Rain", LENGTH_MILLIMETERS, "mdi:weather-rainy", None, True],
"sum_rain_1": [

View File

@ -8,6 +8,7 @@ from homeassistant.const import (
DEVICE_CLASS_TEMPERATURE,
PERCENTAGE,
PRESSURE_HPA,
SOUND_PRESSURE_WEIGHTED_DBA,
TEMP_CELSIUS,
)
from homeassistant.helpers.dispatcher import async_dispatcher_connect
@ -24,7 +25,7 @@ SENSOR_TYPES = {
DEVICE_CLASS_TEMPERATURE: (None, 1, TEMP_CELSIUS),
DEVICE_CLASS_PRESSURE: (None, 0, PRESSURE_HPA),
DEVICE_CLASS_HUMIDITY: (None, 1, PERCENTAGE),
DEVICE_CLASS_SOUND: ("mdi:ear-hearing", 1, "dBa"),
DEVICE_CLASS_SOUND: ("mdi:ear-hearing", 1, SOUND_PRESSURE_WEIGHTED_DBA),
}

View File

@ -467,6 +467,13 @@ PRESSURE_MBAR: Final[UnitPressureT] = UnitPressureT(UnitT("mbar"))
PRESSURE_INHG: Final[UnitPressureT] = UnitPressureT(UnitT("inHg"))
PRESSURE_PSI: Final[UnitPressureT] = UnitPressureT(UnitT("psi"))
# Sound pressure units
UnitSoundPressureT = NewType("UnitSoundPressureT", UnitT)
SOUND_PRESSURE_DB: Final[UnitSoundPressureT] = UnitSoundPressureT(UnitT("dB"))
SOUND_PRESSURE_WEIGHTED_DBA: Final[UnitSoundPressureT] = UnitSoundPressureT(
UnitT("dBa")
)
# Volume units
UnitVolumeT = NewType("UnitVolumeT", UnitT)
VOLUME_LITERS: Final[UnitVolumeT] = UnitVolumeT(UnitT("L"))