diff --git a/homeassistant/components/number/const.py b/homeassistant/components/number/const.py index 55b8335acc5..d63f2ff1657 100644 --- a/homeassistant/components/number/const.py +++ b/homeassistant/components/number/const.py @@ -432,7 +432,7 @@ class NumberDeviceClass(StrEnum): Unit of measurement: UnitOfVolumeFlowRate - SI / metric: `m³/h`, `m³/min`, `m³/s`, `L/h`, `L/min`, `L/s`, `mL/s` - - USCS / imperial: `ft³/min`, `gal/min` + - USCS / imperial: `ft³/min`, `gal/min`, `gal/d` """ WATER = "water" diff --git a/homeassistant/components/sensor/const.py b/homeassistant/components/sensor/const.py index 2731e9f6b03..b9ded0dbe7b 100644 --- a/homeassistant/components/sensor/const.py +++ b/homeassistant/components/sensor/const.py @@ -468,7 +468,7 @@ class SensorDeviceClass(StrEnum): Unit of measurement: UnitOfVolumeFlowRate - SI / metric: `m³/h`, `m³/min`, `m³/s`, `L/h`, `L/min`, `L/s`, `mL/s` - - USCS / imperial: `ft³/min`, `gal/min` + - USCS / imperial: `ft³/min`, `gal/min`, `gal/d` """ WATER = "water" diff --git a/homeassistant/const.py b/homeassistant/const.py index 01da32e47d9..17426dd6344 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -653,6 +653,7 @@ class UnitOfVolumeFlowRate(StrEnum): LITERS_PER_SECOND = "L/s" GALLONS_PER_HOUR = "gal/h" GALLONS_PER_MINUTE = "gal/min" + GALLONS_PER_DAY = "gal/d" MILLILITERS_PER_SECOND = "mL/s" diff --git a/homeassistant/util/unit_conversion.py b/homeassistant/util/unit_conversion.py index b25895c3e8f..d1c77a89170 100644 --- a/homeassistant/util/unit_conversion.py +++ b/homeassistant/util/unit_conversion.py @@ -69,7 +69,8 @@ _HECTARE_TO_M2 = 100 * 100 # 1 hectare = 10,000 m² _MIN_TO_SEC = 60 # 1 min = 60 seconds _HRS_TO_MINUTES = 60 # 1 hr = 60 minutes _HRS_TO_SECS = _HRS_TO_MINUTES * _MIN_TO_SEC # 1 hr = 60 minutes = 3600 seconds -_DAYS_TO_SECS = 24 * _HRS_TO_SECS # 1 day = 24 hours = 86400 seconds +_DAYS_TO_HRS = 24 # 1 day = 24 hours +_DAYS_TO_SECS = _DAYS_TO_HRS * _HRS_TO_SECS # 1 day = 24 hours = 86400 seconds # Energy conversion constants _WH_TO_J = 3600 # 1 Wh = 3600 J @@ -852,6 +853,7 @@ class VolumeFlowRateConverter(BaseUnitConverter): UnitOfVolumeFlowRate.GALLONS_PER_HOUR: 1 / _GALLON_TO_CUBIC_METER, UnitOfVolumeFlowRate.GALLONS_PER_MINUTE: 1 / (_HRS_TO_MINUTES * _GALLON_TO_CUBIC_METER), + UnitOfVolumeFlowRate.GALLONS_PER_DAY: _DAYS_TO_HRS / _GALLON_TO_CUBIC_METER, UnitOfVolumeFlowRate.MILLILITERS_PER_SECOND: 1 / (_HRS_TO_SECS * _ML_TO_CUBIC_METER), } @@ -865,6 +867,7 @@ class VolumeFlowRateConverter(BaseUnitConverter): UnitOfVolumeFlowRate.LITERS_PER_SECOND, UnitOfVolumeFlowRate.GALLONS_PER_HOUR, UnitOfVolumeFlowRate.GALLONS_PER_MINUTE, + UnitOfVolumeFlowRate.GALLONS_PER_DAY, UnitOfVolumeFlowRate.MILLILITERS_PER_SECOND, } diff --git a/tests/util/test_unit_conversion.py b/tests/util/test_unit_conversion.py index 345c0bbfd51..8a3ce093935 100644 --- a/tests/util/test_unit_conversion.py +++ b/tests/util/test_unit_conversion.py @@ -1054,6 +1054,12 @@ _CONVERTED_VALUE: dict[ 10, UnitOfVolumeFlowRate.LITERS_PER_SECOND, ), + ( + 24, + UnitOfVolumeFlowRate.GALLONS_PER_DAY, + 1, + UnitOfVolumeFlowRate.GALLONS_PER_HOUR, + ), ], }