Skip to content

Commit fa941a0

Browse files
committed
fix: 0 was interpreted as none for sensor values
1 parent b88a3df commit fa941a0

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/blueair_api/device.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from .callbacks import CallbacksMixin
22
from .http_blueair import HttpBlueair
3-
from .util import transform_data_points, safely_get_json_value
3+
from .util import transform_data_points, safely_get_json_value, convert_none_to_not_implemented
44
from dataclasses import dataclass, field
55
from logging import getLogger
66

@@ -101,14 +101,14 @@ async def refresh(self):
101101
self.raw_info["datapoints"] = datapoints
102102
for data_point in datapoints:
103103
_LOGGER.debug(data_point)
104-
self.pm25 = safely_get_json_value(data_point, "pm25", int) or NotImplemented
105-
self.pm10 = safely_get_json_value(data_point, "pm10", int) or NotImplemented
106-
self.pm1 = safely_get_json_value(data_point, "pm1", int) or NotImplemented
107-
self.voc = safely_get_json_value(data_point, "voc", int) or NotImplemented
108-
self.co2 = safely_get_json_value(data_point, "co2", int) or NotImplemented
109-
self.temperature = safely_get_json_value(data_point, "temperature", int) or NotImplemented
110-
self.humidity = safely_get_json_value(data_point, "humidity", int) or NotImplemented
111-
self.all_pollution = safely_get_json_value(data_point, "all_pollution", int) or NotImplemented
104+
self.pm25 = convert_none_to_not_implemented(safely_get_json_value(data_point, "pm25", int))
105+
self.pm10 = convert_none_to_not_implemented(safely_get_json_value(data_point, "pm10", int))
106+
self.pm1 = convert_none_to_not_implemented(safely_get_json_value(data_point, "pm1", int))
107+
self.voc = convert_none_to_not_implemented(safely_get_json_value(data_point, "voc", int))
108+
self.co2 = convert_none_to_not_implemented(safely_get_json_value(data_point, "co2", int))
109+
self.temperature = convert_none_to_not_implemented(safely_get_json_value(data_point, "temperature", int))
110+
self.humidity = convert_none_to_not_implemented(safely_get_json_value(data_point, "humidity", int))
111+
self.all_pollution = convert_none_to_not_implemented(safely_get_json_value(data_point, "all_pollution", int))
112112
_LOGGER.debug(f"refreshed blueair device: {self}")
113113
self.publish_updates()
114114

src/blueair_api/util.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ def safely_get_json_value(json, key, callable_to_cast=None):
4242
value = callable_to_cast(value)
4343
return value
4444

45+
def convert_none_to_not_implemented(value):
46+
if value is None:
47+
return NotImplemented
4548

4649
def transform_data_points(data):
4750
"""Transform a measurement list response from the Blueair API to a more pythonic data structure."""

0 commit comments

Comments
 (0)