From 5975cd6e09bf0ae679c48cd50a325989cd159101 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Mon, 29 Sep 2025 16:43:13 +0200 Subject: [PATCH] =?UTF-8?q?Revert=20"Add=20mg/m=C2=B3=20as=20a=20valid=20U?= =?UTF-8?q?OM=20for=20sensor/number=20Carbon=20Monoxide=20device=20class"?= =?UTF-8?q?=20(#153196)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- homeassistant/components/number/const.py | 7 ++----- .../components/recorder/statistics.py | 5 ----- .../components/recorder/websocket_api.py | 4 ---- homeassistant/components/sensor/const.py | 9 ++------ homeassistant/util/unit_conversion.py | 14 ------------- tests/components/sensor/test_init.py | 1 + tests/util/test_unit_conversion.py | 21 ------------------- 7 files changed, 5 insertions(+), 56 deletions(-) diff --git a/homeassistant/components/number/const.py b/homeassistant/components/number/const.py index 07a53c9cb61..fab3d6f4276 100644 --- a/homeassistant/components/number/const.py +++ b/homeassistant/components/number/const.py @@ -124,7 +124,7 @@ class NumberDeviceClass(StrEnum): CO = "carbon_monoxide" """Carbon Monoxide gas concentration. - Unit of measurement: `ppm` (parts per million), mg/m³ + Unit of measurement: `ppm` (parts per million) """ CO2 = "carbon_dioxide" @@ -475,10 +475,7 @@ DEVICE_CLASS_UNITS: dict[NumberDeviceClass, set[type[StrEnum] | str | None]] = { NumberDeviceClass.ATMOSPHERIC_PRESSURE: set(UnitOfPressure), NumberDeviceClass.BATTERY: {PERCENTAGE}, NumberDeviceClass.BLOOD_GLUCOSE_CONCENTRATION: set(UnitOfBloodGlucoseConcentration), - NumberDeviceClass.CO: { - CONCENTRATION_PARTS_PER_MILLION, - CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, - }, + NumberDeviceClass.CO: {CONCENTRATION_PARTS_PER_MILLION}, NumberDeviceClass.CO2: {CONCENTRATION_PARTS_PER_MILLION}, NumberDeviceClass.CONDUCTIVITY: set(UnitOfConductivity), NumberDeviceClass.CURRENT: set(UnitOfElectricCurrent), diff --git a/homeassistant/components/recorder/statistics.py b/homeassistant/components/recorder/statistics.py index c2a8a6c7607..2321da45bb9 100644 --- a/homeassistant/components/recorder/statistics.py +++ b/homeassistant/components/recorder/statistics.py @@ -46,7 +46,6 @@ from homeassistant.util.unit_conversion import ( AreaConverter, BaseUnitConverter, BloodGlucoseConcentrationConverter, - CarbonMonoxideConcentrationConverter, ConductivityConverter, DataRateConverter, DistanceConverter, @@ -205,10 +204,6 @@ STATISTIC_UNIT_TO_UNIT_CONVERTER: dict[str | None, type[BaseUnitConverter]] = { **dict.fromkeys( MassVolumeConcentrationConverter.VALID_UNITS, MassVolumeConcentrationConverter ), - **dict.fromkeys( - CarbonMonoxideConcentrationConverter.VALID_UNITS, - CarbonMonoxideConcentrationConverter, - ), **dict.fromkeys(ConductivityConverter.VALID_UNITS, ConductivityConverter), **dict.fromkeys(DataRateConverter.VALID_UNITS, DataRateConverter), **dict.fromkeys(DistanceConverter.VALID_UNITS, DistanceConverter), diff --git a/homeassistant/components/recorder/websocket_api.py b/homeassistant/components/recorder/websocket_api.py index c65a11cee2a..4f798fb86d0 100644 --- a/homeassistant/components/recorder/websocket_api.py +++ b/homeassistant/components/recorder/websocket_api.py @@ -19,7 +19,6 @@ from homeassistant.util.unit_conversion import ( ApparentPowerConverter, AreaConverter, BloodGlucoseConcentrationConverter, - CarbonMonoxideConcentrationConverter, ConductivityConverter, DataRateConverter, DistanceConverter, @@ -67,9 +66,6 @@ UNIT_SCHEMA = vol.Schema( vol.Optional("blood_glucose_concentration"): vol.In( BloodGlucoseConcentrationConverter.VALID_UNITS ), - vol.Optional("carbon_monoxide"): vol.In( - CarbonMonoxideConcentrationConverter.VALID_UNITS - ), vol.Optional("concentration"): vol.In( MassVolumeConcentrationConverter.VALID_UNITS ), diff --git a/homeassistant/components/sensor/const.py b/homeassistant/components/sensor/const.py index b91bd26d410..87ddf4445a0 100644 --- a/homeassistant/components/sensor/const.py +++ b/homeassistant/components/sensor/const.py @@ -51,7 +51,6 @@ from homeassistant.util.unit_conversion import ( AreaConverter, BaseUnitConverter, BloodGlucoseConcentrationConverter, - CarbonMonoxideConcentrationConverter, ConductivityConverter, DataRateConverter, DistanceConverter, @@ -157,7 +156,7 @@ class SensorDeviceClass(StrEnum): CO = "carbon_monoxide" """Carbon Monoxide gas concentration. - Unit of measurement: `ppm` (parts per million), `mg/m³` + Unit of measurement: `ppm` (parts per million) """ CO2 = "carbon_dioxide" @@ -544,7 +543,6 @@ UNIT_CONVERTERS: dict[SensorDeviceClass | str | None, type[BaseUnitConverter]] = SensorDeviceClass.AREA: AreaConverter, SensorDeviceClass.ATMOSPHERIC_PRESSURE: PressureConverter, SensorDeviceClass.BLOOD_GLUCOSE_CONCENTRATION: BloodGlucoseConcentrationConverter, - SensorDeviceClass.CO: CarbonMonoxideConcentrationConverter, SensorDeviceClass.CONDUCTIVITY: ConductivityConverter, SensorDeviceClass.CURRENT: ElectricCurrentConverter, SensorDeviceClass.DATA_RATE: DataRateConverter, @@ -586,10 +584,7 @@ DEVICE_CLASS_UNITS: dict[SensorDeviceClass, set[type[StrEnum] | str | None]] = { SensorDeviceClass.ATMOSPHERIC_PRESSURE: set(UnitOfPressure), SensorDeviceClass.BATTERY: {PERCENTAGE}, SensorDeviceClass.BLOOD_GLUCOSE_CONCENTRATION: set(UnitOfBloodGlucoseConcentration), - SensorDeviceClass.CO: { - CONCENTRATION_PARTS_PER_MILLION, - CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, - }, + SensorDeviceClass.CO: {CONCENTRATION_PARTS_PER_MILLION}, SensorDeviceClass.CO2: {CONCENTRATION_PARTS_PER_MILLION}, SensorDeviceClass.CONDUCTIVITY: set(UnitOfConductivity), SensorDeviceClass.CURRENT: set(UnitOfElectricCurrent), diff --git a/homeassistant/util/unit_conversion.py b/homeassistant/util/unit_conversion.py index 0483878f547..dba858c07bf 100644 --- a/homeassistant/util/unit_conversion.py +++ b/homeassistant/util/unit_conversion.py @@ -168,20 +168,6 @@ class BaseUnitConverter: return (from_unit in cls._UNIT_INVERSES) != (to_unit in cls._UNIT_INVERSES) -class CarbonMonoxideConcentrationConverter(BaseUnitConverter): - """Convert carbon monoxide ratio to mass per volume.""" - - UNIT_CLASS = "carbon_monoxide" - _UNIT_CONVERSION: dict[str | None, float] = { - CONCENTRATION_PARTS_PER_MILLION: 1, - CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: 1.145609, - } - VALID_UNITS = { - CONCENTRATION_PARTS_PER_MILLION, - CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, - } - - class DataRateConverter(BaseUnitConverter): """Utility to convert data rate values.""" diff --git a/tests/components/sensor/test_init.py b/tests/components/sensor/test_init.py index 5d53cfe6d53..36e8ab4576f 100644 --- a/tests/components/sensor/test_init.py +++ b/tests/components/sensor/test_init.py @@ -3008,6 +3008,7 @@ def test_device_class_converters_are_complete() -> None: no_converter_device_classes = { SensorDeviceClass.AQI, SensorDeviceClass.BATTERY, + SensorDeviceClass.CO, SensorDeviceClass.CO2, SensorDeviceClass.DATE, SensorDeviceClass.ENUM, diff --git a/tests/util/test_unit_conversion.py b/tests/util/test_unit_conversion.py index 0d14a30a1b8..d9377779b68 100644 --- a/tests/util/test_unit_conversion.py +++ b/tests/util/test_unit_conversion.py @@ -44,7 +44,6 @@ from homeassistant.util.unit_conversion import ( AreaConverter, BaseUnitConverter, BloodGlucoseConcentrationConverter, - CarbonMonoxideConcentrationConverter, ConductivityConverter, DataRateConverter, DistanceConverter, @@ -79,7 +78,6 @@ _ALL_CONVERTERS: dict[type[BaseUnitConverter], list[str | None]] = { AreaConverter, BloodGlucoseConcentrationConverter, MassVolumeConcentrationConverter, - CarbonMonoxideConcentrationConverter, ConductivityConverter, DataRateConverter, DistanceConverter, @@ -116,11 +114,6 @@ _GET_UNIT_RATIO: dict[type[BaseUnitConverter], tuple[str | None, str | None, flo UnitOfBloodGlucoseConcentration.MILLIMOLE_PER_LITER, 18, ), - CarbonMonoxideConcentrationConverter: ( - CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, - CONCENTRATION_PARTS_PER_MILLION, - 1.145609, - ), ConductivityConverter: ( UnitOfConductivity.MICROSIEMENS_PER_CM, UnitOfConductivity.MILLISIEMENS_PER_CM, @@ -287,20 +280,6 @@ _CONVERTED_VALUE: dict[ UnitOfBloodGlucoseConcentration.MILLIGRAMS_PER_DECILITER, ), ], - CarbonMonoxideConcentrationConverter: [ - ( - 1, - CONCENTRATION_PARTS_PER_MILLION, - 1.145609, - CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, - ), - ( - 120, - CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, - 104.74778, - CONCENTRATION_PARTS_PER_MILLION, - ), - ], ConductivityConverter: [ # Deprecated to deprecated (5, UnitOfConductivity.SIEMENS, 5e3, UnitOfConductivity.MILLISIEMENS),