mirror of
https://github.com/home-assistant/core.git
synced 2026-02-15 07:36:16 +00:00
Add milliPascal (mPa) as unit of measurement for Pressure (#153087)
This commit is contained in:
@@ -330,7 +330,7 @@ class NumberDeviceClass(StrEnum):
|
||||
|
||||
Unit of measurement:
|
||||
- `mbar`, `cbar`, `bar`
|
||||
- `Pa`, `hPa`, `kPa`
|
||||
- `mPa`, `Pa`, `hPa`, `kPa`
|
||||
- `inHg`
|
||||
- `psi`
|
||||
- `inH₂O`
|
||||
|
||||
@@ -365,7 +365,7 @@ class SensorDeviceClass(StrEnum):
|
||||
|
||||
Unit of measurement:
|
||||
- `mbar`, `cbar`, `bar`
|
||||
- `Pa`, `hPa`, `kPa`
|
||||
- `mPa`, `Pa`, `hPa`, `kPa`
|
||||
- `inHg`
|
||||
- `psi`
|
||||
- `inH₂O`
|
||||
|
||||
@@ -613,6 +613,7 @@ class UnitOfFrequency(StrEnum):
|
||||
class UnitOfPressure(StrEnum):
|
||||
"""Pressure units."""
|
||||
|
||||
MILLIPASCAL = "mPa"
|
||||
PA = "Pa"
|
||||
HPA = "hPa"
|
||||
KPA = "kPa"
|
||||
|
||||
@@ -464,6 +464,7 @@ class PressureConverter(BaseUnitConverter):
|
||||
|
||||
UNIT_CLASS = "pressure"
|
||||
_UNIT_CONVERSION: dict[str | None, float] = {
|
||||
UnitOfPressure.MILLIPASCAL: 1 * 1000,
|
||||
UnitOfPressure.PA: 1,
|
||||
UnitOfPressure.HPA: 1 / 100,
|
||||
UnitOfPressure.KPA: 1 / 1000,
|
||||
@@ -478,6 +479,7 @@ class PressureConverter(BaseUnitConverter):
|
||||
/ (_MM_TO_M * 1000 * _STANDARD_GRAVITY * _MERCURY_DENSITY),
|
||||
}
|
||||
VALID_UNITS = {
|
||||
UnitOfPressure.MILLIPASCAL,
|
||||
UnitOfPressure.PA,
|
||||
UnitOfPressure.HPA,
|
||||
UnitOfPressure.KPA,
|
||||
|
||||
@@ -376,6 +376,7 @@ US_CUSTOMARY_SYSTEM = UnitSystem(
|
||||
("pressure", UnitOfPressure.MBAR): UnitOfPressure.PSI,
|
||||
("pressure", UnitOfPressure.CBAR): UnitOfPressure.PSI,
|
||||
("pressure", UnitOfPressure.BAR): UnitOfPressure.PSI,
|
||||
("pressure", UnitOfPressure.MILLIPASCAL): UnitOfPressure.PSI,
|
||||
("pressure", UnitOfPressure.PA): UnitOfPressure.PSI,
|
||||
("pressure", UnitOfPressure.HPA): UnitOfPressure.PSI,
|
||||
("pressure", UnitOfPressure.KPA): UnitOfPressure.PSI,
|
||||
|
||||
@@ -263,6 +263,7 @@ async def assert_validation_result(
|
||||
("distance", "mi", "mi", "mi", "distance", 13.050847, -10, 30),
|
||||
("humidity", "%", "%", "%", "unitless", 13.050847, -10, 30),
|
||||
("humidity", None, None, None, "unitless", 13.050847, -10, 30),
|
||||
("pressure", "mPa", "mPa", "mPa", "pressure", 13.050847, -10, 30),
|
||||
("pressure", "Pa", "Pa", "Pa", "pressure", 13.050847, -10, 30),
|
||||
("pressure", "hPa", "hPa", "hPa", "pressure", 13.050847, -10, 30),
|
||||
("pressure", "mbar", "mbar", "mbar", "pressure", 13.050847, -10, 30),
|
||||
@@ -2601,6 +2602,7 @@ async def test_compile_hourly_energy_statistics_multiple(
|
||||
("distance", "mi", 30),
|
||||
("humidity", "%", 30),
|
||||
("humidity", None, 30),
|
||||
("pressure", "mPa", 30),
|
||||
("pressure", "Pa", 30),
|
||||
("pressure", "hPa", 30),
|
||||
("pressure", "mbar", 30),
|
||||
@@ -2767,6 +2769,7 @@ async def test_compile_hourly_statistics_partially_unavailable(
|
||||
("distance", "mi", 30),
|
||||
("humidity", "%", 30),
|
||||
("humidity", None, 30),
|
||||
("pressure", "mPa", 30),
|
||||
("pressure", "Pa", 30),
|
||||
("pressure", "hPa", 30),
|
||||
("pressure", "mbar", 30),
|
||||
@@ -3045,6 +3048,15 @@ async def test_compile_hourly_statistics_fails(
|
||||
"volume",
|
||||
StatisticMeanType.ARITHMETIC,
|
||||
),
|
||||
(
|
||||
"measurement",
|
||||
"pressure",
|
||||
"mPa",
|
||||
"mPa",
|
||||
"mPa",
|
||||
"pressure",
|
||||
StatisticMeanType.ARITHMETIC,
|
||||
),
|
||||
(
|
||||
"measurement",
|
||||
"pressure",
|
||||
@@ -5125,7 +5137,7 @@ async def async_record_states(
|
||||
"pressure",
|
||||
"psi",
|
||||
"bar",
|
||||
"Pa, bar, cbar, hPa, inHg, inH₂O, kPa, mbar, mmHg, psi",
|
||||
"Pa, bar, cbar, hPa, inHg, inH₂O, kPa, mPa, mbar, mmHg, psi",
|
||||
),
|
||||
(
|
||||
METRIC_SYSTEM,
|
||||
@@ -5133,7 +5145,7 @@ async def async_record_states(
|
||||
"pressure",
|
||||
"Pa",
|
||||
"bar",
|
||||
"Pa, bar, cbar, hPa, inHg, inH₂O, kPa, mbar, mmHg, psi",
|
||||
"Pa, bar, cbar, hPa, inHg, inH₂O, kPa, mPa, mbar, mmHg, psi",
|
||||
),
|
||||
],
|
||||
)
|
||||
@@ -5364,7 +5376,7 @@ async def test_validate_statistics_unit_ignore_device_class(
|
||||
"pressure",
|
||||
"psi",
|
||||
"bar",
|
||||
"Pa, bar, cbar, hPa, inHg, inH₂O, kPa, mbar, mmHg, psi",
|
||||
"Pa, bar, cbar, hPa, inHg, inH₂O, kPa, mPa, mbar, mmHg, psi",
|
||||
),
|
||||
(
|
||||
METRIC_SYSTEM,
|
||||
@@ -5372,7 +5384,7 @@ async def test_validate_statistics_unit_ignore_device_class(
|
||||
"pressure",
|
||||
"Pa",
|
||||
"bar",
|
||||
"Pa, bar, cbar, hPa, inHg, inH₂O, kPa, mbar, mmHg, psi",
|
||||
"Pa, bar, cbar, hPa, inHg, inH₂O, kPa, mPa, mbar, mmHg, psi",
|
||||
),
|
||||
(
|
||||
METRIC_SYSTEM,
|
||||
|
||||
@@ -675,6 +675,7 @@ _CONVERTED_VALUE: dict[
|
||||
PressureConverter: [
|
||||
(1000, UnitOfPressure.HPA, 14.5037743897, UnitOfPressure.PSI),
|
||||
(1000, UnitOfPressure.HPA, 29.5299801647, UnitOfPressure.INHG),
|
||||
(1000, UnitOfPressure.HPA, 100000000, UnitOfPressure.MILLIPASCAL),
|
||||
(1000, UnitOfPressure.HPA, 100000, UnitOfPressure.PA),
|
||||
(1000, UnitOfPressure.HPA, 100, UnitOfPressure.KPA),
|
||||
(1000, UnitOfPressure.HPA, 1000, UnitOfPressure.MBAR),
|
||||
@@ -682,6 +683,7 @@ _CONVERTED_VALUE: dict[
|
||||
(1000, UnitOfPressure.HPA, 401.46307866177, UnitOfPressure.INH2O),
|
||||
(100, UnitOfPressure.KPA, 14.5037743897, UnitOfPressure.PSI),
|
||||
(100, UnitOfPressure.KPA, 29.5299801647, UnitOfPressure.INHG),
|
||||
(100, UnitOfPressure.KPA, 100000000, UnitOfPressure.MILLIPASCAL),
|
||||
(100, UnitOfPressure.KPA, 100000, UnitOfPressure.PA),
|
||||
(100, UnitOfPressure.KPA, 1000, UnitOfPressure.HPA),
|
||||
(100, UnitOfPressure.KPA, 1000, UnitOfPressure.MBAR),
|
||||
@@ -689,6 +691,7 @@ _CONVERTED_VALUE: dict[
|
||||
(100, UnitOfPressure.INH2O, 3.6127291827353996, UnitOfPressure.PSI),
|
||||
(100, UnitOfPressure.INH2O, 186.83201548767, UnitOfPressure.MMHG),
|
||||
(100, UnitOfPressure.INH2O, 7.3555912463681, UnitOfPressure.INHG),
|
||||
(100, UnitOfPressure.INH2O, 24908890.833333, UnitOfPressure.MILLIPASCAL),
|
||||
(100, UnitOfPressure.INH2O, 24908.890833333, UnitOfPressure.PA),
|
||||
(100, UnitOfPressure.INH2O, 249.08890833333, UnitOfPressure.HPA),
|
||||
(100, UnitOfPressure.INH2O, 249.08890833333, UnitOfPressure.MBAR),
|
||||
@@ -698,6 +701,7 @@ _CONVERTED_VALUE: dict[
|
||||
(30, UnitOfPressure.INHG, 101.59167, UnitOfPressure.KPA),
|
||||
(30, UnitOfPressure.INHG, 1015.9167, UnitOfPressure.HPA),
|
||||
(30, UnitOfPressure.INHG, 101591.67, UnitOfPressure.PA),
|
||||
(30, UnitOfPressure.INHG, 101591670, UnitOfPressure.MILLIPASCAL),
|
||||
(30, UnitOfPressure.INHG, 1015.9167, UnitOfPressure.MBAR),
|
||||
(30, UnitOfPressure.INHG, 101.59167, UnitOfPressure.CBAR),
|
||||
(30, UnitOfPressure.INHG, 762, UnitOfPressure.MMHG),
|
||||
@@ -706,6 +710,7 @@ _CONVERTED_VALUE: dict[
|
||||
(30, UnitOfPressure.MMHG, 3.99967, UnitOfPressure.KPA),
|
||||
(30, UnitOfPressure.MMHG, 39.9967, UnitOfPressure.HPA),
|
||||
(30, UnitOfPressure.MMHG, 3999.67, UnitOfPressure.PA),
|
||||
(30, UnitOfPressure.MMHG, 3999670, UnitOfPressure.MILLIPASCAL),
|
||||
(30, UnitOfPressure.MMHG, 39.9967, UnitOfPressure.MBAR),
|
||||
(30, UnitOfPressure.MMHG, 3.99967, UnitOfPressure.CBAR),
|
||||
(30, UnitOfPressure.MMHG, 1.181102, UnitOfPressure.INHG),
|
||||
|
||||
@@ -608,6 +608,7 @@ UNCONVERTED_UNITS_METRIC_SYSTEM = {
|
||||
UnitOfPressure.KPA,
|
||||
UnitOfPressure.MBAR,
|
||||
UnitOfPressure.MMHG,
|
||||
UnitOfPressure.MILLIPASCAL,
|
||||
UnitOfPressure.PA,
|
||||
),
|
||||
SensorDeviceClass.SPEED: (
|
||||
|
||||
Reference in New Issue
Block a user