dirigera 1.2.1__tar.gz → 1.2.2__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.
- {dirigera-1.2.1/src/dirigera.egg-info → dirigera-1.2.2}/PKG-INFO +1 -1
- {dirigera-1.2.1 → dirigera-1.2.2}/pyproject.toml +1 -1
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/hub/hub.py +18 -3
- {dirigera-1.2.1 → dirigera-1.2.2/src/dirigera.egg-info}/PKG-INFO +1 -1
- {dirigera-1.2.1 → dirigera-1.2.2}/LICENSE +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/README.md +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/setup.cfg +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/setup.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/__init__.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/__init__.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/__init__.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/air_purifier.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/base_ikea_model.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/blinds.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/controller.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/device.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/environment_sensor.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/light.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/motion_sensor.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/open_close_sensor.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/outlet.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/scene.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/devices/water_sensor.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/hub/__init__.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/hub/abstract_smart_home_hub.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/hub/auth.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera/hub/utils.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera.egg-info/SOURCES.txt +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera.egg-info/dependency_links.txt +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera.egg-info/entry_points.txt +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera.egg-info/requires.txt +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/src/dirigera.egg-info/top_level.txt +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_air_purifier.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_blinds.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_controller.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_environment_sensor.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_light.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_motion_sensor.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_open_close_sensor.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_outlet.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_scenes.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_utils.py +0 -0
- {dirigera-1.2.1 → dirigera-1.2.2}/tests/test_water_sensor.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dirigera"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.2"
|
|
8
8
|
description = "An unofficial Python client for controlling the IKEA Dirigera Smart Home Hub"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Leggin", email = "legginsun@gmail.com" }]
|
|
@@ -44,7 +44,7 @@ class Hub(AbstractSmartHomeHub):
|
|
|
44
44
|
self.api_base_url = f"https://{ip_address}:{port}/{api_version}"
|
|
45
45
|
self.websocket_base_url = f"wss://{ip_address}:{port}/{api_version}"
|
|
46
46
|
self.token = token
|
|
47
|
-
self.wsapp
|
|
47
|
+
self.wsapp: Any = None
|
|
48
48
|
|
|
49
49
|
def headers(self) -> Dict[str, Any]:
|
|
50
50
|
return {"Authorization": f"Bearer {self.token}"}
|
|
@@ -343,13 +343,27 @@ class Hub(AbstractSmartHomeHub):
|
|
|
343
343
|
data = self.get(f"/scenes/{scene_id}")
|
|
344
344
|
return dict_to_scene(data, self)
|
|
345
345
|
|
|
346
|
+
def get_scene_by_name(self, scene_name: str) -> Scene:
|
|
347
|
+
"""
|
|
348
|
+
Fetches all scenes and returns the first result that matches scene_name
|
|
349
|
+
"""
|
|
350
|
+
scenes = self.get_scenes()
|
|
351
|
+
scenes = list(filter(lambda x: x.info.name == scene_name, scenes))
|
|
352
|
+
if len(scenes) == 0:
|
|
353
|
+
raise AssertionError(f"No Scene found with name {scene_name}")
|
|
354
|
+
return scenes[0]
|
|
355
|
+
|
|
346
356
|
def get_water_sensors(self) -> List[WaterSensor]:
|
|
347
357
|
"""
|
|
348
358
|
Fetches all water sensors registered in the Hub
|
|
349
359
|
"""
|
|
350
360
|
devices = self.get("/devices")
|
|
351
|
-
water_sensors = list(
|
|
352
|
-
|
|
361
|
+
water_sensors = list(
|
|
362
|
+
filter(lambda x: x["deviceType"] == "waterSensor", devices)
|
|
363
|
+
)
|
|
364
|
+
return [
|
|
365
|
+
dict_to_water_sensor(water_sensor, self) for water_sensor in water_sensors
|
|
366
|
+
]
|
|
353
367
|
|
|
354
368
|
def get_water_sensor_by_id(self, id_: str) -> WaterSensor:
|
|
355
369
|
"""
|
|
@@ -374,6 +388,7 @@ class Hub(AbstractSmartHomeHub):
|
|
|
374
388
|
devices.extend(self.get_motion_sensors())
|
|
375
389
|
devices.extend(self.get_open_close_sensors())
|
|
376
390
|
devices.extend(self.get_outlets())
|
|
391
|
+
devices.extend(self.get_water_sensors())
|
|
377
392
|
|
|
378
393
|
return devices
|
|
379
394
|
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|