blueair-api 1.16.0__tar.gz → 1.18.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 (23) hide show
  1. {blueair_api-1.16.0 → blueair_api-1.18.0}/PKG-INFO +1 -1
  2. {blueair_api-1.16.0 → blueair_api-1.18.0}/pyproject.toml +1 -1
  3. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/device.py +22 -11
  4. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/model_enum.py +8 -3
  5. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/util_bootstrap.py +9 -10
  6. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api.egg-info/PKG-INFO +1 -1
  7. {blueair_api-1.16.0 → blueair_api-1.18.0}/LICENSE +0 -0
  8. {blueair_api-1.16.0 → blueair_api-1.18.0}/README.md +0 -0
  9. {blueair_api-1.16.0 → blueair_api-1.18.0}/setup.cfg +0 -0
  10. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/__init__.py +0 -0
  11. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/callbacks.py +0 -0
  12. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/const.py +0 -0
  13. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/device_aws.py +0 -0
  14. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/errors.py +0 -0
  15. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/http_aws_blueair.py +0 -0
  16. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/http_blueair.py +0 -0
  17. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/stub.py +0 -0
  18. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/util.py +0 -0
  19. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api/util_http.py +0 -0
  20. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api.egg-info/SOURCES.txt +0 -0
  21. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api.egg-info/dependency_links.txt +0 -0
  22. {blueair_api-1.16.0 → blueair_api-1.18.0}/src/blueair_api.egg-info/requires.txt +0 -0
  23. {blueair_api-1.16.0 → blueair_api-1.18.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.16.0
3
+ Version: 1.18.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.16.0"
11
+ version = "1.18.0"
12
12
  authors = [
13
13
  { name="Brendan Dahl", email="dahl.brendan@gmail.com" },
14
14
  ]
@@ -9,6 +9,28 @@ _LOGGER = logging.getLogger(__name__)
9
9
 
10
10
  @dataclasses.dataclass(slots=True)
11
11
  class Device(CallbacksMixin):
12
+ @classmethod
13
+ async def create_device(cls, api, uuid, name, mac, refresh=False):
14
+ _LOGGER.debug("UUID:"+uuid)
15
+ info = await api.get_info(uuid)
16
+ device = Device(
17
+ api=api,
18
+ uuid=uuid,
19
+ name=name,
20
+ mac=mac,
21
+ timezone=info["timezone"],
22
+ compatibility=info["compatibility"],
23
+ model=info["model"],
24
+ firmware=info["firmware"],
25
+ mcu_firmware=info["mcuFirmware"],
26
+ wlan_driver=info["wlanDriver"],
27
+ room_location=info["roomLocation"]
28
+ )
29
+ if refresh:
30
+ await device.refresh()
31
+ _LOGGER.debug(f"create_device blueair device: {device}")
32
+ return device
33
+
12
34
  api: HttpBlueair
13
35
  uuid: str | None = None
14
36
  name: str | None = None
@@ -29,17 +51,6 @@ class Device(CallbacksMixin):
29
51
  filter_expired: bool | None = None
30
52
  wifi_working: bool | None = None
31
53
 
32
- async def post_init(self):
33
- info = await self.api.get_info(self.uuid)
34
- self.timezone = info["timezone"]
35
- self.compatibility = info["compatibility"]
36
- self.model = info["model"]
37
- self.firmware = info["firmware"]
38
- self.mcu_firmware = info["mcuFirmware"]
39
- self.wlan_driver = info["wlanDriver"]
40
- self.room_location = info["roomLocation"]
41
- _LOGGER.debug(f"post_init blueair device: {self}")
42
-
43
54
  async def refresh(self):
44
55
  _LOGGER.debug("Requesting current attributes...")
45
56
  attributes = await self.api.get_attributes(self.uuid)
@@ -10,6 +10,7 @@ class FeatureEnum(StrEnum):
10
10
  PM25 = "PM25"
11
11
  WATER_SHORTAGE = "Water Shortage"
12
12
  FILTER_EXPIRED = "Filter Expired"
13
+ CHILD_LOCK = "Child Lock"
13
14
 
14
15
 
15
16
  class ModelEnum(Enum):
@@ -37,6 +38,7 @@ class ModelEnum(Enum):
37
38
  FeatureEnum.PM10,
38
39
  FeatureEnum.PM25,
39
40
  FeatureEnum.FILTER_EXPIRED,
41
+ FeatureEnum.CHILD_LOCK,
40
42
  ]
41
43
  HUMIDIFIER_H35I = "Blueair Humidifier H35i", [
42
44
  FeatureEnum.TEMPERATURE,
@@ -50,7 +52,8 @@ class ModelEnum(Enum):
50
52
  FeatureEnum.PM1,
51
53
  FeatureEnum.PM10,
52
54
  FeatureEnum.PM25,
53
- FeatureEnum.FILTER_EXPIRED
55
+ FeatureEnum.FILTER_EXPIRED,
56
+ FeatureEnum.CHILD_LOCK,
54
57
  ]
55
58
  MAX_211I = "Blueair Blue Pure 211i Max", [
56
59
  FeatureEnum.TEMPERATURE,
@@ -59,7 +62,8 @@ class ModelEnum(Enum):
59
62
  FeatureEnum.PM1,
60
63
  FeatureEnum.PM10,
61
64
  FeatureEnum.PM25,
62
- FeatureEnum.FILTER_EXPIRED
65
+ FeatureEnum.FILTER_EXPIRED,
66
+ FeatureEnum.CHILD_LOCK,
63
67
  ]
64
68
  MAX_311I = "Blueair Blue Pure 311i Max", [
65
69
  FeatureEnum.TEMPERATURE,
@@ -68,5 +72,6 @@ class ModelEnum(Enum):
68
72
  FeatureEnum.PM1,
69
73
  FeatureEnum.PM10,
70
74
  FeatureEnum.PM25,
71
- FeatureEnum.FILTER_EXPIRED
75
+ FeatureEnum.FILTER_EXPIRED,
76
+ FeatureEnum.CHILD_LOCK,
72
77
  ]
@@ -26,18 +26,17 @@ async def get_devices(
26
26
  )
27
27
  api_devices = await api.get_devices()
28
28
 
29
- def create_device(device):
30
- return Device(
31
- api=api,
32
- uuid=device["uuid"],
33
- name=device["name"],
34
- mac=device["mac"],
35
- )
36
-
37
- devices = map(create_device, api_devices)
29
+ devices = list()
30
+ for api_device in api_devices:
31
+ devices.append(await Device.create_device(
32
+ api,
33
+ api_device["uuid"],
34
+ api_device["name"],
35
+ api_device["mac"]
36
+ ))
38
37
  return (
39
38
  api,
40
- list(devices),
39
+ devices,
41
40
  )
42
41
 
43
42
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: blueair_api
3
- Version: 1.16.0
3
+ Version: 1.18.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
File without changes
File without changes
File without changes