diff --git a/homeassistant/const.py b/homeassistant/const.py index ec8c29de0b7ab..a6aa5eac06819 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -397,6 +397,7 @@ PRESSURE_MBAR: str = "mbar" PRESSURE_INHG: str = "inHg" PRESSURE_PSI: str = "psi" +PRESSURE_MMHG: str = "mmHg" # Volume units VOLUME_LITERS: str = "L" diff --git a/homeassistant/util/pressure.py b/homeassistant/util/pressure.py index 046b65122a972..41f5cc0b07aa7 100644 --- a/homeassistant/util/pressure.py +++ b/homeassistant/util/pressure.py @@ -11,11 +11,12 @@ PRESSURE_PA, PRESSURE_PSI, UNIT_NOT_RECOGNIZED_TEMPLATE, + PRESSURE_MMHG, ) _LOGGER = logging.getLogger(__name__) -VALID_UNITS = [PRESSURE_PA, PRESSURE_HPA, PRESSURE_MBAR, PRESSURE_INHG, PRESSURE_PSI] +VALID_UNITS = [PRESSURE_PA, PRESSURE_HPA, PRESSURE_MBAR, PRESSURE_INHG, PRESSURE_PSI, PRESSURE_MMHG] UNIT_CONVERSION = { PRESSURE_PA: 1, @@ -23,6 +24,7 @@ PRESSURE_MBAR: 1 / 100, PRESSURE_INHG: 1 / 3386.389, PRESSURE_PSI: 1 / 6894.757, + PRESSURE_MMHG: 1 / 133.3224, } diff --git a/tests/util/test_pressure.py b/tests/util/test_pressure.py index d92cc32542ff4..36c1f335af438 100644 --- a/tests/util/test_pressure.py +++ b/tests/util/test_pressure.py @@ -7,6 +7,7 @@ PRESSURE_MBAR, PRESSURE_PA, PRESSURE_PSI, + PRESSURE_MMHG, ) import homeassistant.util.pressure as pressure_util @@ -20,6 +21,7 @@ def test_convert_same_unit(): assert pressure_util.convert(3, PRESSURE_HPA, PRESSURE_HPA) == 3 assert pressure_util.convert(4, PRESSURE_MBAR, PRESSURE_MBAR) == 4 assert pressure_util.convert(5, PRESSURE_INHG, PRESSURE_INHG) == 5 + assert pressure_util.convert(6, PRESSURE_MMHG, PRESSURE_MMHG) == 6 def test_convert_invalid_unit(): @@ -69,3 +71,23 @@ def test_convert_from_inhg(): assert pressure_util.convert(inhg, PRESSURE_INHG, PRESSURE_MBAR) == pytest.approx( 1015.9167 ) + + +def test_convert_from_mmhg(): + """Test conversion from mmHg to other units.""" + mmhg = 745 + assert pressure_util.convert(mmhg, PRESSURE_MMHG, PRESSURE_PSI) == pytest.approx( + 14.40585734588 + ) + assert pressure_util.convert(mmhg, PRESSURE_MMHG, PRESSURE_HPA) == pytest.approx( + 993.25188 + ) + assert pressure_util.convert(mmhg, PRESSURE_MMHG, PRESSURE_PA) == pytest.approx( + 99325.188 + ) + assert pressure_util.convert(mmhg, PRESSURE_MMHG, PRESSURE_MBAR) == pytest.approx( + 993.25188 + ) + assert pressure_util.convert(mmhg, PRESSURE_MMHG, PRESSURE_INHG) == pytest.approx( + 29.33069826777 + )