Skip to content

Commit

Permalink
Fix unit convertion for VOC sensor EFEKTA iAQ3 (close #570)
Browse files Browse the repository at this point in the history
  • Loading branch information
dext0r committed Dec 6, 2024
1 parent 8217bbe commit fe1d346
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
5 changes: 5 additions & 0 deletions custom_components/yandex_smart_home/unit_conversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@

from .schema import PressureUnit, TemperatureUnit

# EFEKTA iAQ3 (#570)
UNIT_OF_MEASUREMENT_VOC_INDEX_POINT = "VOC Index points"


class TVOCConcentrationConverter(BaseUnitConverter):
"""Utility to convert TVOC concentration values."""
Expand All @@ -31,6 +34,7 @@ class TVOCConcentrationConverter(BaseUnitConverter):
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
CONCENTRATION_PARTS_PER_MILLION,
CONCENTRATION_PARTS_PER_BILLION,
UNIT_OF_MEASUREMENT_VOC_INDEX_POINT,
}

# average molecular weight of tVOC = 110 g/mol
Expand All @@ -40,6 +44,7 @@ class TVOCConcentrationConverter(BaseUnitConverter):
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: 1 / 1000,
CONCENTRATION_PARTS_PER_MILLION: 1 / 4496.29381184,
CONCENTRATION_PARTS_PER_BILLION: 1 / 4.49629381184,
UNIT_OF_MEASUREMENT_VOC_INDEX_POINT: 1,
}


Expand Down
2 changes: 2 additions & 0 deletions docs/devices/sensor/float.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@

Если в HA используется значение в единцах, поддерживаемых УДЯ - конвертация выполнена не будет (например если в HA давление в барах, то и в УДЯ оно будет передано в барах).

Значения некоторых датчиков отдаются "как есть", несмотря на несоответствие единиц измерения между HA и УДЯ (например VOC Index в датчике EFEKTA iAQ3).

### Изменение единиц измерения { id=select-unit-of-measurement }

В некоторых случаях компонент не может сам определить, в каких единицах измерения находится значение датчика. В этом случае значение может быть сконвертировано неверно.
Expand Down
1 change: 1 addition & 0 deletions tests/test_property_float.py
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,7 @@ async def test_property_float_pm_density(
("µg/m³", "30", 30),
("mg/m³", "30", 30000),
("μg/ft³", "30", 1059.44),
("VOC Index points", "30", 30),
(None, "30", 30),
(None, "-5", 0),
(None, "None", None),
Expand Down

0 comments on commit fe1d346

Please sign in to comment.