blueair-api 1.30.2__tar.gz → 1.31.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.
- {blueair_api-1.30.2 → blueair_api-1.31.0}/PKG-INFO +2 -2
- {blueair_api-1.30.2 → blueair_api-1.31.0}/pyproject.toml +1 -1
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/device_aws.py +11 -10
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api.egg-info/PKG-INFO +2 -2
- {blueair_api-1.30.2 → blueair_api-1.31.0}/LICENSE +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/README.md +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/setup.cfg +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/__init__.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/callbacks.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/const.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/device.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/errors.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/http_aws_blueair.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/http_blueair.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/intermediate_representation_aws.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/model_enum.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/stub.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/util.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/util_bootstrap.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/util_http.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api.egg-info/SOURCES.txt +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api.egg-info/dependency_links.txt +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api.egg-info/requires.txt +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api.egg-info/top_level.txt +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/tests/test_device_aws.py +0 -0
- {blueair_api-1.30.2 → blueair_api-1.31.0}/tests/test_intermediate_representation_aws.py +0 -0
@@ -1,4 +1,3 @@
|
|
1
|
-
import dataclasses
|
2
1
|
import logging
|
3
2
|
from json import dumps
|
4
3
|
|
@@ -6,12 +5,13 @@ from .callbacks import CallbacksMixin
|
|
6
5
|
from .http_aws_blueair import HttpAwsBlueair
|
7
6
|
from .model_enum import ModelEnum
|
8
7
|
from . import intermediate_representation_aws as ir
|
8
|
+
from dataclasses import dataclass, field
|
9
9
|
|
10
10
|
_LOGGER = logging.getLogger(__name__)
|
11
11
|
|
12
12
|
type AttributeType[T] = T | None
|
13
13
|
|
14
|
-
@
|
14
|
+
@dataclass(slots=True)
|
15
15
|
class DeviceAws(CallbacksMixin):
|
16
16
|
@classmethod
|
17
17
|
async def create_device(cls, api, uuid, name, mac, type_name, refresh=False):
|
@@ -29,6 +29,8 @@ class DeviceAws(CallbacksMixin):
|
|
29
29
|
return device_aws
|
30
30
|
|
31
31
|
api: HttpAwsBlueair
|
32
|
+
raw_info : dict[str: any] = field(repr=False, init=False)
|
33
|
+
|
32
34
|
uuid : str | None = None
|
33
35
|
name : str | None = None
|
34
36
|
name_api : str | None = None
|
@@ -66,14 +68,14 @@ class DeviceAws(CallbacksMixin):
|
|
66
68
|
|
67
69
|
async def refresh(self):
|
68
70
|
_LOGGER.debug(f"refreshing blueair device aws: {self}")
|
69
|
-
|
70
|
-
_LOGGER.debug(dumps(
|
71
|
+
self.raw_info = await self.api.device_info(self.name_api, self.uuid)
|
72
|
+
_LOGGER.debug(dumps(self.raw_info, indent=2))
|
71
73
|
|
72
74
|
# ir.parse_json(ir.Attribute, ir.query_json(info, "configuration.da"))
|
73
|
-
ds = ir.parse_json(ir.Sensor, ir.query_json(
|
74
|
-
dc = ir.parse_json(ir.Control, ir.query_json(
|
75
|
+
ds = ir.parse_json(ir.Sensor, ir.query_json(self.raw_info, "configuration.ds"))
|
76
|
+
dc = ir.parse_json(ir.Control, ir.query_json(self.raw_info, "configuration.dc"))
|
75
77
|
|
76
|
-
sensor_data = ir.SensorPack(
|
78
|
+
sensor_data = ir.SensorPack(self.raw_info["sensordata"]).to_latest_value()
|
77
79
|
|
78
80
|
def sensor_data_safe_get(key):
|
79
81
|
return sensor_data.get(key) if key in ds else NotImplemented
|
@@ -88,7 +90,7 @@ class DeviceAws(CallbacksMixin):
|
|
88
90
|
def info_safe_get(path):
|
89
91
|
# directly reads for the schema. If the schema field is
|
90
92
|
# undefined, it is NotImplemented, not merely unavailable.
|
91
|
-
value = ir.query_json(
|
93
|
+
value = ir.query_json(self.raw_info, path)
|
92
94
|
if value is None:
|
93
95
|
return NotImplemented
|
94
96
|
return value
|
@@ -99,7 +101,7 @@ class DeviceAws(CallbacksMixin):
|
|
99
101
|
self.serial_number = info_safe_get("configuration.di.ds")
|
100
102
|
self.sku = info_safe_get("configuration.di.sku")
|
101
103
|
|
102
|
-
states = ir.SensorPack(
|
104
|
+
states = ir.SensorPack(self.raw_info["states"]).to_latest_value()
|
103
105
|
|
104
106
|
def states_safe_get(key):
|
105
107
|
return states.get(key) if key in dc else NotImplemented
|
@@ -185,4 +187,3 @@ class DeviceAws(CallbacksMixin):
|
|
185
187
|
if self.sku == "112124":
|
186
188
|
return ModelEnum.T10I
|
187
189
|
return ModelEnum.UNKNOWN
|
188
|
-
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{blueair_api-1.30.2 → blueair_api-1.31.0}/src/blueair_api/intermediate_representation_aws.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|