Deprecate deprecated unit of measurement constants (#106455)

This commit is contained in:
Robert Resch 2023-12-27 09:04:25 +01:00 committed by GitHub
parent f92e732f27
commit fbcb31b103
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 479 additions and 143 deletions

View File

@ -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 = ""
_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"""

View File

@ -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:

View File

@ -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

View File

@ -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(

View File

@ -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",
),

View File

@ -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",
),

View File

@ -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,
)

View File

@ -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",
)

View File

@ -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 = {}