blueair-api 1.28.0__py3-none-any.whl → 1.30.0__py3-none-any.whl

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.
blueair_api/device.py CHANGED
@@ -85,10 +85,7 @@ class Device(CallbacksMixin):
85
85
  self.filter_expired = attributes["filter_status"] != "OK"
86
86
  else:
87
87
  self.filter_expired = NotImplemented
88
- if "mode" in attributes:
89
- self.fan_mode = attributes["mode"]
90
- else:
91
- self.fan_mode = NotImplemented
88
+ self.fan_mode = attributes.get("mode", NotImplemented)
92
89
  if "wifi_status" in attributes:
93
90
  self.wifi_working = attributes["wifi_status"] == "1"
94
91
  else:
blueair_api/device_aws.py CHANGED
@@ -138,17 +138,6 @@ class DeviceAws(CallbacksMixin):
138
138
  await self.api.set_device_info(self.uuid, "standby", "vb", value)
139
139
  self.publish_updates()
140
140
 
141
- # FIXME: avoid state translation at the API level and depreate running.
142
- # replace with standby which is standard across aws devices.
143
- @property
144
- def running(self) -> AttributeType[bool]:
145
- if self.standby is None or self.standby is NotImplemented:
146
- return self.standby
147
- return not self.standby
148
-
149
- async def set_running(self, running: bool):
150
- await self.set_standby(not running)
151
-
152
141
  async def set_fan_auto_mode(self, fan_auto_mode: bool):
153
142
  self.fan_auto_mode = fan_auto_mode
154
143
  await self.api.set_device_info(self.uuid, "automode", "vb", fan_auto_mode)
@@ -174,6 +163,11 @@ class DeviceAws(CallbacksMixin):
174
163
  await self.api.set_device_info(self.uuid, "wickdrys", "vb", value)
175
164
  self.publish_updates()
176
165
 
166
+ async def set_germ_shield(self, value: bool):
167
+ self.germ_shield = value
168
+ await self.api.set_device_info(self.uuid, "germshield", "vb", value)
169
+ self.publish_updates()
170
+
177
171
  @property
178
172
  def model(self) -> ModelEnum:
179
173
  if self.sku == "111633":
@@ -7,7 +7,6 @@ import base64
7
7
  from .util_http import request_with_logging
8
8
  from .const import API_KEY
9
9
  from .errors import LoginError
10
- from typing import Optional
11
10
 
12
11
  _LOGGER = logging.getLogger(__name__)
13
12
 
@@ -295,3 +294,23 @@ class HttpBlueair:
295
294
  )
296
295
  )
297
296
  return await response.json()
297
+
298
+ async def set_fan_mode(self, device_uuid, auto: bool):
299
+ url = f"https://{await self.get_home_host()}/v2/device/{device_uuid}/attribute/mode/"
300
+ new_value = "auto" if auto else "manual"
301
+ headers = {
302
+ "X-API-KEY-TOKEN": API_KEY,
303
+ "X-AUTH-TOKEN": await self.get_auth_token(),
304
+ }
305
+ json_body = {
306
+ "currentValue": new_value,
307
+ "scope": "device",
308
+ "name": "mode",
309
+ "uuid": str(device_uuid),
310
+ }
311
+ response: ClientResponse = (
312
+ await self._post_request_with_logging_and_errors_raised(
313
+ url=url, json_body=json_body, headers=headers
314
+ )
315
+ )
316
+ return await response.json()
blueair_api/stub.py CHANGED
@@ -1,17 +1,14 @@
1
1
  # run with "python3 src/blueair_api/stub.py"
2
2
  import logging
3
3
  import asyncio
4
- from threading import Event
5
4
 
6
5
  from getpass import getpass
7
6
  from pathlib import Path
8
7
  import sys
9
8
 
10
- # import blueair_api
11
-
12
9
  path_root = Path(__file__).parents[2]
13
10
  sys.path.append(str(path_root))
14
- from src.blueair_api import get_devices, get_aws_devices
11
+ from src.blueair_api import get_devices, get_aws_devices, DeviceAws
15
12
 
16
13
 
17
14
  logger = logging.getLogger("src.blueair_api")
@@ -30,7 +27,6 @@ async def testing():
30
27
  api, devices = await get_aws_devices(username=username, password=password)
31
28
  for device in devices:
32
29
  await device.refresh()
33
- await device.set_child_lock(True)
34
30
  logger.debug(device)
35
31
  finally:
36
32
  if api:
@@ -45,7 +45,7 @@ async def get_aws_devices(
45
45
  password: str,
46
46
  region: str = "us",
47
47
  client_session: ClientSession | None = None,
48
- ) -> tuple[HttpAwsBlueair, list[Device]]:
48
+ ) -> tuple[HttpAwsBlueair, list[DeviceAws]]:
49
49
  api = HttpAwsBlueair(
50
50
  username=username,
51
51
  password=password,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: blueair_api
3
- Version: 1.28.0
3
+ Version: 1.30.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,19 +1,19 @@
1
1
  blueair_api/__init__.py,sha256=GucsIENhTF4AVxPn4Xyr4imUxJJ8RO8RYt1opHCF2hQ,326
2
2
  blueair_api/callbacks.py,sha256=fvrJsqH5eDRxWOGWiZkF2uLU4n2ve0zzU17ERqWbHP8,756
3
3
  blueair_api/const.py,sha256=q1smSEhwyYvuQiR867lToFm-mGV-d3dNJvN0NJgscbU,1037
4
- blueair_api/device.py,sha256=eTtdIGSjNBnP2de5529jE4Nit7VF-EkTToEieHpjuRk,4604
5
- blueair_api/device_aws.py,sha256=FYz1YtJQMTUfzZ-__kdOGe5HtO8MTUygX-XdRsYejWg,7356
4
+ blueair_api/device.py,sha256=tMA2pW5tSN_5uKlE7DypGQiQ-u333s-ErKVMjYTOBOs,4530
5
+ blueair_api/device_aws.py,sha256=W9twRSyH_PZPWQE_m2mPN--9sxnps_hK4obvf2SOie0,7122
6
6
  blueair_api/errors.py,sha256=lJ_iFU_W6zQfGRi_wsMhWDw-fAVPFeCkCbT1erIlYQQ,233
7
7
  blueair_api/http_aws_blueair.py,sha256=jztGyoH0iC7aCJ2oGf9hnEeHFOie3YikFvwtWo3W2w4,8536
8
- blueair_api/http_blueair.py,sha256=Ms-tDcGaTb8-Zg1Sw68aVoU6QP2ba2JQWT31_g1jUMk,11048
8
+ blueair_api/http_blueair.py,sha256=eH9nwrv-QdmurZwrKLzIkbemJlU-p7H9za2pSQgEM50,11747
9
9
  blueair_api/intermediate_representation_aws.py,sha256=DJWxHFP9yVll0O6kxHWjKscIlu-7genc3f7ZvwV5YdA,6137
10
10
  blueair_api/model_enum.py,sha256=Z9Ne4icNEjbGNwdHJZSDibcKJKwv-W1BRpZx01RGFuY,2480
11
- blueair_api/stub.py,sha256=sTWyRSDObzrXpZToAgDmZhCk3q8SsGN35h-kzMOqSOc,1272
11
+ blueair_api/stub.py,sha256=tWJJLIhKf39P1gRAXfJk6L8cBJI9fVK3Uk9pj2_Teaw,1187
12
12
  blueair_api/util.py,sha256=7MrB2DLqUVOlBQuhv7bRmUXvcGcsjXiV3M0H3LloiOo,1962
13
- blueair_api/util_bootstrap.py,sha256=RNIKrMWMBSUad4loYGwEVIKVxQ1_LVhXNQtUwuaquyo,1754
13
+ blueair_api/util_bootstrap.py,sha256=oo6qqEYUxWb4wLLivk7ofB0YFrKsTZo5tW0U2wc3-D0,1757
14
14
  blueair_api/util_http.py,sha256=45AJG3Vb6LMVzI0WV22AoSyt64f_Jj3KpOAwF5M6EFE,1327
15
- blueair_api-1.28.0.dist-info/LICENSE,sha256=W6UV41yCe1R_Avet8VtsxwdJar18n40b3MRnbEMHZmI,1066
16
- blueair_api-1.28.0.dist-info/METADATA,sha256=wGsJCFaJCWmezjsLCv4q_HZL0Zgin-AvyM_5cE6HE4M,1995
17
- blueair_api-1.28.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
18
- blueair_api-1.28.0.dist-info/top_level.txt,sha256=-gn0jNtmE83qEu70uMW5F4JrXnHGRfuFup1EPWF70oc,12
19
- blueair_api-1.28.0.dist-info/RECORD,,
15
+ blueair_api-1.30.0.dist-info/LICENSE,sha256=W6UV41yCe1R_Avet8VtsxwdJar18n40b3MRnbEMHZmI,1066
16
+ blueair_api-1.30.0.dist-info/METADATA,sha256=exaefi2U99qful1oc90IBbBj7A-wU6rEoLDtEV107TI,1995
17
+ blueair_api-1.30.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
18
+ blueair_api-1.30.0.dist-info/top_level.txt,sha256=-gn0jNtmE83qEu70uMW5F4JrXnHGRfuFup1EPWF70oc,12
19
+ blueair_api-1.30.0.dist-info/RECORD,,