From cca5964ac0839a3c07a336cda099c2275b2facde Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Tue, 29 Jun 2021 23:30:13 +0200 Subject: [PATCH] Normalize pressure statistics to Pa (#52298) --- homeassistant/components/sensor/recorder.py | 15 +++++++++++++++ homeassistant/util/pressure.py | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/sensor/recorder.py b/homeassistant/components/sensor/recorder.py index fc4cf9b74f2c..689620810357 100644 --- a/homeassistant/components/sensor/recorder.py +++ b/homeassistant/components/sensor/recorder.py @@ -24,9 +24,16 @@ from homeassistant.const import ( ENERGY_WATT_HOUR, POWER_KILO_WATT, POWER_WATT, + PRESSURE_BAR, + PRESSURE_HPA, + PRESSURE_INHG, + PRESSURE_MBAR, + PRESSURE_PA, + PRESSURE_PSI, ) from homeassistant.core import HomeAssistant, State import homeassistant.util.dt as dt_util +import homeassistant.util.pressure as pressure_util from . import DOMAIN @@ -51,6 +58,14 @@ UNIT_CONVERSIONS = { POWER_WATT: lambda x: x, POWER_KILO_WATT: lambda x: x * 1000, }, + DEVICE_CLASS_PRESSURE: { + PRESSURE_BAR: lambda x: x / pressure_util.UNIT_CONVERSION[PRESSURE_BAR], + PRESSURE_HPA: lambda x: x / pressure_util.UNIT_CONVERSION[PRESSURE_HPA], + PRESSURE_INHG: lambda x: x / pressure_util.UNIT_CONVERSION[PRESSURE_INHG], + PRESSURE_MBAR: lambda x: x / pressure_util.UNIT_CONVERSION[PRESSURE_MBAR], + PRESSURE_PA: lambda x: x / pressure_util.UNIT_CONVERSION[PRESSURE_PA], + PRESSURE_PSI: lambda x: x / pressure_util.UNIT_CONVERSION[PRESSURE_PSI], + }, } WARN_UNSUPPORTED_UNIT = set() diff --git a/homeassistant/util/pressure.py b/homeassistant/util/pressure.py index 22ad86a6896f..24ad3242921c 100644 --- a/homeassistant/util/pressure.py +++ b/homeassistant/util/pressure.py @@ -32,7 +32,7 @@ def convert(value: float, unit_1: str, unit_2: str) -> float: if not isinstance(value, Number): raise TypeError(f"{value} is not of numeric type") - if unit_1 == unit_2 or unit_1 not in VALID_UNITS: + if unit_1 == unit_2: return value pascals = value / UNIT_CONVERSION[unit_1]