1
0
mirror of https://github.com/home-assistant/core.git synced 2026-05-08 17:49:37 +01:00

Add ppb as a valid uom for sensor/number CO device class (#159554)

This commit is contained in:
Thomas55555
2026-01-20 16:07:24 +01:00
committed by GitHub
parent c3616fd5df
commit bc28c8fd3c
4 changed files with 57 additions and 16 deletions
+2 -1
View File
@@ -125,7 +125,7 @@ class NumberDeviceClass(StrEnum):
CO = "carbon_monoxide"
"""Carbon Monoxide gas concentration.
Unit of measurement: `ppm` (parts per million), `mg/m³`, `μg/m³`
Unit of measurement: `ppb` (parts per billion), `ppm` (parts per million), `mg/m³`, `μg/m³`
"""
CO2 = "carbon_dioxide"
@@ -483,6 +483,7 @@ DEVICE_CLASS_UNITS: dict[NumberDeviceClass, set[type[StrEnum] | str | None]] = {
NumberDeviceClass.BATTERY: {PERCENTAGE},
NumberDeviceClass.BLOOD_GLUCOSE_CONCENTRATION: set(UnitOfBloodGlucoseConcentration),
NumberDeviceClass.CO: {
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
+2 -1
View File
@@ -159,7 +159,7 @@ class SensorDeviceClass(StrEnum):
CO = "carbon_monoxide"
"""Carbon Monoxide gas concentration.
Unit of measurement: `ppm` (parts per million), `mg/m³`, `μg/m³`
Unit of measurement: `ppb` (parts per billion), `ppm` (parts per million), `mg/m³`, `μg/m³`
"""
CO2 = "carbon_dioxide"
@@ -597,6 +597,7 @@ DEVICE_CLASS_UNITS: dict[SensorDeviceClass, set[type[StrEnum] | str | None]] = {
SensorDeviceClass.BATTERY: {PERCENTAGE},
SensorDeviceClass.BLOOD_GLUCOSE_CONCENTRATION: set(UnitOfBloodGlucoseConcentration),
SensorDeviceClass.CO: {
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
+2
View File
@@ -194,6 +194,7 @@ class CarbonMonoxideConcentrationConverter(BaseUnitConverter):
UNIT_CLASS = "carbon_monoxide"
_UNIT_CONVERSION: dict[str | None, float] = {
CONCENTRATION_PARTS_PER_BILLION: 1e9,
CONCENTRATION_PARTS_PER_MILLION: 1e6,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: (
_CARBON_MONOXIDE_MOLAR_MASS / _AMBIENT_IDEAL_GAS_MOLAR_VOLUME * 1e3
@@ -203,6 +204,7 @@ class CarbonMonoxideConcentrationConverter(BaseUnitConverter):
),
}
VALID_UNITS = {
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
+51 -14
View File
@@ -302,7 +302,32 @@ _CONVERTED_VALUE: dict[
),
],
CarbonMonoxideConcentrationConverter: [
# PPB to other units
(
1,
CONCENTRATION_PARTS_PER_BILLION,
0.001,
CONCENTRATION_PARTS_PER_MILLION,
),
(
1,
CONCENTRATION_PARTS_PER_BILLION,
1.16441,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
),
(
1,
CONCENTRATION_PARTS_PER_BILLION,
0.00116441,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
),
# PPM to other units
(
1,
CONCENTRATION_PARTS_PER_MILLION,
1000,
CONCENTRATION_PARTS_PER_BILLION,
),
(
1,
CONCENTRATION_PARTS_PER_MILLION,
@@ -315,24 +340,17 @@ _CONVERTED_VALUE: dict[
1164.41,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
),
# MILLIGRAMS_PER_CUBIC_METER to other units
(
120,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
103.05655,
CONCENTRATION_PARTS_PER_MILLION,
),
(
120,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
120000,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
),
# MICROGRAMS_PER_CUBIC_METER to other units
(
120000,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
103.05655,
103056.5,
CONCENTRATION_PARTS_PER_BILLION,
),
(
120000,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
103.0565,
CONCENTRATION_PARTS_PER_MILLION,
),
(
@@ -341,6 +359,25 @@ _CONVERTED_VALUE: dict[
120,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
),
# MILLIGRAMS_PER_CUBIC_METER to other units
(
120,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
103056.5,
CONCENTRATION_PARTS_PER_BILLION,
),
(
120,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
103.0565,
CONCENTRATION_PARTS_PER_MILLION,
),
(
120,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
120000,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
),
],
ConductivityConverter: [
(