mijiaAPI 1.3.6__tar.gz → 1.3.7__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.
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/PKG-INFO +3 -3
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/mijiaAPI/devices.py +23 -2
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/pyproject.toml +2 -2
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/LICENSE +0 -0
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/README.md +0 -0
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/mijiaAPI/__init__.py +0 -0
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/mijiaAPI/apis.py +0 -0
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/mijiaAPI/login.py +0 -0
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/mijiaAPI/urls.py +0 -0
- {mijiaapi-1.3.6 → mijiaapi-1.3.7}/mijiaAPI/utils.py +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: mijiaAPI
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.7
|
|
4
4
|
Summary: A Python API for Xiaomi Mijia
|
|
5
|
-
Home-page: https://github.com/Do1e/mijia-api
|
|
6
5
|
License: GPLv3
|
|
7
6
|
Author: Do1e
|
|
8
7
|
Author-email: dpj.email@qq.com
|
|
@@ -19,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
19
18
|
Requires-Dist: pillow (>=11.0.0,<12.0.0)
|
|
20
19
|
Requires-Dist: qrcode (>=8.0,<9.0)
|
|
21
20
|
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
|
21
|
+
Project-URL: Homepage, https://github.com/Do1e/mijia-api
|
|
22
22
|
Project-URL: Repository, https://github.com/Do1e/mijia-api
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
|
|
@@ -34,10 +34,24 @@ class DevAction(object):
|
|
|
34
34
|
return f' {self.name}: {self.desc}'
|
|
35
35
|
|
|
36
36
|
class mijiaDevices(object):
|
|
37
|
-
def __init__(self, api: mijiaAPI,
|
|
37
|
+
def __init__(self, api: mijiaAPI,
|
|
38
|
+
dev_info: Optional[dict] = None,
|
|
39
|
+
dev_name: Optional[str] = None,
|
|
38
40
|
did: Optional[str] = None,
|
|
39
41
|
sleep_time: Optional[Union[int, float]] = 0.5):
|
|
40
42
|
self.api = api
|
|
43
|
+
if dev_info is None:
|
|
44
|
+
if dev_name is None:
|
|
45
|
+
raise ValueError('Please specify the device name or device info')
|
|
46
|
+
devices_list = self.api.get_devices_list()
|
|
47
|
+
matches = [device for device in devices_list['list'] if device['name'] == dev_name]
|
|
48
|
+
if not matches:
|
|
49
|
+
raise ValueError(f"Device {dev_name} not found")
|
|
50
|
+
elif len(matches) > 1:
|
|
51
|
+
raise ValueError(f"Multiple devices named {dev_name} found")
|
|
52
|
+
else:
|
|
53
|
+
dev_info = get_device_info(matches[0]['model'])
|
|
54
|
+
did = matches[0]['did']
|
|
41
55
|
self.name = dev_info['name']
|
|
42
56
|
self.model = dev_info['model']
|
|
43
57
|
self.prop_list = {prop['name']: DevProp(prop) for prop in dev_info['properties']}
|
|
@@ -133,7 +147,7 @@ class mijiaDevices(object):
|
|
|
133
147
|
else:
|
|
134
148
|
return super().__getattr__(name)
|
|
135
149
|
|
|
136
|
-
def run_action(self, name: str, did: Optional[str] = None, value: Optional[Union[list, tuple]] = None) -> bool:
|
|
150
|
+
def run_action(self, name: str, did: Optional[str] = None, value: Optional[Union[list, tuple]] = None, **kwargs) -> bool:
|
|
137
151
|
if did is None:
|
|
138
152
|
did = self.did
|
|
139
153
|
if did is None:
|
|
@@ -145,6 +159,13 @@ class mijiaDevices(object):
|
|
|
145
159
|
method['did'] = did
|
|
146
160
|
if value is not None:
|
|
147
161
|
method['value'] = value
|
|
162
|
+
if kwargs:
|
|
163
|
+
for k, v in kwargs.items():
|
|
164
|
+
if k.startswith("_"):
|
|
165
|
+
k = k[1:]
|
|
166
|
+
if k in method:
|
|
167
|
+
raise ValueError(f'Invalid argument: {k}. Do not use arguments in ({", ".join(method.keys())})')
|
|
168
|
+
method[k] = v
|
|
148
169
|
ret = self.api.run_action(method)['code'] == 0
|
|
149
170
|
sleep(self.sleep_time)
|
|
150
171
|
return ret
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mijiaAPI"
|
|
3
|
-
version = "1.3.
|
|
3
|
+
version = "1.3.7"
|
|
4
4
|
description = "A Python API for Xiaomi Mijia"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.9,<4.0"
|
|
@@ -12,7 +12,7 @@ dependencies = [
|
|
|
12
12
|
|
|
13
13
|
[tool.poetry]
|
|
14
14
|
name = "mijiaAPI"
|
|
15
|
-
version = "1.3.
|
|
15
|
+
version = "1.3.7"
|
|
16
16
|
description = "A Python API for Xiaomi Mijia"
|
|
17
17
|
authors = ["Do1e <dpj.email@qq.com>"]
|
|
18
18
|
license = "GPLv3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|