blueair-api 1.13.0__py3-none-any.whl → 1.14.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/callbacks.py CHANGED
@@ -4,6 +4,8 @@ _LOGGER = logging.getLogger(__name__)
4
4
 
5
5
 
6
6
  class CallbacksMixin:
7
+ __slots__ = ['_callbacks']
8
+
7
9
  def _setup_callbacks(self):
8
10
  self._callbacks = set()
9
11
 
blueair_api/device.py CHANGED
@@ -1,3 +1,4 @@
1
+ import dataclasses
1
2
  import logging
2
3
 
3
4
  from .callbacks import CallbacksMixin
@@ -6,25 +7,27 @@ from .http_blueair import HttpBlueair
6
7
  _LOGGER = logging.getLogger(__name__)
7
8
 
8
9
 
10
+ @dataclasses.dataclass(init=False, slots=True)
9
11
  class Device(CallbacksMixin):
10
- uuid: str = None
11
- name: str = None
12
- timezone: str = None
13
- compatibility: str = None
14
- model: str = None
15
- mac: str = None
16
- firmware: str = None
17
- mcu_firmware: str = None
18
- wlan_driver: str = None
19
- room_location: str = None
12
+ api: HttpBlueair
13
+ uuid: str | None = None
14
+ name: str | None = None
15
+ timezone: str | None = None
16
+ compatibility: str | None = None
17
+ model: str | None = None
18
+ mac: str | None = None
19
+ firmware: str | None = None
20
+ mcu_firmware: str | None = None
21
+ wlan_driver: str | None = None
22
+ room_location: str | None = None
20
23
 
21
- brightness: int = None
22
- child_lock: bool = None
23
- night_mode: bool = None
24
- fan_speed: int = None
25
- fan_mode: str = None
26
- filter_expired: bool = None
27
- wifi_working: bool = None
24
+ brightness: int | None = None
25
+ child_lock: bool | None = None
26
+ night_mode: bool | None = None
27
+ fan_speed: int | None = None
28
+ fan_mode: str | None = None
29
+ filter_expired: bool | None = None
30
+ wifi_working: bool | None = None
28
31
 
29
32
  def __init__(
30
33
  self,
@@ -73,27 +76,3 @@ class Device(CallbacksMixin):
73
76
 
74
77
  async def set_fan_speed(self, new_speed):
75
78
  await self.api.set_fan_speed(self.uuid, new_speed)
76
-
77
- def __repr__(self):
78
- return {
79
- "uuid": self.uuid,
80
- "name": self.name,
81
- "timezone": self.timezone,
82
- "compatibility": self.compatibility,
83
- "model": self.model,
84
- "mac": self.mac,
85
- "firmware": self.firmware,
86
- "mcu_firmware": self.mcu_firmware,
87
- "wlan_driver": self.wlan_driver,
88
- "room_location": self.room_location,
89
- "brightness": self.brightness,
90
- "child_lock": self.child_lock,
91
- "night_mode": self.night_mode,
92
- "fan_speed": self.fan_speed,
93
- "filter_expired": self.filter_expired,
94
- "fan_mode": self.fan_mode,
95
- "wifi_working": self.wifi_working,
96
- }
97
-
98
- def __str__(self):
99
- return f"{self.__repr__()}"
blueair_api/device_aws.py CHANGED
@@ -1,3 +1,4 @@
1
+ import dataclasses
1
2
  import logging
2
3
 
3
4
  from .callbacks import CallbacksMixin
@@ -7,8 +8,9 @@ from .util import convert_api_array_to_dict, safely_get_json_value
7
8
 
8
9
  _LOGGER = logging.getLogger(__name__)
9
10
 
10
-
11
+ @dataclasses.dataclass(init=False, slots=True)
11
12
  class DeviceAws(CallbacksMixin):
13
+ api: HttpAwsBlueair
12
14
  uuid: str = None
13
15
  name: str = None
14
16
  name_api: str = None
@@ -136,43 +138,10 @@ class DeviceAws(CallbacksMixin):
136
138
  @property
137
139
  def model(self) -> ModelEnum:
138
140
  if self.sku == "111633":
139
- return ModelEnum.HUMIDIFIER_I35
141
+ return ModelEnum.HUMIDIFIER_H35I
140
142
  if self.sku == "105826":
141
143
  return ModelEnum.PROTECT_7470I
142
144
  if self.sku == "110092":
143
145
  return ModelEnum.MAX_311I
144
146
  return ModelEnum.UNKNOWN
145
147
 
146
- def __repr__(self):
147
- return {
148
- "uuid": self.uuid,
149
- "name": self.name,
150
- "type_name": self.type_name,
151
- "sku": self.sku,
152
- "name_api": self.name_api,
153
- "mac": self.mac,
154
- "firmware": self.firmware,
155
- "mcu_firmware": self.mcu_firmware,
156
- "serial_number": self.serial_number,
157
- "brightness": self.brightness,
158
- "child_lock": self.child_lock,
159
- "fan_speed": self.fan_speed,
160
- "fan_auto_mode": self.fan_auto_mode,
161
- "running": self.running,
162
- "night_mode": self.night_mode,
163
- "germ_shield": self.germ_shield,
164
- "pm1": self.pm1,
165
- "pm2_5": self.pm2_5,
166
- "pm10": self.pm10,
167
- "tVOC": self.tVOC,
168
- "temperature": self.temperature,
169
- "humidity": self.humidity,
170
- "filter_usage": self.filter_usage,
171
- "wick_usage": self.wick_usage,
172
- "wick_dry_mode": self.wick_dry_mode,
173
- "auto_regulated_humidity": self.auto_regulated_humidity,
174
- "water_shortage": self.water_shortage,
175
- }
176
-
177
- def __str__(self):
178
- return f"{self.__repr__()}"
blueair_api/model_enum.py CHANGED
@@ -3,6 +3,6 @@ from enum import StrEnum
3
3
 
4
4
  class ModelEnum(StrEnum):
5
5
  UNKNOWN = "Unknown"
6
- HUMIDIFIER_I35 = "Blueair Humidifier i35"
6
+ HUMIDIFIER_H35I = "Blueair Humidifier H35i"
7
7
  PROTECT_7470I = "Blueair Protect 7470i"
8
8
  MAX_311I = "311i Max"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: blueair_api
3
- Version: 1.13.0
3
+ Version: 1.14.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
@@ -40,5 +40,3 @@ a lot of this is based on [hass-blueair](https://github.com/aijayadams/hass-blue
40
40
  [releases]: https://github.com/dahlb/blueair_api/releases
41
41
  [buymecoffee]: https://www.buymeacoffee.com/dahlb
42
42
  [buymecoffeebadge]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge
43
-
44
-
@@ -1,18 +1,18 @@
1
1
  blueair_api/__init__.py,sha256=gk2CZWEnEo4FlP7VcJsDs1kujZ_ryXF5H9n3Kd-4WWo,313
2
- blueair_api/callbacks.py,sha256=6hzAAbdq-FQYTgc5RVBQCiqJz3PaBHkIgAkg0P2NZ8U,725
2
+ blueair_api/callbacks.py,sha256=eqgfe1qN_NNWOp2qNSP123zQJxh_Ie6vZXp5EHp6ePc,757
3
3
  blueair_api/const.py,sha256=fRth29dQT1dguM7L4ij8pDefB_vBrevAHqTdfNvSugs,1048
4
- blueair_api/device.py,sha256=o6rUnoTQdQOKni0eoIDebM2FLpRFMbW22-uVSRk3kGs,3153
5
- blueair_api/device_aws.py,sha256=slo--DgV1-O7lK1LwDmq4oqTpcN8MvHWc6kRrcdlYXE,6728
4
+ blueair_api/device.py,sha256=Dt6_aowDdcgPuTbTuqe4WoTX7hQb7483JI_wlCT5-Ts,2548
5
+ blueair_api/device_aws.py,sha256=wyV1WrI2bQPSUG3DVDqRzSJhNEaU4Kl4nqwvMVzXzXk,5604
6
6
  blueair_api/errors.py,sha256=lJ_iFU_W6zQfGRi_wsMhWDw-fAVPFeCkCbT1erIlYQQ,233
7
7
  blueair_api/http_aws_blueair.py,sha256=m_qoCFOYICCu_U_maBvkmOha3YmNtxxtPYyapVBGKNc,17821
8
8
  blueair_api/http_blueair.py,sha256=ieDvjs0_DHSJzseO_qdvLIxdrUUHuTgSHjWb6u-_gRs,7350
9
- blueair_api/model_enum.py,sha256=SfgY1GkvnTPCmUKQj7vewuXC35EQba7eko8Q7QbudAo,193
9
+ blueair_api/model_enum.py,sha256=EpDPUCsPBRZg9OaY5tMlfog4j9ntF1M7wKJhWI6M-0o,195
10
10
  blueair_api/stub.py,sha256=04RBMbv3ZdfJzmZISj3grf43AYU7ia0parL0UKDfeXI,1273
11
11
  blueair_api/util.py,sha256=3L9-vfHfN1vUBYU0BA9ruYyNPUTmS21D-uI-Jyo5x6U,1672
12
12
  blueair_api/util_bootstrap.py,sha256=1IQXZ0_nbRiLYnrnmyQcDMdZ7vi4i_CV78vFRxXCPWY,1602
13
13
  blueair_api/util_http.py,sha256=45AJG3Vb6LMVzI0WV22AoSyt64f_Jj3KpOAwF5M6EFE,1327
14
- blueair_api-1.13.0.dist-info/LICENSE,sha256=W6UV41yCe1R_Avet8VtsxwdJar18n40b3MRnbEMHZmI,1066
15
- blueair_api-1.13.0.dist-info/METADATA,sha256=q2TjS8KVc_2D1iOvil2hfEIHY8L_Kgt6QPk9_spvhpM,1997
16
- blueair_api-1.13.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
17
- blueair_api-1.13.0.dist-info/top_level.txt,sha256=-gn0jNtmE83qEu70uMW5F4JrXnHGRfuFup1EPWF70oc,12
18
- blueair_api-1.13.0.dist-info/RECORD,,
14
+ blueair_api-1.14.0.dist-info/LICENSE,sha256=W6UV41yCe1R_Avet8VtsxwdJar18n40b3MRnbEMHZmI,1066
15
+ blueair_api-1.14.0.dist-info/METADATA,sha256=srVjc3fKfKTYQwr76s2oEvfL7bJkpwOXbr_v_710Wv8,1995
16
+ blueair_api-1.14.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
17
+ blueair_api-1.14.0.dist-info/top_level.txt,sha256=-gn0jNtmE83qEu70uMW5F4JrXnHGRfuFup1EPWF70oc,12
18
+ blueair_api-1.14.0.dist-info/RECORD,,