Skip to content

Commit d4ada4e

Browse files
authored
use µg/m³ for ozone (#51)
1 parent 1863918 commit d4ada4e

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

custom_components/daikinone/daikinone.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ class DaikinOneAirQualitySensorOutdoor:
121121
aqi: int
122122
aqi_summary_level: DaikinOneAirQualitySensorSummaryLevel
123123
particles_microgram_m3: int
124-
ozone_ppb: int
124+
# even though the app displays ppb, the levels seem to be µg/m³ based on my local weather data
125+
ozone_microgram_m3: int
125126

126127

127128
@dataclass
@@ -200,6 +201,8 @@ class DaikinThermostat(DaikinDevice):
200201
set_point_cool: Temperature
201202
set_point_cool_min: Temperature
202203
set_point_cool_max: Temperature
204+
outdoor_temperature: Temperature
205+
outdoor_humidity: int
203206
air_quality_outdoor: DaikinOneAirQualitySensorOutdoor | None
204207
air_quality_indoor: DaikinOneAirQualitySensorIndoor | None
205208
equipment: dict[str, DaikinEquipment]
@@ -336,6 +339,8 @@ def __map_thermostat(self, payload: DaikinDeviceDataResponse) -> DaikinThermosta
336339
set_point_cool=Temperature.from_celsius(payload.data["cspActive"]),
337340
set_point_cool_min=Temperature.from_celsius(payload.data["EquipProtocolMinCoolSetpoint"]),
338341
set_point_cool_max=Temperature.from_celsius(payload.data["EquipProtocolMaxCoolSetpoint"]),
342+
outdoor_temperature=Temperature.from_celsius(payload.data["tempOutdoor"]),
343+
outdoor_humidity=payload.data["humOutdoor"],
339344
air_quality_outdoor=self.__map_air_quality_outdoor(payload),
340345
air_quality_indoor=self.__map_air_quality_indoor(payload),
341346
equipment=self.__map_equipment(payload),
@@ -351,7 +356,7 @@ def __map_air_quality_outdoor(self, payload: DaikinDeviceDataResponse) -> Daikin
351356
aqi=payload.data["aqOutdoorValue"],
352357
aqi_summary_level=payload.data["aqOutdoorLevel"],
353358
particles_microgram_m3=payload.data["aqOutdoorParticles"],
354-
ozone_ppb=payload.data["aqOutdoorOzone"],
359+
ozone_microgram_m3=payload.data["aqOutdoorOzone"],
355360
)
356361

357362
def __map_air_quality_indoor(self, payload: DaikinDeviceDataResponse) -> DaikinOneAirQualitySensorIndoor | None:

custom_components/daikinone/sensor.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
UnitOfPressure,
1414
UnitOfElectricCurrent,
1515
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
16-
CONCENTRATION_PARTS_PER_BILLION,
1716
)
1817
from homeassistant.core import HomeAssistant
1918
from homeassistant.helpers.entity_platform import AddEntitiesCallback
@@ -148,12 +147,14 @@ async def async_setup_entry(
148147
has_entity_name=True,
149148
state_class=SensorStateClass.MEASUREMENT,
150149
device_class=SensorDeviceClass.OZONE,
151-
native_unit_of_measurement=CONCENTRATION_PARTS_PER_BILLION,
150+
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
152151
icon="mdi:air-filter",
153152
),
154153
data=data,
155154
device=thermostat,
156-
attribute=lambda d: d.air_quality_outdoor.ozone_ppb if d.air_quality_outdoor is not None else None,
155+
attribute=lambda d: (
156+
d.air_quality_outdoor.ozone_microgram_m3 if d.air_quality_outdoor is not None else None
157+
),
157158
),
158159
]
159160

0 commit comments

Comments
 (0)