From fbcb31b1030e51cab2aac95484c4008fab40fbe2 Mon Sep 17 00:00:00 2001 From: Robert Resch Date: Wed, 27 Dec 2023 09:04:25 +0100 Subject: [PATCH] Deprecate deprecated unit of measurement constants (#106455) --- homeassistant/const.py | 452 ++++++++++++++---- homeassistant/core.py | 5 +- .../geo_json_events/test_geo_location.py | 8 +- .../specific_devices/test_connectsense.py | 30 +- .../specific_devices/test_koogeek_sw2.py | 4 +- .../specific_devices/test_vocolinc_vp3.py | 4 +- tests/helpers/test_template.py | 4 +- tests/test_const.py | 103 +++- .../custom_components/test/sensor.py | 12 +- 9 files changed, 479 insertions(+), 143 deletions(-) diff --git a/homeassistant/const.py b/homeassistant/const.py index 1a5965ca713..f6d479aeb42 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -621,7 +621,10 @@ class UnitOfApparentPower(StrEnum): VOLT_AMPERE = "VA" -POWER_VOLT_AMPERE: Final = "VA" +_DEPRECATED_POWER_VOLT_AMPERE: Final = ( + UnitOfApparentPower.VOLT_AMPERE, + "2025.1", +) """Deprecated: please use UnitOfApparentPower.VOLT_AMPERE.""" @@ -634,11 +637,20 @@ class UnitOfPower(StrEnum): BTU_PER_HOUR = "BTU/h" -POWER_WATT: Final = "W" +_DEPRECATED_POWER_WATT: Final = ( + UnitOfPower.WATT, + "2025.1", +) """Deprecated: please use UnitOfPower.WATT.""" -POWER_KILO_WATT: Final = "kW" +_DEPRECATED_POWER_KILO_WATT: Final = ( + UnitOfPower.KILO_WATT, + "2025.1", +) """Deprecated: please use UnitOfPower.KILO_WATT.""" -POWER_BTU_PER_HOUR: Final = "BTU/h" +_DEPRECATED_POWER_BTU_PER_HOUR: Final = ( + UnitOfPower.BTU_PER_HOUR, + "2025.1", +) """Deprecated: please use UnitOfPower.BTU_PER_HOUR.""" # Reactive power units @@ -656,11 +668,20 @@ class UnitOfEnergy(StrEnum): WATT_HOUR = "Wh" -ENERGY_KILO_WATT_HOUR: Final = "kWh" +_DEPRECATED_ENERGY_KILO_WATT_HOUR: Final = ( + UnitOfEnergy.KILO_WATT_HOUR, + "2025.1", +) """Deprecated: please use UnitOfEnergy.KILO_WATT_HOUR.""" -ENERGY_MEGA_WATT_HOUR: Final = "MWh" +_DEPRECATED_ENERGY_MEGA_WATT_HOUR: Final = ( + UnitOfEnergy.MEGA_WATT_HOUR, + "2025.1", +) """Deprecated: please use UnitOfEnergy.MEGA_WATT_HOUR.""" -ENERGY_WATT_HOUR: Final = "Wh" +_DEPRECATED_ENERGY_WATT_HOUR: Final = ( + UnitOfEnergy.WATT_HOUR, + "2025.1", +) """Deprecated: please use UnitOfEnergy.WATT_HOUR.""" @@ -672,9 +693,15 @@ class UnitOfElectricCurrent(StrEnum): AMPERE = "A" -ELECTRIC_CURRENT_MILLIAMPERE: Final = "mA" +_DEPRECATED_ELECTRIC_CURRENT_MILLIAMPERE: Final = ( + UnitOfElectricCurrent.MILLIAMPERE, + "2025.1", +) """Deprecated: please use UnitOfElectricCurrent.MILLIAMPERE.""" -ELECTRIC_CURRENT_AMPERE: Final = "A" +_DEPRECATED_ELECTRIC_CURRENT_AMPERE: Final = ( + UnitOfElectricCurrent.AMPERE, + "2025.1", +) """Deprecated: please use UnitOfElectricCurrent.AMPERE.""" @@ -686,9 +713,15 @@ class UnitOfElectricPotential(StrEnum): VOLT = "V" -ELECTRIC_POTENTIAL_MILLIVOLT: Final = "mV" +_DEPRECATED_ELECTRIC_POTENTIAL_MILLIVOLT: Final = ( + UnitOfElectricPotential.MILLIVOLT, + "2025.1", +) """Deprecated: please use UnitOfElectricPotential.MILLIVOLT.""" -ELECTRIC_POTENTIAL_VOLT: Final = "V" +_DEPRECATED_ELECTRIC_POTENTIAL_VOLT: Final = ( + UnitOfElectricPotential.VOLT, + "2025.1", +) """Deprecated: please use UnitOfElectricPotential.VOLT.""" # Degree units @@ -709,11 +742,20 @@ class UnitOfTemperature(StrEnum): KELVIN = "K" -TEMP_CELSIUS: Final = "°C" +_DEPRECATED_TEMP_CELSIUS: Final = ( + UnitOfTemperature.CELSIUS, + "2025.1", +) """Deprecated: please use UnitOfTemperature.CELSIUS""" -TEMP_FAHRENHEIT: Final = "°F" +_DEPRECATED_TEMP_FAHRENHEIT: Final = ( + UnitOfTemperature.FAHRENHEIT, + "2025.1", +) """Deprecated: please use UnitOfTemperature.FAHRENHEIT""" -TEMP_KELVIN: Final = "K" +_DEPRECATED_TEMP_KELVIN: Final = ( + UnitOfTemperature.KELVIN, + "2025.1", +) """Deprecated: please use UnitOfTemperature.KELVIN""" @@ -732,23 +774,50 @@ class UnitOfTime(StrEnum): YEARS = "y" -TIME_MICROSECONDS: Final = "μs" +_DEPRECATED_TIME_MICROSECONDS: Final = ( + UnitOfTime.MICROSECONDS, + "2025.1", +) """Deprecated: please use UnitOfTime.MICROSECONDS.""" -TIME_MILLISECONDS: Final = "ms" +_DEPRECATED_TIME_MILLISECONDS: Final = ( + UnitOfTime.MILLISECONDS, + "2025.1", +) """Deprecated: please use UnitOfTime.MILLISECONDS.""" -TIME_SECONDS: Final = "s" +_DEPRECATED_TIME_SECONDS: Final = ( + UnitOfTime.SECONDS, + "2025.1", +) """Deprecated: please use UnitOfTime.SECONDS.""" -TIME_MINUTES: Final = "min" +_DEPRECATED_TIME_MINUTES: Final = ( + UnitOfTime.MINUTES, + "2025.1", +) """Deprecated: please use UnitOfTime.MINUTES.""" -TIME_HOURS: Final = "h" +_DEPRECATED_TIME_HOURS: Final = ( + UnitOfTime.HOURS, + "2025.1", +) """Deprecated: please use UnitOfTime.HOURS.""" -TIME_DAYS: Final = "d" +_DEPRECATED_TIME_DAYS: Final = ( + UnitOfTime.DAYS, + "2025.1", +) """Deprecated: please use UnitOfTime.DAYS.""" -TIME_WEEKS: Final = "w" +_DEPRECATED_TIME_WEEKS: Final = ( + UnitOfTime.WEEKS, + "2025.1", +) """Deprecated: please use UnitOfTime.WEEKS.""" -TIME_MONTHS: Final = "m" +_DEPRECATED_TIME_MONTHS: Final = ( + UnitOfTime.MONTHS, + "2025.1", +) """Deprecated: please use UnitOfTime.MONTHS.""" -TIME_YEARS: Final = "y" +_DEPRECATED_TIME_YEARS: Final = ( + UnitOfTime.YEARS, + "2025.1", +) """Deprecated: please use UnitOfTime.YEARS.""" @@ -766,21 +835,45 @@ class UnitOfLength(StrEnum): MILES = "mi" -LENGTH_MILLIMETERS: Final = "mm" +_DEPRECATED_LENGTH_MILLIMETERS: Final = ( + UnitOfLength.MILLIMETERS, + "2025.1", +) """Deprecated: please use UnitOfLength.MILLIMETERS.""" -LENGTH_CENTIMETERS: Final = "cm" +_DEPRECATED_LENGTH_CENTIMETERS: Final = ( + UnitOfLength.CENTIMETERS, + "2025.1", +) """Deprecated: please use UnitOfLength.CENTIMETERS.""" -LENGTH_METERS: Final = "m" +_DEPRECATED_LENGTH_METERS: Final = ( + UnitOfLength.METERS, + "2025.1", +) """Deprecated: please use UnitOfLength.METERS.""" -LENGTH_KILOMETERS: Final = "km" +_DEPRECATED_LENGTH_KILOMETERS: Final = ( + UnitOfLength.KILOMETERS, + "2025.1", +) """Deprecated: please use UnitOfLength.KILOMETERS.""" -LENGTH_INCHES: Final = "in" +_DEPRECATED_LENGTH_INCHES: Final = ( + UnitOfLength.INCHES, + "2025.1", +) """Deprecated: please use UnitOfLength.INCHES.""" -LENGTH_FEET: Final = "ft" +_DEPRECATED_LENGTH_FEET: Final = ( + UnitOfLength.FEET, + "2025.1", +) """Deprecated: please use UnitOfLength.FEET.""" -LENGTH_YARD: Final = "yd" +_DEPRECATED_LENGTH_YARD: Final = ( + UnitOfLength.YARDS, + "2025.1", +) """Deprecated: please use UnitOfLength.YARDS.""" -LENGTH_MILES: Final = "mi" +_DEPRECATED_LENGTH_MILES: Final = ( + UnitOfLength.MILES, + "2025.1", +) """Deprecated: please use UnitOfLength.MILES.""" @@ -794,13 +887,25 @@ class UnitOfFrequency(StrEnum): GIGAHERTZ = "GHz" -FREQUENCY_HERTZ: Final = "Hz" +_DEPRECATED_FREQUENCY_HERTZ: Final = ( + UnitOfFrequency.HERTZ, + "2025.1", +) """Deprecated: please use UnitOfFrequency.HERTZ""" -FREQUENCY_KILOHERTZ: Final = "kHz" +_DEPRECATED_FREQUENCY_KILOHERTZ: Final = ( + UnitOfFrequency.KILOHERTZ, + "2025.1", +) """Deprecated: please use UnitOfFrequency.KILOHERTZ""" -FREQUENCY_MEGAHERTZ: Final = "MHz" +_DEPRECATED_FREQUENCY_MEGAHERTZ: Final = ( + UnitOfFrequency.MEGAHERTZ, + "2025.1", +) """Deprecated: please use UnitOfFrequency.MEGAHERTZ""" -FREQUENCY_GIGAHERTZ: Final = "GHz" +_DEPRECATED_FREQUENCY_GIGAHERTZ: Final = ( + UnitOfFrequency.GIGAHERTZ, + "2025.1", +) """Deprecated: please use UnitOfFrequency.GIGAHERTZ""" @@ -819,23 +924,50 @@ class UnitOfPressure(StrEnum): PSI = "psi" -PRESSURE_PA: Final = "Pa" +_DEPRECATED_PRESSURE_PA: Final = ( + UnitOfPressure.PA, + "2025.1", +) """Deprecated: please use UnitOfPressure.PA""" -PRESSURE_HPA: Final = "hPa" +_DEPRECATED_PRESSURE_HPA: Final = ( + UnitOfPressure.HPA, + "2025.1", +) """Deprecated: please use UnitOfPressure.HPA""" -PRESSURE_KPA: Final = "kPa" +_DEPRECATED_PRESSURE_KPA: Final = ( + UnitOfPressure.KPA, + "2025.1", +) """Deprecated: please use UnitOfPressure.KPA""" -PRESSURE_BAR: Final = "bar" +_DEPRECATED_PRESSURE_BAR: Final = ( + UnitOfPressure.BAR, + "2025.1", +) """Deprecated: please use UnitOfPressure.BAR""" -PRESSURE_CBAR: Final = "cbar" +_DEPRECATED_PRESSURE_CBAR: Final = ( + UnitOfPressure.CBAR, + "2025.1", +) """Deprecated: please use UnitOfPressure.CBAR""" -PRESSURE_MBAR: Final = "mbar" +_DEPRECATED_PRESSURE_MBAR: Final = ( + UnitOfPressure.MBAR, + "2025.1", +) """Deprecated: please use UnitOfPressure.MBAR""" -PRESSURE_MMHG: Final = "mmHg" +_DEPRECATED_PRESSURE_MMHG: Final = ( + UnitOfPressure.MMHG, + "2025.1", +) """Deprecated: please use UnitOfPressure.MMHG""" -PRESSURE_INHG: Final = "inHg" +_DEPRECATED_PRESSURE_INHG: Final = ( + UnitOfPressure.INHG, + "2025.1", +) """Deprecated: please use UnitOfPressure.INHG""" -PRESSURE_PSI: Final = "psi" +_DEPRECATED_PRESSURE_PSI: Final = ( + UnitOfPressure.PSI, + "2025.1", +) """Deprecated: please use UnitOfPressure.PSI""" @@ -847,9 +979,15 @@ class UnitOfSoundPressure(StrEnum): WEIGHTED_DECIBEL_A = "dBA" -SOUND_PRESSURE_DB: Final = "dB" +_DEPRECATED_SOUND_PRESSURE_DB: Final = ( + UnitOfSoundPressure.DECIBEL, + "2025.1", +) """Deprecated: please use UnitOfSoundPressure.DECIBEL""" -SOUND_PRESSURE_WEIGHTED_DBA: Final = "dBa" +_DEPRECATED_SOUND_PRESSURE_WEIGHTED_DBA: Final = ( + UnitOfSoundPressure.WEIGHTED_DECIBEL_A, + "2025.1", +) """Deprecated: please use UnitOfSoundPressure.WEIGHTED_DECIBEL_A""" @@ -872,18 +1010,36 @@ class UnitOfVolume(StrEnum): British/Imperial fluid ounces are not yet supported""" -VOLUME_LITERS: Final = "L" +_DEPRECATED_VOLUME_LITERS: Final = ( + UnitOfVolume.LITERS, + "2025.1", +) """Deprecated: please use UnitOfVolume.LITERS""" -VOLUME_MILLILITERS: Final = "mL" +_DEPRECATED_VOLUME_MILLILITERS: Final = ( + UnitOfVolume.MILLILITERS, + "2025.1", +) """Deprecated: please use UnitOfVolume.MILLILITERS""" -VOLUME_CUBIC_METERS: Final = "m³" +_DEPRECATED_VOLUME_CUBIC_METERS: Final = ( + UnitOfVolume.CUBIC_METERS, + "2025.1", +) """Deprecated: please use UnitOfVolume.CUBIC_METERS""" -VOLUME_CUBIC_FEET: Final = "ft³" +_DEPRECATED_VOLUME_CUBIC_FEET: Final = ( + UnitOfVolume.CUBIC_FEET, + "2025.1", +) """Deprecated: please use UnitOfVolume.CUBIC_FEET""" -VOLUME_GALLONS: Final = "gal" +_DEPRECATED_VOLUME_GALLONS: Final = ( + UnitOfVolume.GALLONS, + "2025.1", +) """Deprecated: please use UnitOfVolume.GALLONS""" -VOLUME_FLUID_OUNCE: Final = "fl. oz." +_DEPRECATED_VOLUME_FLUID_OUNCE: Final = ( + UnitOfVolume.FLUID_OUNCES, + "2025.1", +) """Deprecated: please use UnitOfVolume.FLUID_OUNCES""" @@ -895,9 +1051,15 @@ class UnitOfVolumeFlowRate(StrEnum): CUBIC_FEET_PER_MINUTE = "ft³/m" -VOLUME_FLOW_RATE_CUBIC_METERS_PER_HOUR: Final = "m³/h" +_DEPRECATED_VOLUME_FLOW_RATE_CUBIC_METERS_PER_HOUR: Final = ( + UnitOfVolumeFlowRate.CUBIC_METERS_PER_HOUR, + "2025.1", +) """Deprecated: please use UnitOfVolumeFlowRate.CUBIC_METERS_PER_HOUR""" -VOLUME_FLOW_RATE_CUBIC_FEET_PER_MINUTE: Final = "ft³/m" +_DEPRECATED_VOLUME_FLOW_RATE_CUBIC_FEET_PER_MINUTE: Final = ( + UnitOfVolumeFlowRate.CUBIC_FEET_PER_MINUTE, + "2025.1", +) """Deprecated: please use UnitOfVolumeFlowRate.CUBIC_FEET_PER_MINUTE""" # Area units @@ -917,17 +1079,35 @@ class UnitOfMass(StrEnum): STONES = "st" -MASS_GRAMS: Final = "g" +_DEPRECATED_MASS_GRAMS: Final = ( + UnitOfMass.GRAMS, + "2025.1", +) """Deprecated: please use UnitOfMass.GRAMS""" -MASS_KILOGRAMS: Final = "kg" +_DEPRECATED_MASS_KILOGRAMS: Final = ( + UnitOfMass.KILOGRAMS, + "2025.1", +) """Deprecated: please use UnitOfMass.KILOGRAMS""" -MASS_MILLIGRAMS: Final = "mg" +_DEPRECATED_MASS_MILLIGRAMS: Final = ( + UnitOfMass.MILLIGRAMS, + "2025.1", +) """Deprecated: please use UnitOfMass.MILLIGRAMS""" -MASS_MICROGRAMS: Final = "µg" +_DEPRECATED_MASS_MICROGRAMS: Final = ( + UnitOfMass.MICROGRAMS, + "2025.1", +) """Deprecated: please use UnitOfMass.MICROGRAMS""" -MASS_OUNCES: Final = "oz" +_DEPRECATED_MASS_OUNCES: Final = ( + UnitOfMass.OUNCES, + "2025.1", +) """Deprecated: please use UnitOfMass.OUNCES""" -MASS_POUNDS: Final = "lb" +_DEPRECATED_MASS_POUNDS: Final = ( + UnitOfMass.POUNDS, + "2025.1", +) """Deprecated: please use UnitOfMass.POUNDS""" # Conductivity units @@ -955,9 +1135,15 @@ class UnitOfIrradiance(StrEnum): # Irradiation units -IRRADIATION_WATTS_PER_SQUARE_METER: Final = "W/m²" +_DEPRECATED_IRRADIATION_WATTS_PER_SQUARE_METER: Final = ( + UnitOfIrradiance.WATTS_PER_SQUARE_METER, + "2025.1", +) """Deprecated: please use UnitOfIrradiance.WATTS_PER_SQUARE_METER""" -IRRADIATION_BTUS_PER_HOUR_SQUARE_FOOT: Final = "BTU/(h×ft²)" +_DEPRECATED_IRRADIATION_BTUS_PER_HOUR_SQUARE_FOOT: Final = ( + UnitOfIrradiance.BTUS_PER_HOUR_SQUARE_FOOT, + "2025.1", +) """Deprecated: please use UnitOfIrradiance.BTUS_PER_HOUR_SQUARE_FOOT""" @@ -999,13 +1185,22 @@ class UnitOfPrecipitationDepth(StrEnum): # Precipitation units -PRECIPITATION_INCHES: Final = "in" +_DEPRECATED_PRECIPITATION_INCHES: Final = (UnitOfPrecipitationDepth.INCHES, "2025.1") """Deprecated: please use UnitOfPrecipitationDepth.INCHES""" -PRECIPITATION_MILLIMETERS: Final = "mm" +_DEPRECATED_PRECIPITATION_MILLIMETERS: Final = ( + UnitOfPrecipitationDepth.MILLIMETERS, + "2025.1", +) """Deprecated: please use UnitOfPrecipitationDepth.MILLIMETERS""" -PRECIPITATION_MILLIMETERS_PER_HOUR: Final = "mm/h" +_DEPRECATED_PRECIPITATION_MILLIMETERS_PER_HOUR: Final = ( + UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR, + "2025.1", +) """Deprecated: please use UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR""" -PRECIPITATION_INCHES_PER_HOUR: Final = "in/h" +_DEPRECATED_PRECIPITATION_INCHES_PER_HOUR: Final = ( + UnitOfVolumetricFlux.INCHES_PER_HOUR, + "2025.1", +) """Deprecated: please use UnitOfVolumetricFlux.INCHES_PER_HOUR""" # Concentration units @@ -1028,24 +1223,36 @@ class UnitOfSpeed(StrEnum): MILES_PER_HOUR = "mph" -SPEED_FEET_PER_SECOND: Final = "ft/s" +_DEPRECATED_SPEED_FEET_PER_SECOND: Final = (UnitOfSpeed.FEET_PER_SECOND, "2025.1") """Deprecated: please use UnitOfSpeed.FEET_PER_SECOND""" -SPEED_METERS_PER_SECOND: Final = "m/s" +_DEPRECATED_SPEED_METERS_PER_SECOND: Final = (UnitOfSpeed.METERS_PER_SECOND, "2025.1") """Deprecated: please use UnitOfSpeed.METERS_PER_SECOND""" -SPEED_KILOMETERS_PER_HOUR: Final = "km/h" +_DEPRECATED_SPEED_KILOMETERS_PER_HOUR: Final = ( + UnitOfSpeed.KILOMETERS_PER_HOUR, + "2025.1", +) """Deprecated: please use UnitOfSpeed.KILOMETERS_PER_HOUR""" -SPEED_KNOTS: Final = "kn" +_DEPRECATED_SPEED_KNOTS: Final = (UnitOfSpeed.KNOTS, "2025.1") """Deprecated: please use UnitOfSpeed.KNOTS""" -SPEED_MILES_PER_HOUR: Final = "mph" +_DEPRECATED_SPEED_MILES_PER_HOUR: Final = (UnitOfSpeed.MILES_PER_HOUR, "2025.1") """Deprecated: please use UnitOfSpeed.MILES_PER_HOUR""" -SPEED_MILLIMETERS_PER_DAY: Final = "mm/d" +_DEPRECATED_SPEED_MILLIMETERS_PER_DAY: Final = ( + UnitOfVolumetricFlux.MILLIMETERS_PER_DAY, + "2025.1", +) """Deprecated: please use UnitOfVolumetricFlux.MILLIMETERS_PER_DAY""" -SPEED_INCHES_PER_DAY: Final = "in/d" +_DEPRECATED_SPEED_INCHES_PER_DAY: Final = ( + UnitOfVolumetricFlux.INCHES_PER_DAY, + "2025.1", +) """Deprecated: please use UnitOfVolumetricFlux.INCHES_PER_DAY""" -SPEED_INCHES_PER_HOUR: Final = "in/h" +_DEPRECATED_SPEED_INCHES_PER_HOUR: Final = ( + UnitOfVolumetricFlux.INCHES_PER_HOUR, + "2025.1", +) """Deprecated: please use UnitOfVolumetricFlux.INCHES_PER_HOUR""" @@ -1081,47 +1288,47 @@ class UnitOfInformation(StrEnum): YOBIBYTES = "YiB" -DATA_BITS: Final = "bit" +_DEPRECATED_DATA_BITS: Final = (UnitOfInformation.BITS, "2025.1") """Deprecated: please use UnitOfInformation.BITS""" -DATA_KILOBITS: Final = "kbit" +_DEPRECATED_DATA_KILOBITS: Final = (UnitOfInformation.KILOBITS, "2025.1") """Deprecated: please use UnitOfInformation.KILOBITS""" -DATA_MEGABITS: Final = "Mbit" +_DEPRECATED_DATA_MEGABITS: Final = (UnitOfInformation.MEGABITS, "2025.1") """Deprecated: please use UnitOfInformation.MEGABITS""" -DATA_GIGABITS: Final = "Gbit" +_DEPRECATED_DATA_GIGABITS: Final = (UnitOfInformation.GIGABITS, "2025.1") """Deprecated: please use UnitOfInformation.GIGABITS""" -DATA_BYTES: Final = "B" +_DEPRECATED_DATA_BYTES: Final = (UnitOfInformation.BYTES, "2025.1") """Deprecated: please use UnitOfInformation.BYTES""" -DATA_KILOBYTES: Final = "kB" +_DEPRECATED_DATA_KILOBYTES: Final = (UnitOfInformation.KILOBYTES, "2025.1") """Deprecated: please use UnitOfInformation.KILOBYTES""" -DATA_MEGABYTES: Final = "MB" +_DEPRECATED_DATA_MEGABYTES: Final = (UnitOfInformation.MEGABYTES, "2025.1") """Deprecated: please use UnitOfInformation.MEGABYTES""" -DATA_GIGABYTES: Final = "GB" +_DEPRECATED_DATA_GIGABYTES: Final = (UnitOfInformation.GIGABYTES, "2025.1") """Deprecated: please use UnitOfInformation.GIGABYTES""" -DATA_TERABYTES: Final = "TB" +_DEPRECATED_DATA_TERABYTES: Final = (UnitOfInformation.TERABYTES, "2025.1") """Deprecated: please use UnitOfInformation.TERABYTES""" -DATA_PETABYTES: Final = "PB" +_DEPRECATED_DATA_PETABYTES: Final = (UnitOfInformation.PETABYTES, "2025.1") """Deprecated: please use UnitOfInformation.PETABYTES""" -DATA_EXABYTES: Final = "EB" +_DEPRECATED_DATA_EXABYTES: Final = (UnitOfInformation.EXABYTES, "2025.1") """Deprecated: please use UnitOfInformation.EXABYTES""" -DATA_ZETTABYTES: Final = "ZB" +_DEPRECATED_DATA_ZETTABYTES: Final = (UnitOfInformation.ZETTABYTES, "2025.1") """Deprecated: please use UnitOfInformation.ZETTABYTES""" -DATA_YOTTABYTES: Final = "YB" +_DEPRECATED_DATA_YOTTABYTES: Final = (UnitOfInformation.YOTTABYTES, "2025.1") """Deprecated: please use UnitOfInformation.YOTTABYTES""" -DATA_KIBIBYTES: Final = "KiB" +_DEPRECATED_DATA_KIBIBYTES: Final = (UnitOfInformation.KIBIBYTES, "2025.1") """Deprecated: please use UnitOfInformation.KIBIBYTES""" -DATA_MEBIBYTES: Final = "MiB" +_DEPRECATED_DATA_MEBIBYTES: Final = (UnitOfInformation.MEBIBYTES, "2025.1") """Deprecated: please use UnitOfInformation.MEBIBYTES""" -DATA_GIBIBYTES: Final = "GiB" +_DEPRECATED_DATA_GIBIBYTES: Final = (UnitOfInformation.GIBIBYTES, "2025.1") """Deprecated: please use UnitOfInformation.GIBIBYTES""" -DATA_TEBIBYTES: Final = "TiB" +_DEPRECATED_DATA_TEBIBYTES: Final = (UnitOfInformation.TEBIBYTES, "2025.1") """Deprecated: please use UnitOfInformation.TEBIBYTES""" -DATA_PEBIBYTES: Final = "PiB" +_DEPRECATED_DATA_PEBIBYTES: Final = (UnitOfInformation.PEBIBYTES, "2025.1") """Deprecated: please use UnitOfInformation.PEBIBYTES""" -DATA_EXBIBYTES: Final = "EiB" +_DEPRECATED_DATA_EXBIBYTES: Final = (UnitOfInformation.EXBIBYTES, "2025.1") """Deprecated: please use UnitOfInformation.EXBIBYTES""" -DATA_ZEBIBYTES: Final = "ZiB" +_DEPRECATED_DATA_ZEBIBYTES: Final = (UnitOfInformation.ZEBIBYTES, "2025.1") """Deprecated: please use UnitOfInformation.ZEBIBYTES""" -DATA_YOBIBYTES: Final = "YiB" +_DEPRECATED_DATA_YOBIBYTES: Final = (UnitOfInformation.YOBIBYTES, "2025.1") """Deprecated: please use UnitOfInformation.YOBIBYTES""" @@ -1142,27 +1349,60 @@ class UnitOfDataRate(StrEnum): GIBIBYTES_PER_SECOND = "GiB/s" -DATA_RATE_BITS_PER_SECOND: Final = "bit/s" +_DEPRECATED_DATA_RATE_BITS_PER_SECOND: Final = ( + UnitOfDataRate.BITS_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.BITS_PER_SECOND""" -DATA_RATE_KILOBITS_PER_SECOND: Final = "kbit/s" +_DEPRECATED_DATA_RATE_KILOBITS_PER_SECOND: Final = ( + UnitOfDataRate.KILOBITS_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.KILOBITS_PER_SECOND""" -DATA_RATE_MEGABITS_PER_SECOND: Final = "Mbit/s" +_DEPRECATED_DATA_RATE_MEGABITS_PER_SECOND: Final = ( + UnitOfDataRate.MEGABITS_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.MEGABITS_PER_SECOND""" -DATA_RATE_GIGABITS_PER_SECOND: Final = "Gbit/s" +_DEPRECATED_DATA_RATE_GIGABITS_PER_SECOND: Final = ( + UnitOfDataRate.GIGABITS_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.GIGABITS_PER_SECOND""" -DATA_RATE_BYTES_PER_SECOND: Final = "B/s" +_DEPRECATED_DATA_RATE_BYTES_PER_SECOND: Final = ( + UnitOfDataRate.BYTES_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.BYTES_PER_SECOND""" -DATA_RATE_KILOBYTES_PER_SECOND: Final = "kB/s" +_DEPRECATED_DATA_RATE_KILOBYTES_PER_SECOND: Final = ( + UnitOfDataRate.KILOBYTES_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.KILOBYTES_PER_SECOND""" -DATA_RATE_MEGABYTES_PER_SECOND: Final = "MB/s" +_DEPRECATED_DATA_RATE_MEGABYTES_PER_SECOND: Final = ( + UnitOfDataRate.MEGABYTES_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.MEGABYTES_PER_SECOND""" -DATA_RATE_GIGABYTES_PER_SECOND: Final = "GB/s" +_DEPRECATED_DATA_RATE_GIGABYTES_PER_SECOND: Final = ( + UnitOfDataRate.GIGABYTES_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.GIGABYTES_PER_SECOND""" -DATA_RATE_KIBIBYTES_PER_SECOND: Final = "KiB/s" +_DEPRECATED_DATA_RATE_KIBIBYTES_PER_SECOND: Final = ( + UnitOfDataRate.KIBIBYTES_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.KIBIBYTES_PER_SECOND""" -DATA_RATE_MEBIBYTES_PER_SECOND: Final = "MiB/s" +_DEPRECATED_DATA_RATE_MEBIBYTES_PER_SECOND: Final = ( + UnitOfDataRate.MEBIBYTES_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.MEBIBYTES_PER_SECOND""" -DATA_RATE_GIBIBYTES_PER_SECOND: Final = "GiB/s" +_DEPRECATED_DATA_RATE_GIBIBYTES_PER_SECOND: Final = ( + UnitOfDataRate.GIBIBYTES_PER_SECOND, + "2025.1", +) """Deprecated: please use UnitOfDataRate.GIBIBYTES_PER_SECOND""" diff --git a/homeassistant/core.py b/homeassistant/core.py index da49f30d58a..fc0bc5ebe5a 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -67,10 +67,10 @@ from .const import ( EVENT_SERVICE_REGISTERED, EVENT_SERVICE_REMOVED, EVENT_STATE_CHANGED, - LENGTH_METERS, MATCH_ALL, MAX_LENGTH_EVENT_EVENT_TYPE, MAX_LENGTH_STATE_STATE, + UnitOfLength, __version__, ) from .exceptions import ( @@ -2275,7 +2275,8 @@ class Config: Async friendly. """ return self.units.length( - location.distance(self.latitude, self.longitude, lat, lon), LENGTH_METERS + location.distance(self.latitude, self.longitude, lat, lon), + UnitOfLength.METERS, ) def path(self, *path: str) -> str: diff --git a/tests/components/geo_json_events/test_geo_location.py b/tests/components/geo_json_events/test_geo_location.py index a44357a5763..3875a525e73 100644 --- a/tests/components/geo_json_events/test_geo_location.py +++ b/tests/components/geo_json_events/test_geo_location.py @@ -20,7 +20,7 @@ from homeassistant.const import ( CONF_RADIUS, CONF_SCAN_INTERVAL, CONF_URL, - LENGTH_KILOMETERS, + UnitOfLength, ) from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er @@ -77,7 +77,7 @@ async def test_entity_lifecycle( ATTR_LATITUDE: -31.0, ATTR_LONGITUDE: 150.0, ATTR_FRIENDLY_NAME: "Title 1", - ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, + ATTR_UNIT_OF_MEASUREMENT: UnitOfLength.KILOMETERS, ATTR_SOURCE: "geo_json_events", } assert round(abs(float(state.state) - 15.5), 7) == 0 @@ -90,7 +90,7 @@ async def test_entity_lifecycle( ATTR_LATITUDE: -31.1, ATTR_LONGITUDE: 150.1, ATTR_FRIENDLY_NAME: "Title 2", - ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, + ATTR_UNIT_OF_MEASUREMENT: UnitOfLength.KILOMETERS, ATTR_SOURCE: "geo_json_events", } assert round(abs(float(state.state) - 20.5), 7) == 0 @@ -103,7 +103,7 @@ async def test_entity_lifecycle( ATTR_LATITUDE: -31.2, ATTR_LONGITUDE: 150.2, ATTR_FRIENDLY_NAME: "Title 3", - ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, + ATTR_UNIT_OF_MEASUREMENT: UnitOfLength.KILOMETERS, ATTR_SOURCE: "geo_json_events", } assert round(abs(float(state.state) - 25.5), 7) == 0 diff --git a/tests/components/homekit_controller/specific_devices/test_connectsense.py b/tests/components/homekit_controller/specific_devices/test_connectsense.py index 44157c32203..9e08c6fed0a 100644 --- a/tests/components/homekit_controller/specific_devices/test_connectsense.py +++ b/tests/components/homekit_controller/specific_devices/test_connectsense.py @@ -1,10 +1,6 @@ """Make sure that ConnectSense Smart Outlet2 / In-Wall Outlet is enumerated properly.""" from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import ( - ELECTRIC_CURRENT_AMPERE, - ENERGY_KILO_WATT_HOUR, - POWER_WATT, -) +from homeassistant.const import UnitOfElectricCurrent, UnitOfEnergy, UnitOfPower from homeassistant.core import HomeAssistant from ..common import ( @@ -39,7 +35,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Current", unique_id="00:00:00:00:00:00_1_13_18", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=ELECTRIC_CURRENT_AMPERE, + unit_of_measurement=UnitOfElectricCurrent.AMPERE, state="0.03", ), EntityTestInfo( @@ -47,7 +43,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Power", unique_id="00:00:00:00:00:00_1_13_19", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=POWER_WATT, + unit_of_measurement=UnitOfPower.WATT, state="0.8", ), EntityTestInfo( @@ -55,7 +51,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Energy kWh", unique_id="00:00:00:00:00:00_1_13_20", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=ENERGY_KILO_WATT_HOUR, + unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, state="379.69299", ), EntityTestInfo( @@ -69,7 +65,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Current", unique_id="00:00:00:00:00:00_1_25_30", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=ELECTRIC_CURRENT_AMPERE, + unit_of_measurement=UnitOfElectricCurrent.AMPERE, state="0.05", ), EntityTestInfo( @@ -77,7 +73,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Power", unique_id="00:00:00:00:00:00_1_25_31", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=POWER_WATT, + unit_of_measurement=UnitOfPower.WATT, state="0.8", ), EntityTestInfo( @@ -85,7 +81,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Energy kWh", unique_id="00:00:00:00:00:00_1_25_32", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=ENERGY_KILO_WATT_HOUR, + unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, state="175.85001", ), EntityTestInfo( @@ -118,7 +114,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Current", unique_id="00:00:00:00:00:00_1_13_18", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=ELECTRIC_CURRENT_AMPERE, + unit_of_measurement=UnitOfElectricCurrent.AMPERE, state="0.03", ), EntityTestInfo( @@ -126,7 +122,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Power", unique_id="00:00:00:00:00:00_1_13_19", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=POWER_WATT, + unit_of_measurement=UnitOfPower.WATT, state="0.8", ), EntityTestInfo( @@ -134,7 +130,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Energy kWh", unique_id="00:00:00:00:00:00_1_13_20", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=ENERGY_KILO_WATT_HOUR, + unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, state="379.69299", ), EntityTestInfo( @@ -148,7 +144,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Current", unique_id="00:00:00:00:00:00_1_25_30", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=ELECTRIC_CURRENT_AMPERE, + unit_of_measurement=UnitOfElectricCurrent.AMPERE, state="0.05", ), EntityTestInfo( @@ -156,7 +152,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Power", unique_id="00:00:00:00:00:00_1_25_31", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=POWER_WATT, + unit_of_measurement=UnitOfPower.WATT, state="0.8", ), EntityTestInfo( @@ -164,7 +160,7 @@ async def test_connectsense_setup(hass: HomeAssistant) -> None: friendly_name="InWall Outlet-0394DE Energy kWh", unique_id="00:00:00:00:00:00_1_25_32", capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=ENERGY_KILO_WATT_HOUR, + unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, state="175.85001", ), EntityTestInfo( diff --git a/tests/components/homekit_controller/specific_devices/test_koogeek_sw2.py b/tests/components/homekit_controller/specific_devices/test_koogeek_sw2.py index 44293ac439c..7114d138039 100644 --- a/tests/components/homekit_controller/specific_devices/test_koogeek_sw2.py +++ b/tests/components/homekit_controller/specific_devices/test_koogeek_sw2.py @@ -5,7 +5,7 @@ This Koogeek device has a custom power sensor that extra handling. It should have 2 entities - the actual switch and a sensor for power usage. """ from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import POWER_WATT +from homeassistant.const import UnitOfPower from homeassistant.core import HomeAssistant from ..common import ( @@ -51,7 +51,7 @@ async def test_koogeek_sw2_setup(hass: HomeAssistant) -> None: entity_id="sensor.koogeek_sw2_187a91_power", friendly_name="Koogeek-SW2-187A91 Power", unique_id="00:00:00:00:00:00_1_14_18", - unit_of_measurement=POWER_WATT, + unit_of_measurement=UnitOfPower.WATT, capabilities={"state_class": SensorStateClass.MEASUREMENT}, state="0", ), diff --git a/tests/components/homekit_controller/specific_devices/test_vocolinc_vp3.py b/tests/components/homekit_controller/specific_devices/test_vocolinc_vp3.py index 6d3c242c382..b42a7652c1c 100644 --- a/tests/components/homekit_controller/specific_devices/test_vocolinc_vp3.py +++ b/tests/components/homekit_controller/specific_devices/test_vocolinc_vp3.py @@ -1,6 +1,6 @@ """Make sure that existing VOCOlinc VP3 support isn't broken.""" from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import POWER_WATT +from homeassistant.const import UnitOfPower from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er @@ -58,7 +58,7 @@ async def test_vocolinc_vp3_setup( entity_id="sensor.original_vocolinc_vp3_power", friendly_name="VOCOlinc-VP3-123456 Power", unique_id="00:00:00:00:00:00_1_48_97", - unit_of_measurement=POWER_WATT, + unit_of_measurement=UnitOfPower.WATT, capabilities={"state_class": SensorStateClass.MEASUREMENT}, state="0", ), diff --git a/tests/helpers/test_template.py b/tests/helpers/test_template.py index 58d52dfc395..cdb272e2d97 100644 --- a/tests/helpers/test_template.py +++ b/tests/helpers/test_template.py @@ -22,13 +22,13 @@ from homeassistant.const import ( ATTR_UNIT_OF_MEASUREMENT, STATE_ON, STATE_UNAVAILABLE, - VOLUME_LITERS, UnitOfLength, UnitOfMass, UnitOfPrecipitationDepth, UnitOfPressure, UnitOfSpeed, UnitOfTemperature, + UnitOfVolume, ) from homeassistant.core import HomeAssistant from homeassistant.exceptions import TemplateError @@ -60,7 +60,7 @@ def _set_up_units(hass: HomeAssistant) -> None: mass=UnitOfMass.GRAMS, pressure=UnitOfPressure.PA, temperature=UnitOfTemperature.CELSIUS, - volume=VOLUME_LITERS, + volume=UnitOfVolume.LITERS, wind_speed=UnitOfSpeed.KILOMETERS_PER_HOUR, ) diff --git a/tests/test_const.py b/tests/test_const.py index b06b05b27bd..fedf35ae6d1 100644 --- a/tests/test_const.py +++ b/tests/test_const.py @@ -8,7 +8,10 @@ import pytest from homeassistant import const from homeassistant.components import sensor -from tests.common import import_and_test_deprecated_constant_enum +from tests.common import ( + import_and_test_deprecated_constant, + import_and_test_deprecated_constant_enum, +) def _create_tuples( @@ -55,7 +58,78 @@ def _create_tuples( sensor.SensorDeviceClass.VOLTAGE, ], "DEVICE_CLASS_", - ), + ) + + _create_tuples(const.UnitOfApparentPower, "POWER_") + + _create_tuples(const.UnitOfPower, "POWER_") + + _create_tuples( + [ + const.UnitOfEnergy.KILO_WATT_HOUR, + const.UnitOfEnergy.MEGA_WATT_HOUR, + const.UnitOfEnergy.WATT_HOUR, + ], + "ENERGY_", + ) + + _create_tuples(const.UnitOfElectricCurrent, "ELECTRIC_CURRENT_") + + _create_tuples(const.UnitOfElectricPotential, "ELECTRIC_POTENTIAL_") + + _create_tuples(const.UnitOfTemperature, "TEMP_") + + _create_tuples(const.UnitOfTime, "TIME_") + + _create_tuples( + [ + const.UnitOfLength.MILLIMETERS, + const.UnitOfLength.CENTIMETERS, + const.UnitOfLength.METERS, + const.UnitOfLength.KILOMETERS, + const.UnitOfLength.INCHES, + const.UnitOfLength.FEET, + const.UnitOfLength.MILES, + ], + "LENGTH_", + ) + + _create_tuples(const.UnitOfFrequency, "FREQUENCY_") + + _create_tuples(const.UnitOfPressure, "PRESSURE_") + + _create_tuples( + [ + const.UnitOfVolume.CUBIC_FEET, + const.UnitOfVolume.CUBIC_METERS, + const.UnitOfVolume.LITERS, + const.UnitOfVolume.MILLILITERS, + const.UnitOfVolume.GALLONS, + ], + "VOLUME_", + ) + + _create_tuples(const.UnitOfVolumeFlowRate, "VOLUME_FLOW_RATE_") + + _create_tuples( + [ + const.UnitOfMass.GRAMS, + const.UnitOfMass.KILOGRAMS, + const.UnitOfMass.MILLIGRAMS, + const.UnitOfMass.MICROGRAMS, + const.UnitOfMass.OUNCES, + const.UnitOfMass.POUNDS, + ], + "MASS_", + ) + + _create_tuples(const.UnitOfIrradiance, "IRRADIATION_") + + _create_tuples( + [ + const.UnitOfPrecipitationDepth.INCHES, + const.UnitOfPrecipitationDepth.MILLIMETERS, + const.UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR, + const.UnitOfVolumetricFlux.INCHES_PER_HOUR, + ], + "PRECIPITATION_", + ) + + _create_tuples(const.UnitOfSpeed, "SPEED_") + + _create_tuples( + [ + const.UnitOfVolumetricFlux.MILLIMETERS_PER_DAY, + const.UnitOfVolumetricFlux.INCHES_PER_DAY, + const.UnitOfVolumetricFlux.INCHES_PER_HOUR, + ], + "SPEED_", + ) + + _create_tuples(const.UnitOfInformation, "DATA_") + + _create_tuples(const.UnitOfDataRate, "DATA_RATE_"), ) def test_deprecated_constants( caplog: pytest.LogCaptureFixture, @@ -66,3 +140,28 @@ def test_deprecated_constants( import_and_test_deprecated_constant_enum( caplog, const, enum, constant_prefix, "2025.1" ) + + +@pytest.mark.parametrize( + ("replacement", "constant_name"), + [ + (const.UnitOfLength.YARDS, "LENGTH_YARD"), + (const.UnitOfSoundPressure.DECIBEL, "SOUND_PRESSURE_DB"), + (const.UnitOfSoundPressure.WEIGHTED_DECIBEL_A, "SOUND_PRESSURE_WEIGHTED_DBA"), + (const.UnitOfVolume.FLUID_OUNCES, "VOLUME_FLUID_OUNCE"), + ], +) +def test_deprecated_constant_name_changes( + caplog: pytest.LogCaptureFixture, + replacement: Enum, + constant_name: str, +) -> None: + """Test deprecated constants, where the name is not the same as the enum value.""" + import_and_test_deprecated_constant( + caplog, + const, + constant_name, + f"{replacement.__class__.__name__}.{replacement.name}", + replacement, + "2025.1", + ) diff --git a/tests/testing_config/custom_components/test/sensor.py b/tests/testing_config/custom_components/test/sensor.py index 4eae52fd4a5..d436a94e329 100644 --- a/tests/testing_config/custom_components/test/sensor.py +++ b/tests/testing_config/custom_components/test/sensor.py @@ -11,14 +11,14 @@ from homeassistant.components.sensor import ( from homeassistant.const import ( CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_MILLION, - FREQUENCY_GIGAHERTZ, LIGHT_LUX, PERCENTAGE, - POWER_VOLT_AMPERE, POWER_VOLT_AMPERE_REACTIVE, SIGNAL_STRENGTH_DECIBELS, - VOLUME_CUBIC_METERS, + UnitOfApparentPower, + UnitOfFrequency, UnitOfPressure, + UnitOfVolume, ) from tests.common import MockEntity @@ -26,7 +26,7 @@ from tests.common import MockEntity DEVICE_CLASSES.append("none") UNITS_OF_MEASUREMENT = { - SensorDeviceClass.APPARENT_POWER: POWER_VOLT_AMPERE, # apparent power (VA) + SensorDeviceClass.APPARENT_POWER: UnitOfApparentPower.VOLT_AMPERE, # apparent power (VA) SensorDeviceClass.BATTERY: PERCENTAGE, # % of battery that is left SensorDeviceClass.CO: CONCENTRATION_PARTS_PER_MILLION, # ppm of CO concentration SensorDeviceClass.CO2: CONCENTRATION_PARTS_PER_MILLION, # ppm of CO2 concentration @@ -47,12 +47,12 @@ UNITS_OF_MEASUREMENT = { SensorDeviceClass.POWER: "kW", # power (W/kW) SensorDeviceClass.CURRENT: "A", # current (A) SensorDeviceClass.ENERGY: "kWh", # energy (Wh/kWh/MWh) - SensorDeviceClass.FREQUENCY: FREQUENCY_GIGAHERTZ, # energy (Hz/kHz/MHz/GHz) + 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.VOLATILE_ORGANIC_COMPOUNDS: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of vocs SensorDeviceClass.VOLTAGE: "V", # voltage (V) - SensorDeviceClass.GAS: VOLUME_CUBIC_METERS, # gas (m³) + SensorDeviceClass.GAS: UnitOfVolume.CUBIC_METERS, # gas (m³) } ENTITIES = {}