Add new electrical unit constants (mV + mA) (#53158)

This commit is contained in:
Marc Mueller 2021-07-20 15:57:11 +02:00 committed by GitHub
parent 08f03c95d2
commit c578541a82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 34 additions and 23 deletions

View File

@ -6,6 +6,7 @@ from homeassistant.const import (
AREA_SQUARE_METERS,
CONF_MONITORED_CONDITIONS,
DEVICE_CLASS_TEMPERATURE,
ELECTRIC_POTENTIAL_MILLIVOLT,
PERCENTAGE,
PRESSURE_INHG,
PRESSURE_MBAR,
@ -32,7 +33,7 @@ SENSOR_UNITS_IMPERIAL = {
"Humidity": PERCENTAGE,
"Pressure": PRESSURE_INHG,
"Luminance": f"cd/{AREA_SQUARE_METERS}",
"Voltage": "mV",
"Voltage": ELECTRIC_POTENTIAL_MILLIVOLT,
}
# Metric units
@ -41,7 +42,7 @@ SENSOR_UNITS_METRIC = {
"Humidity": PERCENTAGE,
"Pressure": PRESSURE_MBAR,
"Luminance": f"cd/{AREA_SQUARE_METERS}",
"Voltage": "mV",
"Voltage": ELECTRIC_POTENTIAL_MILLIVOLT,
}
# Device class

View File

@ -8,6 +8,7 @@ from homeassistant.const import (
DEVICE_CLASS_ILLUMINANCE,
DEVICE_CLASS_POWER,
DEVICE_CLASS_TEMPERATURE,
ELECTRIC_CURRENT_MILLIAMPERE,
ENERGY_WATT_HOUR,
FREQUENCY_HERTZ,
LENGTH_MILLIMETERS,
@ -47,7 +48,7 @@ HM_UNIT_HA_CAST = {
"ACTUAL_TEMPERATURE": TEMP_CELSIUS,
"BRIGHTNESS": "#",
"POWER": POWER_WATT,
"CURRENT": "mA",
"CURRENT": ELECTRIC_CURRENT_MILLIAMPERE,
"VOLTAGE": VOLT,
"ENERGY_COUNTER": ENERGY_WATT_HOUR,
"GAS_POWER": VOLUME_CUBIC_METERS,

View File

@ -48,6 +48,8 @@ from homeassistant.const import (
CURRENCY_CENT,
CURRENCY_DOLLAR,
DEGREE,
ELECTRIC_CURRENT_MILLIAMPERE,
ELECTRIC_POTENTIAL_MILLIVOLT,
ENERGY_KILO_WATT_HOUR,
ENERGY_WATT_HOUR,
FREQUENCY_HERTZ,
@ -371,9 +373,9 @@ UOM_FRIENDLY_NAME = {
"38": LENGTH_METERS,
"39": VOLUME_FLOW_RATE_CUBIC_METERS_PER_HOUR,
"40": SPEED_METERS_PER_SECOND,
"41": "mA",
"41": ELECTRIC_CURRENT_MILLIAMPERE,
"42": TIME_MILLISECONDS,
"43": "mV",
"43": ELECTRIC_POTENTIAL_MILLIVOLT,
"44": TIME_MINUTES,
"45": TIME_MINUTES,
"46": PRECIPITATION_MILLIMETERS_PER_HOUR,

View File

@ -11,6 +11,7 @@ from homeassistant.const import (
DEGREE,
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
ELECTRIC_POTENTIAL_MILLIVOLT,
ELECTRICAL_CURRENT_AMPERE,
ELECTRICAL_VOLT_AMPERE,
ENERGY_KILO_WATT_HOUR,
@ -61,7 +62,7 @@ SENSORS: dict[str, list[str | None] | dict[str, list[str | None]]] = {
"V_VOLTAGE": [VOLT, "mdi:flash", None],
"V_CURRENT": [ELECTRICAL_CURRENT_AMPERE, "mdi:flash-auto", None],
"V_PH": ["pH", None, None],
"V_ORP": ["mV", None, None],
"V_ORP": [ELECTRIC_POTENTIAL_MILLIVOLT, None, None],
"V_EC": [CONDUCTIVITY, None, None],
"V_VAR": ["var", None, None],
"V_VA": [ELECTRICAL_VOLT_AMPERE, None, None],

View File

@ -2,6 +2,7 @@
from homeassistant.components.sensor import DEVICE_CLASS_TEMPERATURE, SensorEntity
from homeassistant.const import (
CONCENTRATION_PARTS_PER_MILLION,
ELECTRIC_POTENTIAL_MILLIVOLT,
MASS_GRAMS,
PERCENTAGE,
TEMP_CELSIUS,
@ -342,7 +343,7 @@ SENSOR_TYPES = {
"kind": "csad_orp",
"device_class": None,
"icon": "mdi:gauge",
"unit": "mV",
"unit": ELECTRIC_POTENTIAL_MILLIVOLT,
"guard_condition": [
{"orp": ""},
],

View File

@ -10,6 +10,7 @@ from homeassistant.const import (
DEVICE_CLASS_BATTERY,
DEVICE_CLASS_SIGNAL_STRENGTH,
DEVICE_CLASS_TEMPERATURE,
ELECTRIC_POTENTIAL_MILLIVOLT,
PERCENTAGE,
TEMP_CELSIUS,
)
@ -28,7 +29,12 @@ SENSOR_TYPES = {
None,
DEVICE_CLASS_TEMPERATURE,
],
"orp": ["Oxydo Reduction Potential", "mV", "mdi:pool", None],
"orp": [
"Oxydo Reduction Potential",
ELECTRIC_POTENTIAL_MILLIVOLT,
"mdi:pool",
None,
],
"ph": ["pH", "", "mdi:pool", None],
"tds": ["TDS", CONCENTRATION_PARTS_PER_MILLION, "mdi:pool", None],
"battery": ["Battery", PERCENTAGE, None, DEVICE_CLASS_BATTERY],

View File

@ -6,6 +6,7 @@ from homeassistant.const import (
DEVICE_CLASS_BATTERY,
DEVICE_CLASS_TEMPERATURE,
DEVICE_CLASS_TIMESTAMP,
ELECTRIC_POTENTIAL_MILLIVOLT,
PERCENTAGE,
TEMP_CELSIUS,
)
@ -15,7 +16,7 @@ from .const import ATTRIBUTION, DOMAIN
SENSORS = {
"Chlorine": {
"unit": "mV",
"unit": ELECTRIC_POTENTIAL_MILLIVOLT,
"icon": "mdi:pool",
"name": "Chlorine",
"device_class": None,
@ -40,13 +41,13 @@ SENSORS = {
"device_class": DEVICE_CLASS_TIMESTAMP,
},
"Chlorine High": {
"unit": "mV",
"unit": ELECTRIC_POTENTIAL_MILLIVOLT,
"icon": "mdi:pool",
"name": "Chlorine High",
"device_class": None,
},
"Chlorine Low": {
"unit": "mV",
"unit": ELECTRIC_POTENTIAL_MILLIVOLT,
"icon": "mdi:pool",
"name": "Chlorine Low",
"device_class": None,

View File

@ -30,9 +30,6 @@ ATTR_SPEED = "speed"
ATTR_TARGET_BRIGHTNESS = "target_brightness"
ATTR_UDP_PORT = "udp_port"
# Units of measurement
CURRENT_MA = "mA"
# Services
SERVICE_EFFECT = "effect"
SERVICE_PRESET = "preset"

View File

@ -10,6 +10,7 @@ from homeassistant.const import (
DATA_BYTES,
DEVICE_CLASS_SIGNAL_STRENGTH,
DEVICE_CLASS_TIMESTAMP,
ELECTRIC_CURRENT_MILLIAMPERE,
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
)
@ -17,7 +18,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util.dt import utcnow
from .const import ATTR_LED_COUNT, ATTR_MAX_POWER, CURRENT_MA, DOMAIN
from .const import ATTR_LED_COUNT, ATTR_MAX_POWER, DOMAIN
from .coordinator import WLEDDataUpdateCoordinator
from .models import WLEDEntity
@ -47,7 +48,7 @@ class WLEDEstimatedCurrentSensor(WLEDEntity, SensorEntity):
"""Defines a WLED estimated current sensor."""
_attr_icon = "mdi:power"
_attr_unit_of_measurement = CURRENT_MA
_attr_unit_of_measurement = ELECTRIC_CURRENT_MILLIAMPERE
_attr_device_class = DEVICE_CLASS_CURRENT
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:

View File

@ -407,8 +407,10 @@ ENERGY_WATT_HOUR: Final = "Wh"
ENERGY_KILO_WATT_HOUR: Final = "kWh"
# Electrical units
ELECTRIC_CURRENT_MILLIAMPERE: Final = "mA"
ELECTRICAL_CURRENT_AMPERE: Final = "A"
ELECTRICAL_VOLT_AMPERE: Final = "VA"
ELECTRIC_POTENTIAL_MILLIVOLT: Final = "mV"
# Degree units
DEGREE: Final = "°"

View File

@ -10,17 +10,13 @@ from homeassistant.components.sensor import (
DEVICE_CLASS_TIMESTAMP,
DOMAIN as SENSOR_DOMAIN,
)
from homeassistant.components.wled.const import (
ATTR_LED_COUNT,
ATTR_MAX_POWER,
CURRENT_MA,
DOMAIN,
)
from homeassistant.components.wled.const import ATTR_LED_COUNT, ATTR_MAX_POWER, DOMAIN
from homeassistant.const import (
ATTR_DEVICE_CLASS,
ATTR_ICON,
ATTR_UNIT_OF_MEASUREMENT,
DATA_BYTES,
ELECTRIC_CURRENT_MILLIAMPERE,
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
STATE_UNKNOWN,
@ -101,7 +97,9 @@ async def test_sensors(
assert state.attributes.get(ATTR_ICON) == "mdi:power"
assert state.attributes.get(ATTR_LED_COUNT) == 30
assert state.attributes.get(ATTR_MAX_POWER) == 850
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == CURRENT_MA
assert (
state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ELECTRIC_CURRENT_MILLIAMPERE
)
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_CURRENT
assert state.state == "470"