Change POWER_VOLT_AMPERE_REACTIVE to UnitOfReactivePower (#117153)

* Refactoring: exchange POWER_VOLT_AMPERE_REACTIVE with UnitOfReactivePower

* updated iotawatt and mysensors from VOLT_AMPERE_REACTIVE to UnitOfReactivePower.VOLT_AMPERE_REACTIVE

* deprecation period for POWER_VOLT_AMPERE_REACTIVE changed to one year.

* POWER_VOLT_AMPERE_REACTIVE changed to UnitOfReactivePower in blebox integration

* Update homeassistant/const.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
This commit is contained in:
Christian Neumeier 2024-08-21 15:36:45 +02:00 committed by GitHub
parent b21b300625
commit 3e53cc175f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 68 additions and 56 deletions

View File

@ -14,13 +14,13 @@ from homeassistant.const import (
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
LIGHT_LUX,
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
UnitOfApparentPower,
UnitOfElectricCurrent,
UnitOfElectricPotential,
UnitOfEnergy,
UnitOfFrequency,
UnitOfPower,
UnitOfReactivePower,
UnitOfSpeed,
UnitOfTemperature,
)
@ -85,7 +85,7 @@ SENSOR_TYPES = (
SensorEntityDescription(
key="reactivePower",
device_class=SensorDeviceClass.POWER,
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
),
SensorEntityDescription(
key="activePower",

View File

@ -14,7 +14,6 @@ from homeassistant.components.sensor import (
)
from homeassistant.const import (
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
EntityCategory,
UnitOfApparentPower,
UnitOfElectricCurrent,
@ -22,6 +21,7 @@ from homeassistant.const import (
UnitOfEnergy,
UnitOfFrequency,
UnitOfPower,
UnitOfReactivePower,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant, callback
@ -381,28 +381,28 @@ METER_ENTITY_DESCRIPTIONS: list[FroniusSensorEntityDescription] = [
),
FroniusSensorEntityDescription(
key="power_reactive_phase_1",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
FroniusSensorEntityDescription(
key="power_reactive_phase_2",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
FroniusSensorEntityDescription(
key="power_reactive_phase_3",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
FroniusSensorEntityDescription(
key="power_reactive",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,

View File

@ -20,7 +20,6 @@ from homeassistant.components.sensor import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
EntityCategory,
UnitOfApparentPower,
UnitOfElectricCurrent,
@ -28,6 +27,7 @@ from homeassistant.const import (
UnitOfEnergy,
UnitOfFrequency,
UnitOfPower,
UnitOfReactivePower,
UnitOfTemperature,
UnitOfTime,
)
@ -126,7 +126,7 @@ _DESCRIPTIONS: dict[str, GoodweSensorEntityDescription] = {
key="var",
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
entity_registry_enabled_default=False,
),
"C": GoodweSensorEntityDescription(

View File

@ -18,7 +18,6 @@ from homeassistant.components.sensor import (
from homeassistant.const import (
ATTR_VIA_DEVICE,
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
EntityCategory,
Platform,
UnitOfApparentPower,
@ -27,6 +26,7 @@ from homeassistant.const import (
UnitOfEnergy,
UnitOfFrequency,
UnitOfPower,
UnitOfReactivePower,
UnitOfVolume,
)
from homeassistant.core import HomeAssistant
@ -404,7 +404,7 @@ SENSORS: Final[tuple[HomeWizardSensorEntityDescription, ...]] = (
),
HomeWizardSensorEntityDescription(
key="active_reactive_power_var",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -415,7 +415,7 @@ SENSORS: Final[tuple[HomeWizardSensorEntityDescription, ...]] = (
key="active_reactive_power_l1_var",
translation_key="active_reactive_power_phase_var",
translation_placeholders={"phase": "1"},
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -426,7 +426,7 @@ SENSORS: Final[tuple[HomeWizardSensorEntityDescription, ...]] = (
key="active_reactive_power_l2_var",
translation_key="active_reactive_power_phase_var",
translation_placeholders={"phase": "2"},
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
@ -437,7 +437,7 @@ SENSORS: Final[tuple[HomeWizardSensorEntityDescription, ...]] = (
key="active_reactive_power_l3_var",
translation_key="active_reactive_power_phase_var",
translation_placeholders={"phase": "3"},
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
device_class=SensorDeviceClass.REACTIVE_POWER,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,

View File

@ -7,7 +7,6 @@ import json
import httpx
DOMAIN = "iotawatt"
VOLT_AMPERE_REACTIVE = "VAR"
VOLT_AMPERE_REACTIVE_HOURS = "VARh"
CONNECTION_ERRORS = (KeyError, json.JSONDecodeError, httpx.HTTPError)

View File

@ -23,6 +23,7 @@ from homeassistant.const import (
UnitOfEnergy,
UnitOfFrequency,
UnitOfPower,
UnitOfReactivePower,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import device_registry as dr, entity_registry as er
@ -31,7 +32,7 @@ from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util import dt as dt_util
from .const import DOMAIN, VOLT_AMPERE_REACTIVE, VOLT_AMPERE_REACTIVE_HOURS
from .const import DOMAIN, VOLT_AMPERE_REACTIVE_HOURS
from .coordinator import IotawattUpdater
_LOGGER = logging.getLogger(__name__)
@ -89,7 +90,7 @@ ENTITY_DESCRIPTION_KEY_MAP: dict[str, IotaWattSensorEntityDescription] = {
),
"VAR": IotaWattSensorEntityDescription(
key="VAR",
native_unit_of_measurement=VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
state_class=SensorStateClass.MEASUREMENT,
icon="mdi:flash",
entity_registry_enabled_default=False,

View File

@ -23,7 +23,6 @@ from homeassistant.const import (
DEGREE,
LIGHT_LUX,
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
REVOLUTIONS_PER_MINUTE,
SERVICE_LOCK,
SERVICE_UNLOCK,
@ -50,6 +49,7 @@ from homeassistant.const import (
UnitOfMass,
UnitOfPower,
UnitOfPressure,
UnitOfReactivePower,
UnitOfSoundPressure,
UnitOfSpeed,
UnitOfTemperature,
@ -438,7 +438,7 @@ UOM_FRIENDLY_NAME = {
"133": UnitOfFrequency.KILOHERTZ,
"134": f"{UnitOfLength.METERS}/{UnitOfTime.SECONDS}²",
"135": UnitOfApparentPower.VOLT_AMPERE, # Volt-Amp
"136": POWER_VOLT_AMPERE_REACTIVE, # VAR = Volt-Amp Reactive
"136": UnitOfReactivePower.VOLT_AMPERE_REACTIVE, # VAR = Volt-Amp Reactive
"137": "", # NTP DateTime - Number of seconds since 1900
"138": UnitOfPressure.PSI,
"139": DEGREE, # Degree 0-360

View File

@ -28,6 +28,7 @@ from homeassistant.const import (
UnitOfLength,
UnitOfMass,
UnitOfPower,
UnitOfReactivePower,
UnitOfSoundPressure,
UnitOfTemperature,
UnitOfVolume,
@ -195,7 +196,7 @@ SENSORS: dict[str, SensorEntityDescription] = {
),
"V_VAR": SensorEntityDescription(
key="V_VAR",
native_unit_of_measurement="var",
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
),
"V_VA": SensorEntityDescription(
key="V_VA",

View File

@ -14,7 +14,6 @@ from homeassistant.const import (
CONCENTRATION_PARTS_PER_MILLION,
LIGHT_LUX,
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
SIGNAL_STRENGTH_DECIBELS,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
UnitOfApparentPower,
@ -31,6 +30,7 @@ from homeassistant.const import (
UnitOfPower,
UnitOfPrecipitationDepth,
UnitOfPressure,
UnitOfReactivePower,
UnitOfSoundPressure,
UnitOfSpeed,
UnitOfTemperature,
@ -468,7 +468,7 @@ DEVICE_CLASS_UNITS: dict[NumberDeviceClass, set[type[StrEnum] | str | None]] = {
NumberDeviceClass.PRECIPITATION: set(UnitOfPrecipitationDepth),
NumberDeviceClass.PRECIPITATION_INTENSITY: set(UnitOfVolumetricFlux),
NumberDeviceClass.PRESSURE: set(UnitOfPressure),
NumberDeviceClass.REACTIVE_POWER: {POWER_VOLT_AMPERE_REACTIVE},
NumberDeviceClass.REACTIVE_POWER: {UnitOfReactivePower.VOLT_AMPERE_REACTIVE},
NumberDeviceClass.SIGNAL_STRENGTH: {
SIGNAL_STRENGTH_DECIBELS,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,

View File

@ -14,7 +14,6 @@ from homeassistant.const import (
CONCENTRATION_PARTS_PER_MILLION,
LIGHT_LUX,
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
SIGNAL_STRENGTH_DECIBELS,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
UnitOfApparentPower,
@ -31,6 +30,7 @@ from homeassistant.const import (
UnitOfPower,
UnitOfPrecipitationDepth,
UnitOfPressure,
UnitOfReactivePower,
UnitOfSoundPressure,
UnitOfSpeed,
UnitOfTemperature,
@ -563,7 +563,7 @@ DEVICE_CLASS_UNITS: dict[SensorDeviceClass, set[type[StrEnum] | str | None]] = {
SensorDeviceClass.PRECIPITATION: set(UnitOfPrecipitationDepth),
SensorDeviceClass.PRECIPITATION_INTENSITY: set(UnitOfVolumetricFlux),
SensorDeviceClass.PRESSURE: set(UnitOfPressure),
SensorDeviceClass.REACTIVE_POWER: {POWER_VOLT_AMPERE_REACTIVE},
SensorDeviceClass.REACTIVE_POWER: {UnitOfReactivePower.VOLT_AMPERE_REACTIVE},
SensorDeviceClass.SIGNAL_STRENGTH: {
SIGNAL_STRENGTH_DECIBELS,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,

View File

@ -15,7 +15,6 @@ from homeassistant.components.sensor import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
EntityCategory,
UnitOfApparentPower,
UnitOfElectricCurrent,
@ -23,6 +22,7 @@ from homeassistant.const import (
UnitOfEnergy,
UnitOfFrequency,
UnitOfPower,
UnitOfReactivePower,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant
@ -204,7 +204,7 @@ SENSOR_ENTITIES: dict[str, SensorEntityDescription] = {
"grid_reactive_power": SensorEntityDescription(
key="grid_reactive_power",
name="Grid Reactive Power",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.REACTIVE_POWER,
entity_registry_enabled_default=False,
@ -212,7 +212,7 @@ SENSOR_ENTITIES: dict[str, SensorEntityDescription] = {
"grid_reactive_power_l1": SensorEntityDescription(
key="grid_reactive_power_l1",
name="Grid Reactive Power L1",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.REACTIVE_POWER,
entity_registry_enabled_default=False,
@ -220,7 +220,7 @@ SENSOR_ENTITIES: dict[str, SensorEntityDescription] = {
"grid_reactive_power_l2": SensorEntityDescription(
key="grid_reactive_power_l2",
name="Grid Reactive Power L2",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.REACTIVE_POWER,
entity_registry_enabled_default=False,
@ -228,7 +228,7 @@ SENSOR_ENTITIES: dict[str, SensorEntityDescription] = {
"grid_reactive_power_l3": SensorEntityDescription(
key="grid_reactive_power_l3",
name="Grid Reactive Power L3",
native_unit_of_measurement=POWER_VOLT_AMPERE_REACTIVE,
native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.REACTIVE_POWER,
entity_registry_enabled_default=False,

View File

@ -22,7 +22,6 @@ from homeassistant.const import (
CONCENTRATION_PARTS_PER_MILLION,
LIGHT_LUX,
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
SIGNAL_STRENGTH_DECIBELS,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
EntityCategory,
@ -35,6 +34,7 @@ from homeassistant.const import (
UnitOfMass,
UnitOfPower,
UnitOfPressure,
UnitOfReactivePower,
UnitOfSpeed,
UnitOfTemperature,
)
@ -227,7 +227,7 @@ SENSOR_UNIT_MAP = {
hc.PERCENTAGE: PERCENTAGE,
hc.POWER_WATT: UnitOfPower.WATT,
hc.PRESSURE_HPA: UnitOfPressure.HPA,
hc.REACTIVE_POWER: POWER_VOLT_AMPERE_REACTIVE,
hc.REACTIVE_POWER: UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
hc.SIGNAL_STRENGTH_DECIBELS: SIGNAL_STRENGTH_DECIBELS,
hc.SIGNAL_STRENGTH_DECIBELS_MILLIWATT: SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
hc.SPEED_KILOMETERS_PER_HOUR: UnitOfSpeed.KILOMETERS_PER_HOUR,

View File

@ -673,8 +673,19 @@ _DEPRECATED_POWER_BTU_PER_HOUR: Final = DeprecatedConstantEnum(
)
"""Deprecated: please use UnitOfPower.BTU_PER_HOUR."""
# Reactive power units
POWER_VOLT_AMPERE_REACTIVE: Final = "var"
class UnitOfReactivePower(StrEnum):
"""Reactive power units."""
VOLT_AMPERE_REACTIVE = "var"
_DEPRECATED_POWER_VOLT_AMPERE_REACTIVE: Final = DeprecatedConstantEnum(
UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
"2025.9",
)
"""Deprecated: please use UnitOfReactivePower.VOLT_AMPERE_REACTIVE."""
# Energy units

View File

@ -712,7 +712,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'aabbccddeeff_active_reactive_power_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[HWE-KWH1-entity_ids7][sensor.device_reactive_power:state]
@ -721,7 +721,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power',
@ -2632,7 +2632,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'aabbccddeeff_active_reactive_power_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[HWE-KWH3-entity_ids8][sensor.device_reactive_power:state]
@ -2641,7 +2641,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power',
@ -2719,7 +2719,7 @@
'supported_features': 0,
'translation_key': 'active_reactive_power_phase_var',
'unique_id': 'aabbccddeeff_active_reactive_power_l1_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[HWE-KWH3-entity_ids8][sensor.device_reactive_power_phase_1:state]
@ -2728,7 +2728,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power phase 1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power_phase_1',
@ -2806,7 +2806,7 @@
'supported_features': 0,
'translation_key': 'active_reactive_power_phase_var',
'unique_id': 'aabbccddeeff_active_reactive_power_l2_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[HWE-KWH3-entity_ids8][sensor.device_reactive_power_phase_2:state]
@ -2815,7 +2815,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power phase 2',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power_phase_2',
@ -2893,7 +2893,7 @@
'supported_features': 0,
'translation_key': 'active_reactive_power_phase_var',
'unique_id': 'aabbccddeeff_active_reactive_power_l3_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[HWE-KWH3-entity_ids8][sensor.device_reactive_power_phase_3:state]
@ -2902,7 +2902,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power phase 3',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power_phase_3',
@ -14905,7 +14905,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'aabbccddeeff_active_reactive_power_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[HWE-SKT-21-entity_ids3][sensor.device_reactive_power:state]
@ -14914,7 +14914,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power',
@ -16200,7 +16200,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'aabbccddeeff_active_reactive_power_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[SDM230-entity_ids5][sensor.device_reactive_power:state]
@ -16209,7 +16209,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power',
@ -18120,7 +18120,7 @@
'supported_features': 0,
'translation_key': None,
'unique_id': 'aabbccddeeff_active_reactive_power_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[SDM630-entity_ids6][sensor.device_reactive_power:state]
@ -18129,7 +18129,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power',
@ -18207,7 +18207,7 @@
'supported_features': 0,
'translation_key': 'active_reactive_power_phase_var',
'unique_id': 'aabbccddeeff_active_reactive_power_l1_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[SDM630-entity_ids6][sensor.device_reactive_power_phase_1:state]
@ -18216,7 +18216,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power phase 1',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power_phase_1',
@ -18294,7 +18294,7 @@
'supported_features': 0,
'translation_key': 'active_reactive_power_phase_var',
'unique_id': 'aabbccddeeff_active_reactive_power_l2_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[SDM630-entity_ids6][sensor.device_reactive_power_phase_2:state]
@ -18303,7 +18303,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power phase 2',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power_phase_2',
@ -18381,7 +18381,7 @@
'supported_features': 0,
'translation_key': 'active_reactive_power_phase_var',
'unique_id': 'aabbccddeeff_active_reactive_power_l3_var',
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
})
# ---
# name: test_sensors[SDM630-entity_ids6][sensor.device_reactive_power_phase_3:state]
@ -18390,7 +18390,7 @@
'device_class': 'reactive_power',
'friendly_name': 'Device Reactive power phase 3',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'var',
'unit_of_measurement': <UnitOfReactivePower.VOLT_AMPERE_REACTIVE: 'var'>,
}),
'context': <ANY>,
'entity_id': 'sensor.device_reactive_power_phase_3',

View File

@ -10,11 +10,11 @@ from homeassistant.const import (
CONCENTRATION_PARTS_PER_MILLION,
LIGHT_LUX,
PERCENTAGE,
POWER_VOLT_AMPERE_REACTIVE,
SIGNAL_STRENGTH_DECIBELS,
UnitOfApparentPower,
UnitOfFrequency,
UnitOfPressure,
UnitOfReactivePower,
UnitOfVolume,
)
@ -44,7 +44,7 @@ UNITS_OF_MEASUREMENT = {
SensorDeviceClass.ENERGY: "kWh", # energy (Wh/kWh/MWh)
SensorDeviceClass.FREQUENCY: UnitOfFrequency.GIGAHERTZ, # energy (Hz/kHz/MHz/GHz)
SensorDeviceClass.POWER_FACTOR: PERCENTAGE, # power factor (no unit, min: -1.0, max: 1.0)
SensorDeviceClass.REACTIVE_POWER: POWER_VOLT_AMPERE_REACTIVE, # reactive power (var)
SensorDeviceClass.REACTIVE_POWER: UnitOfReactivePower.VOLT_AMPERE_REACTIVE, # reactive power (var)
SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of vocs
SensorDeviceClass.VOLTAGE: "V", # voltage (V)
SensorDeviceClass.GAS: UnitOfVolume.CUBIC_METERS, # gas (m³)