diff --git a/homeassistant/components/number/const.py b/homeassistant/components/number/const.py index 93fbfac2ebb..22c1170b6b8 100644 --- a/homeassistant/components/number/const.py +++ b/homeassistant/components/number/const.py @@ -89,7 +89,7 @@ class NumberDeviceClass(StrEnum): APPARENT_POWER = "apparent_power" """Apparent power. - Unit of measurement: `mVA`, `VA` + Unit of measurement: `mVA`, `VA`, `kVA` """ AQI = "aqi" diff --git a/homeassistant/components/sensor/const.py b/homeassistant/components/sensor/const.py index af35b8127eb..94578a6f652 100644 --- a/homeassistant/components/sensor/const.py +++ b/homeassistant/components/sensor/const.py @@ -120,7 +120,7 @@ class SensorDeviceClass(StrEnum): APPARENT_POWER = "apparent_power" """Apparent power. - Unit of measurement: `mVA`, `VA` + Unit of measurement: `mVA`, `VA`, `kVA` """ AQI = "aqi" diff --git a/homeassistant/const.py b/homeassistant/const.py index f9c6d384922..3bd7cc51c7c 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -590,6 +590,7 @@ class UnitOfApparentPower(StrEnum): MILLIVOLT_AMPERE = "mVA" VOLT_AMPERE = "VA" + KILO_VOLT_AMPERE = "kVA" # Power units diff --git a/homeassistant/util/unit_conversion.py b/homeassistant/util/unit_conversion.py index 4d6d2365617..918b45ff3c9 100644 --- a/homeassistant/util/unit_conversion.py +++ b/homeassistant/util/unit_conversion.py @@ -391,10 +391,12 @@ class ApparentPowerConverter(BaseUnitConverter): _UNIT_CONVERSION: dict[str | None, float] = { UnitOfApparentPower.MILLIVOLT_AMPERE: 1 * 1000, UnitOfApparentPower.VOLT_AMPERE: 1, + UnitOfApparentPower.KILO_VOLT_AMPERE: 1 / 1000, } VALID_UNITS = { UnitOfApparentPower.MILLIVOLT_AMPERE, UnitOfApparentPower.VOLT_AMPERE, + UnitOfApparentPower.KILO_VOLT_AMPERE, } diff --git a/tests/util/test_unit_conversion.py b/tests/util/test_unit_conversion.py index d6f9d282174..476cb667d90 100644 --- a/tests/util/test_unit_conversion.py +++ b/tests/util/test_unit_conversion.py @@ -191,6 +191,24 @@ _CONVERTED_VALUE: dict[ 0.01, UnitOfApparentPower.VOLT_AMPERE, ), + ( + 10, + UnitOfApparentPower.MILLIVOLT_AMPERE, + 0.00001, + UnitOfApparentPower.KILO_VOLT_AMPERE, + ), + ( + 10, + UnitOfApparentPower.VOLT_AMPERE, + 0.01, + UnitOfApparentPower.KILO_VOLT_AMPERE, + ), + ( + 10, + UnitOfApparentPower.KILO_VOLT_AMPERE, + 10000, + UnitOfApparentPower.VOLT_AMPERE, + ), ], AreaConverter: [ # Square Meters to other units