blueair-api 1.15.1__tar.gz → 1.16.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. {blueair_api-1.15.1 → blueair_api-1.16.0}/PKG-INFO +1 -1
  2. {blueair_api-1.15.1 → blueair_api-1.16.0}/pyproject.toml +1 -1
  3. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/__init__.py +1 -1
  4. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/device.py +3 -15
  5. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/device_aws.py +3 -17
  6. blueair_api-1.16.0/src/blueair_api/model_enum.py +72 -0
  7. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/stub.py +1 -1
  8. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api.egg-info/PKG-INFO +1 -1
  9. blueair_api-1.15.1/src/blueair_api/model_enum.py +0 -9
  10. {blueair_api-1.15.1 → blueair_api-1.16.0}/LICENSE +0 -0
  11. {blueair_api-1.15.1 → blueair_api-1.16.0}/README.md +0 -0
  12. {blueair_api-1.15.1 → blueair_api-1.16.0}/setup.cfg +0 -0
  13. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/callbacks.py +0 -0
  14. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/const.py +0 -0
  15. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/errors.py +0 -0
  16. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/http_aws_blueair.py +0 -0
  17. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/http_blueair.py +0 -0
  18. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/util.py +0 -0
  19. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/util_bootstrap.py +0 -0
  20. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api/util_http.py +0 -0
  21. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api.egg-info/SOURCES.txt +0 -0
  22. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api.egg-info/dependency_links.txt +0 -0
  23. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api.egg-info/requires.txt +0 -0
  24. {blueair_api-1.15.1 → blueair_api-1.16.0}/src/blueair_api.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: blueair_api
3
- Version: 1.15.1
3
+ Version: 1.16.0
4
4
  Summary: Blueair Api Wrapper
5
5
  Author-email: Brendan Dahl <dahl.brendan@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/dahlb/blueair_api
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
8
8
 
9
9
  [project]
10
10
  name = "blueair_api"
11
- version = "1.15.1"
11
+ version = "1.16.0"
12
12
  authors = [
13
13
  { name="Brendan Dahl", email="dahl.brendan@gmail.com" },
14
14
  ]
@@ -4,4 +4,4 @@ from .http_aws_blueair import HttpAwsBlueair
4
4
  from .util_bootstrap import get_devices, get_aws_devices
5
5
  from .device import Device
6
6
  from .device_aws import DeviceAws
7
- from .model_enum import ModelEnum
7
+ from .model_enum import ModelEnum, FeatureEnum
@@ -7,7 +7,7 @@ from .http_blueair import HttpBlueair
7
7
  _LOGGER = logging.getLogger(__name__)
8
8
 
9
9
 
10
- @dataclasses.dataclass(init=False, slots=True)
10
+ @dataclasses.dataclass(slots=True)
11
11
  class Device(CallbacksMixin):
12
12
  api: HttpBlueair
13
13
  uuid: str | None = None
@@ -29,19 +29,7 @@ class Device(CallbacksMixin):
29
29
  filter_expired: bool | None = None
30
30
  wifi_working: bool | None = None
31
31
 
32
- def __init__(
33
- self,
34
- api: HttpBlueair,
35
- uuid: str = None,
36
- name: str = None,
37
- mac: str = None,
38
- ):
39
- self.api = api
40
- self.uuid = uuid
41
- self.name = name
42
- self.mac = mac
43
-
44
- async def init(self):
32
+ async def post_init(self):
45
33
  info = await self.api.get_info(self.uuid)
46
34
  self.timezone = info["timezone"]
47
35
  self.compatibility = info["compatibility"]
@@ -50,7 +38,7 @@ class Device(CallbacksMixin):
50
38
  self.mcu_firmware = info["mcuFirmware"]
51
39
  self.wlan_driver = info["wlanDriver"]
52
40
  self.room_location = info["roomLocation"]
53
- _LOGGER.debug(f"init blueair device: {self}")
41
+ _LOGGER.debug(f"post_init blueair device: {self}")
54
42
 
55
43
  async def refresh(self):
56
44
  _LOGGER.debug("Requesting current attributes...")
@@ -8,7 +8,8 @@ from .util import convert_api_array_to_dict, safely_get_json_value
8
8
 
9
9
  _LOGGER = logging.getLogger(__name__)
10
10
 
11
- @dataclasses.dataclass(init=False, slots=True)
11
+
12
+ @dataclasses.dataclass(slots=True)
12
13
  class DeviceAws(CallbacksMixin):
13
14
  api: HttpAwsBlueair
14
15
  uuid: str = None
@@ -45,23 +46,8 @@ class DeviceAws(CallbacksMixin):
45
46
  water_shortage: bool = None
46
47
  auto_regulated_humidity: int = None
47
48
 
48
- def __init__(
49
- self,
50
- api: HttpAwsBlueair,
51
- uuid: str = None,
52
- name_api: str = None,
53
- mac: str = None,
54
- type_name: str = None,
55
- ):
56
- self.api = api
57
- self.uuid = uuid
58
- self.name_api = name_api
59
- self.mac = mac
60
- self.type_name = type_name
61
- _LOGGER.debug(f"creating blueair device aws: {self.uuid}")
62
-
63
49
  async def refresh(self):
64
- _LOGGER.debug(f"refreshing blueair device aws: {self.uuid}")
50
+ _LOGGER.debug(f"refreshing blueair device aws: {self}")
65
51
  info = await self.api.device_info(self.name_api, self.uuid)
66
52
  sensor_data = convert_api_array_to_dict(info["sensordata"])
67
53
  self.pm1 = safely_get_json_value(sensor_data, "pm1", int)
@@ -0,0 +1,72 @@
1
+ from enum import Enum, StrEnum
2
+
3
+
4
+ class FeatureEnum(StrEnum):
5
+ TEMPERATURE = "Temperature"
6
+ HUMIDITY = "Humidity"
7
+ VOC = "VOC"
8
+ PM1 = "PM1"
9
+ PM10 = "PM10"
10
+ PM25 = "PM25"
11
+ WATER_SHORTAGE = "Water Shortage"
12
+ FILTER_EXPIRED = "Filter Expired"
13
+
14
+
15
+ class ModelEnum(Enum):
16
+ def __new__(cls, *args, **kwds):
17
+ value = len(cls.__members__) + 1
18
+ obj = object.__new__(cls)
19
+ obj._value_ = value
20
+ return obj
21
+
22
+ def __init__(self,
23
+ name,
24
+ supported_features):
25
+ self.model_name = name
26
+ self.supported_features = supported_features
27
+
28
+ def supports_feature(self, supported_features) -> bool:
29
+ return supported_features in self.supported_features
30
+
31
+ UNKNOWN = "Unknown", [
32
+ FeatureEnum.TEMPERATURE,
33
+ FeatureEnum.HUMIDITY,
34
+ FeatureEnum.WATER_SHORTAGE,
35
+ FeatureEnum.VOC,
36
+ FeatureEnum.PM1,
37
+ FeatureEnum.PM10,
38
+ FeatureEnum.PM25,
39
+ FeatureEnum.FILTER_EXPIRED,
40
+ ]
41
+ HUMIDIFIER_H35I = "Blueair Humidifier H35i", [
42
+ FeatureEnum.TEMPERATURE,
43
+ FeatureEnum.HUMIDITY,
44
+ FeatureEnum.WATER_SHORTAGE,
45
+ ]
46
+ PROTECT_7470I = "Blueair Protect 7470i", [
47
+ FeatureEnum.TEMPERATURE,
48
+ FeatureEnum.HUMIDITY,
49
+ FeatureEnum.VOC,
50
+ FeatureEnum.PM1,
51
+ FeatureEnum.PM10,
52
+ FeatureEnum.PM25,
53
+ FeatureEnum.FILTER_EXPIRED
54
+ ]
55
+ MAX_211I = "Blueair Blue Pure 211i Max", [
56
+ FeatureEnum.TEMPERATURE,
57
+ FeatureEnum.HUMIDITY,
58
+ FeatureEnum.VOC,
59
+ FeatureEnum.PM1,
60
+ FeatureEnum.PM10,
61
+ FeatureEnum.PM25,
62
+ FeatureEnum.FILTER_EXPIRED
63
+ ]
64
+ MAX_311I = "Blueair Blue Pure 311i Max", [
65
+ FeatureEnum.TEMPERATURE,
66
+ FeatureEnum.HUMIDITY,
67
+ FeatureEnum.VOC,
68
+ FeatureEnum.PM1,
69
+ FeatureEnum.PM10,
70
+ FeatureEnum.PM25,
71
+ FeatureEnum.FILTER_EXPIRED
72
+ ]
@@ -37,7 +37,7 @@ async def testing():
37
37
  try:
38
38
  api, devices = await get_devices(username=username, password=password)
39
39
  for device in devices:
40
- await device.init()
40
+ await device.post_init()
41
41
  await device.refresh()
42
42
  logger.debug(device)
43
43
  finally:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: blueair_api
3
- Version: 1.15.1
3
+ Version: 1.16.0
4
4
  Summary: Blueair Api Wrapper
5
5
  Author-email: Brendan Dahl <dahl.brendan@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/dahlb/blueair_api
@@ -1,9 +0,0 @@
1
- from enum import StrEnum
2
-
3
-
4
- class ModelEnum(StrEnum):
5
- UNKNOWN = "Unknown"
6
- HUMIDIFIER_H35I = "Blueair Humidifier H35i"
7
- PROTECT_7470I = "Blueair Protect 7470i"
8
- MAX_211I = "Blueair Blue Pure 211i Max"
9
- MAX_311I = "Blueair Blue Pure 311i Max"
File without changes
File without changes
File without changes