homebridge-kasa-python 2.7.2 → 2.8.0-beta.1
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.
- package/dist/devices/create.d.ts +1 -1
- package/dist/devices/create.js +24 -11
- package/dist/devices/create.js.map +1 -1
- package/dist/devices/deviceManager.d.ts +4 -2
- package/dist/devices/deviceManager.js +74 -50
- package/dist/devices/deviceManager.js.map +1 -1
- package/dist/devices/homekitLightBulb.d.ts +3 -2
- package/dist/devices/homekitLightBulb.js +45 -15
- package/dist/devices/homekitLightBulb.js.map +1 -1
- package/dist/devices/homekitPlug.d.ts +3 -2
- package/dist/devices/homekitPlug.js +45 -15
- package/dist/devices/homekitPlug.js.map +1 -1
- package/dist/devices/homekitPowerStrip.d.ts +3 -2
- package/dist/devices/homekitPowerStrip.js +45 -15
- package/dist/devices/homekitPowerStrip.js.map +1 -1
- package/dist/devices/homekitSwitch.d.ts +3 -2
- package/dist/devices/homekitSwitch.js +45 -15
- package/dist/devices/homekitSwitch.js.map +1 -1
- package/dist/devices/homekitSwitchWithChildren.d.ts +3 -2
- package/dist/devices/homekitSwitchWithChildren.js +45 -15
- package/dist/devices/homekitSwitchWithChildren.js.map +1 -1
- package/dist/devices/index.d.ts +3 -1
- package/dist/devices/index.js.map +1 -1
- package/dist/platform.d.ts +11 -6
- package/dist/platform.js +147 -283
- package/dist/platform.js.map +1 -1
- package/dist/python/kasaApi.py +119 -151
- package/dist/python/pythonChecker.d.ts +3 -1
- package/dist/python/pythonChecker.js +62 -23
- package/dist/python/pythonChecker.js.map +1 -1
- package/dist/python/startKasaApi.py +15 -6
- package/dist/utils.d.ts +17 -0
- package/dist/utils.js +107 -1
- package/dist/utils.js.map +1 -1
- package/package.json +8 -7
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/python/kasaApi.py
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import json
|
|
2
3
|
import os
|
|
3
4
|
import sys
|
|
4
|
-
from typing import Any, Dict, List, Optional
|
|
5
|
+
from typing import Any, Dict, List, Optional, Tuple
|
|
5
6
|
|
|
6
7
|
from kasa import (
|
|
7
8
|
AuthenticationError,
|
|
@@ -13,7 +14,7 @@ from kasa import (
|
|
|
13
14
|
Module,
|
|
14
15
|
UnsupportedDeviceError,
|
|
15
16
|
)
|
|
16
|
-
from quart import Quart, jsonify, request
|
|
17
|
+
from quart import Quart, jsonify, request, Response
|
|
17
18
|
|
|
18
19
|
app = Quart(__name__)
|
|
19
20
|
|
|
@@ -22,6 +23,8 @@ device_cache: Dict[str, Device] = {}
|
|
|
22
23
|
device_lock_cache: Dict[str, asyncio.Lock] = {}
|
|
23
24
|
device_config_cache: Dict[str, dict] = {}
|
|
24
25
|
|
|
26
|
+
device_queue: asyncio.Queue = asyncio.Queue()
|
|
27
|
+
|
|
25
28
|
UNSUPPORTED_TYPES = {
|
|
26
29
|
DeviceType.Camera.value,
|
|
27
30
|
DeviceType.Sensor.value,
|
|
@@ -34,11 +37,20 @@ UNSUPPORTED_TYPES = {
|
|
|
34
37
|
DeviceType.Unknown.value,
|
|
35
38
|
}
|
|
36
39
|
|
|
40
|
+
def log(message: str, level: str = "INFO", host: Optional[str] = None, alias: Optional[str] = None):
|
|
41
|
+
context = []
|
|
42
|
+
if host:
|
|
43
|
+
context.append(f"host={host}")
|
|
44
|
+
if alias:
|
|
45
|
+
context.append(f"alias={alias}")
|
|
46
|
+
context_str = f" ({', '.join(context)})" if context else ""
|
|
47
|
+
print(f"[Kasa API] {level}: {message}{context_str}", file=sys.stdout if level != "ERROR" else sys.stderr)
|
|
48
|
+
|
|
37
49
|
def serialize_child(child: Device) -> Dict[str, Any]:
|
|
38
|
-
|
|
50
|
+
log("Serializing child device", alias=child.alias)
|
|
39
51
|
child_info = {
|
|
40
52
|
"alias": child.alias,
|
|
41
|
-
"id": child.device_id.split(
|
|
53
|
+
"id": child.device_id.split('_', 1)[1] if '_' in child.device_id else child.device_id,
|
|
42
54
|
"state": child.features["state"].value,
|
|
43
55
|
}
|
|
44
56
|
light_module = child.modules.get(Module.Light)
|
|
@@ -50,7 +62,7 @@ def serialize_child(child: Device) -> Dict[str, Any]:
|
|
|
50
62
|
return child_info
|
|
51
63
|
|
|
52
64
|
def get_light_info(device: Device) -> Dict[str, Any]:
|
|
53
|
-
|
|
65
|
+
log("Getting light info for device", alias=device.alias)
|
|
54
66
|
light_module = device.modules.get(Module.Light)
|
|
55
67
|
light_info = {}
|
|
56
68
|
if light_module.has_feature("brightness"):
|
|
@@ -63,9 +75,8 @@ def get_light_info(device: Device) -> Dict[str, Any]:
|
|
|
63
75
|
return light_info
|
|
64
76
|
|
|
65
77
|
def custom_serializer(device: Device) -> Dict[str, Any]:
|
|
66
|
-
|
|
78
|
+
log("Serializing device", host=device.host, alias=device.alias)
|
|
67
79
|
child_num = len(device.children) if device.children else 0
|
|
68
|
-
|
|
69
80
|
sys_info = {
|
|
70
81
|
"alias": device.alias or f'{device.device_type}_{device.host}',
|
|
71
82
|
"child_num": child_num,
|
|
@@ -77,10 +88,8 @@ def custom_serializer(device: Device) -> Dict[str, Any]:
|
|
|
77
88
|
"model": device.model,
|
|
78
89
|
"sw_ver": device.device_info.firmware_version,
|
|
79
90
|
}
|
|
80
|
-
|
|
81
91
|
light_module = device.modules.get(Module.Light)
|
|
82
92
|
fan_module = device.modules.get(Module.Fan)
|
|
83
|
-
|
|
84
93
|
if child_num > 0:
|
|
85
94
|
sys_info["children"] = [serialize_child(child) for child in device.children]
|
|
86
95
|
else:
|
|
@@ -89,24 +98,20 @@ def custom_serializer(device: Device) -> Dict[str, Any]:
|
|
|
89
98
|
sys_info.update(get_light_info(device))
|
|
90
99
|
if fan_module:
|
|
91
100
|
sys_info.update({"fan_speed_level": fan_module.fan_speed_level})
|
|
92
|
-
|
|
93
101
|
feature_info = {
|
|
94
102
|
"brightness": False,
|
|
95
103
|
"color_temp": False,
|
|
96
104
|
"hsv": False,
|
|
97
105
|
"fan": False,
|
|
98
106
|
}
|
|
99
|
-
|
|
100
107
|
if light_module:
|
|
101
108
|
feature_info.update({
|
|
102
109
|
"brightness": light_module.has_feature("brightness"),
|
|
103
110
|
"color_temp": light_module.has_feature("color_temp"),
|
|
104
111
|
"hsv": light_module.has_feature("hsv"),
|
|
105
112
|
})
|
|
106
|
-
|
|
107
113
|
if fan_module:
|
|
108
114
|
feature_info.update({"fan": True})
|
|
109
|
-
|
|
110
115
|
return {"sys_info": sys_info, "feature_info": feature_info}
|
|
111
116
|
|
|
112
117
|
async def discover_devices(
|
|
@@ -115,167 +120,116 @@ async def discover_devices(
|
|
|
115
120
|
additional_broadcasts: Optional[List[str]] = None,
|
|
116
121
|
manual_devices: Optional[List[str]] = None,
|
|
117
122
|
exclude_mac_addresses: Optional[List[str]] = None,
|
|
118
|
-
) ->
|
|
119
|
-
devices = {}
|
|
120
|
-
devices_to_remove = []
|
|
123
|
+
) -> None:
|
|
121
124
|
broadcasts = ["255.255.255.255"] + (additional_broadcasts or [])
|
|
122
125
|
credentials = Credentials(username, password) if username and password else None
|
|
123
126
|
|
|
124
127
|
if device_cache:
|
|
125
128
|
await close_all_connections()
|
|
126
|
-
|
|
129
|
+
log("All existing device connections closed.")
|
|
127
130
|
|
|
128
131
|
async def on_discovered(device: Device):
|
|
129
|
-
|
|
132
|
+
log("Discovered device", host=device.host, alias=device.alias)
|
|
130
133
|
try:
|
|
131
134
|
await device.update()
|
|
135
|
+
result = await process_device(device)
|
|
136
|
+
if result is not None:
|
|
137
|
+
await device_queue.put(result)
|
|
138
|
+
await safe_disconnect(device)
|
|
132
139
|
except (UnsupportedDeviceError, AuthenticationError) as e:
|
|
133
|
-
|
|
134
|
-
devices_to_remove.append(device.host)
|
|
140
|
+
log(f"{e.__class__.__name__}", level="ERROR", host=device.host, alias=device.alias)
|
|
135
141
|
await safe_disconnect(device)
|
|
136
142
|
except Exception as e:
|
|
137
|
-
|
|
138
|
-
devices_to_remove.append(device.host)
|
|
143
|
+
log(f"Device discovery: {e}", level="ERROR", host=device.host, alias=device.alias)
|
|
139
144
|
await safe_disconnect(device)
|
|
140
145
|
|
|
141
|
-
async def
|
|
142
|
-
|
|
143
|
-
discovered = {}
|
|
144
|
-
try:
|
|
145
|
-
discovered = await Discover.discover(
|
|
146
|
-
target=broadcast, credentials=credentials, on_discovered=on_discovered
|
|
147
|
-
)
|
|
148
|
-
for host in list(discovered.keys()):
|
|
149
|
-
if host in device_config_cache:
|
|
150
|
-
del discovered[host]
|
|
151
|
-
devices.update(discovered)
|
|
152
|
-
except Exception as e:
|
|
153
|
-
print(f"Error during broadcast discovery: {e}", file=sys.stderr)
|
|
154
|
-
finally:
|
|
155
|
-
for host in list(discovered.keys()):
|
|
156
|
-
if host in device_config_cache:
|
|
157
|
-
del devices[host]
|
|
158
|
-
devices.update(discovered)
|
|
159
|
-
|
|
160
|
-
async def discover_manual_device(host: str):
|
|
161
|
-
if host in devices or host in device_config_cache:
|
|
162
|
-
return
|
|
163
|
-
print(f"Discovering manual device: {host}")
|
|
164
|
-
try:
|
|
165
|
-
device = await Discover.discover_single(host=host, credentials=credentials)
|
|
166
|
-
await on_discovered(device)
|
|
167
|
-
devices[host] = device
|
|
168
|
-
except Exception as e:
|
|
169
|
-
print(f"Error during manual device discovery: {e}", file=sys.stderr)
|
|
170
|
-
devices_to_remove.append(host)
|
|
171
|
-
await safe_disconnect(device)
|
|
172
|
-
|
|
173
|
-
discover_tasks = [discover_on_broadcast(bc) for bc in broadcasts]
|
|
174
|
-
manual_discover_tasks = [discover_manual_device(host) for host in (manual_devices or [])]
|
|
175
|
-
discovery_results = await asyncio.gather(*discover_tasks, *manual_discover_tasks, return_exceptions=True)
|
|
176
|
-
|
|
177
|
-
for discovery_result in discovery_results:
|
|
178
|
-
if isinstance(discovery_result, Exception):
|
|
179
|
-
print(f"Error during discovery tasks: {discovery_result}", file=sys.stderr)
|
|
180
|
-
|
|
181
|
-
all_device_info = {}
|
|
182
|
-
update_tasks = []
|
|
183
|
-
host: str
|
|
184
|
-
device: Device
|
|
185
|
-
|
|
186
|
-
for host in devices:
|
|
187
|
-
device = devices[host]
|
|
146
|
+
async def process_device(device: Device) -> Optional[Dict[str, Any]]:
|
|
147
|
+
log("Processing device", host=device.host, alias=device.alias)
|
|
188
148
|
if device.mac in (exclude_mac_addresses or []):
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
for host in devices_to_remove:
|
|
192
|
-
device = devices.pop(host, None)
|
|
193
|
-
if device:
|
|
194
|
-
print(f"Removing device: {device.alias}")
|
|
195
|
-
await safe_disconnect(device)
|
|
196
|
-
|
|
197
|
-
for host, device_config_dict in device_config_cache.items():
|
|
198
|
-
device = devices.get(host)
|
|
199
|
-
if device:
|
|
200
|
-
print(f"Skipping device {device.alias} due to existing connection")
|
|
201
|
-
continue
|
|
202
|
-
device_config = DeviceConfig.from_dict(device_config_dict)
|
|
203
|
-
device = await Device.connect(config=device_config)
|
|
204
|
-
devices[host] = device
|
|
205
|
-
|
|
206
|
-
for host, device in devices.items():
|
|
207
|
-
try:
|
|
208
|
-
await device.update()
|
|
209
|
-
except Exception as e:
|
|
210
|
-
print(f"Error checking device: {e}", file=sys.stderr)
|
|
149
|
+
log("Excluding device due to MAC address exclusion", host=device.host, alias=device.alias)
|
|
211
150
|
await safe_disconnect(device)
|
|
212
|
-
|
|
213
|
-
|
|
151
|
+
return None
|
|
214
152
|
try:
|
|
215
153
|
if hide_homekit_matter:
|
|
216
154
|
homekit_component = device.modules.get(Module.HomeKit)
|
|
217
155
|
matter_component = device.modules.get(Module.Matter)
|
|
218
156
|
if homekit_component or matter_component:
|
|
219
157
|
if homekit_component:
|
|
220
|
-
|
|
158
|
+
log("Skipping device due to Native HomeKit support", host=device.host, alias=device.alias)
|
|
221
159
|
if matter_component:
|
|
222
|
-
|
|
160
|
+
log("Skipping device due to Native Matter support", host=device.host, alias=device.alias)
|
|
223
161
|
await safe_disconnect(device)
|
|
224
|
-
|
|
162
|
+
return None
|
|
225
163
|
except Exception as e:
|
|
226
|
-
|
|
164
|
+
log(f"Checking HomeKit and Matter modules: {e}", level="ERROR", host=device.host, alias=device.alias)
|
|
227
165
|
await safe_disconnect(device)
|
|
228
|
-
|
|
229
|
-
|
|
166
|
+
return None
|
|
230
167
|
device_type = device.device_type.value
|
|
231
168
|
if device_type and device_type not in UNSUPPORTED_TYPES:
|
|
232
|
-
if host not in device_cache:
|
|
233
|
-
device_cache[host] = device
|
|
234
|
-
if host not in device_lock_cache:
|
|
235
|
-
device_lock_cache[host] = asyncio.Lock()
|
|
236
|
-
|
|
169
|
+
if device.host not in device_cache:
|
|
170
|
+
device_cache[device.host] = device
|
|
171
|
+
if device.host not in device_lock_cache:
|
|
172
|
+
device_lock_cache[device.host] = asyncio.Lock()
|
|
173
|
+
device_info = await create_device_info(device)
|
|
174
|
+
if isinstance(device_info, Exception):
|
|
175
|
+
log(f"Creating device info: {device_info}", level="ERROR", host=device.host, alias=device.alias)
|
|
176
|
+
return await handle_device_error(device.host)
|
|
177
|
+
return device_info
|
|
237
178
|
else:
|
|
238
|
-
|
|
179
|
+
log("Skipping unsupported device", host=device.host, alias=device.alias)
|
|
239
180
|
await safe_disconnect(device)
|
|
181
|
+
return None
|
|
240
182
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
print(f"Device info created for device: {host}")
|
|
250
|
-
all_device_info[host] = info
|
|
183
|
+
async def discover_on_broadcast(broadcast: str):
|
|
184
|
+
log("Discovering on broadcast", host=broadcast)
|
|
185
|
+
try:
|
|
186
|
+
await Discover.discover(
|
|
187
|
+
target=broadcast, credentials=credentials, on_discovered=on_discovered
|
|
188
|
+
)
|
|
189
|
+
except Exception as e:
|
|
190
|
+
log(f"Discovering on broadcast: {e}", level="ERROR", host=broadcast)
|
|
251
191
|
|
|
252
|
-
|
|
192
|
+
async def discover_manual_device(host: str):
|
|
193
|
+
if host in device_config_cache:
|
|
194
|
+
return
|
|
195
|
+
log("Discovering manual device", host=host)
|
|
196
|
+
device = None
|
|
197
|
+
try:
|
|
198
|
+
device = await Discover.discover_single(host=host, credentials=credentials)
|
|
199
|
+
await on_discovered(device)
|
|
200
|
+
except Exception as e:
|
|
201
|
+
log(f"Discovering manual device: {e}", level="ERROR", host=host)
|
|
202
|
+
if device:
|
|
203
|
+
await safe_disconnect(device)
|
|
253
204
|
|
|
254
|
-
|
|
205
|
+
discover_tasks = [discover_on_broadcast(bc) for bc in broadcasts]
|
|
206
|
+
manual_discover_tasks = [discover_manual_device(host) for host in (manual_devices or [])]
|
|
207
|
+
await asyncio.gather(*discover_tasks, *manual_discover_tasks, return_exceptions=True)
|
|
208
|
+
await device_queue.put({"status": "discovery_complete"})
|
|
255
209
|
|
|
256
210
|
async def close_all_connections():
|
|
257
|
-
|
|
211
|
+
log("Closing all existing device connections...")
|
|
258
212
|
if device_cache:
|
|
259
213
|
disconnect_tasks = [device.disconnect() for device in device_cache.values()]
|
|
260
214
|
await asyncio.gather(*disconnect_tasks, return_exceptions=True)
|
|
261
215
|
device_cache.clear()
|
|
262
216
|
|
|
263
|
-
async def create_device_info(
|
|
264
|
-
|
|
217
|
+
async def create_device_info(device: Device) -> Tuple[str, Dict[str, Any]]:
|
|
218
|
+
log("Creating device info", host=device.host, alias=device.alias)
|
|
265
219
|
try:
|
|
266
220
|
device_info = custom_serializer(device)
|
|
267
|
-
device_config_cache[host] = device.config.to_dict()
|
|
221
|
+
device_config_cache[device.host] = device.config.to_dict()
|
|
268
222
|
all_device_info = {
|
|
269
223
|
"sys_info": device_info["sys_info"],
|
|
270
224
|
"feature_info": device_info["feature_info"],
|
|
271
225
|
}
|
|
272
|
-
return
|
|
226
|
+
return all_device_info
|
|
273
227
|
except Exception as e:
|
|
274
|
-
|
|
275
|
-
return
|
|
228
|
+
log(f"Creating device info: {e}", level="ERROR", host=device.host, alias=device.alias)
|
|
229
|
+
return {"error": str(e)}
|
|
276
230
|
|
|
277
231
|
async def get_sys_info(host: str) -> Dict[str, Any]:
|
|
278
|
-
|
|
232
|
+
log("Getting sys_info", host=host)
|
|
279
233
|
try:
|
|
280
234
|
device_config_dict = device_config_cache.get(host)
|
|
281
235
|
device_config = DeviceConfig.from_dict(device_config_dict)
|
|
@@ -292,12 +246,12 @@ async def get_or_connect_device(host: str, device_config: DeviceConfig) -> Devic
|
|
|
292
246
|
try:
|
|
293
247
|
device = device_cache.get(host)
|
|
294
248
|
if not device:
|
|
295
|
-
|
|
249
|
+
log("Device not in cache, connecting to device", host=host)
|
|
296
250
|
device = await Device.connect(config=device_config)
|
|
297
251
|
device_cache[host] = device
|
|
298
252
|
return device
|
|
299
253
|
except Exception as e:
|
|
300
|
-
|
|
254
|
+
log(f"Connect to device: {e}", level="ERROR", host=host)
|
|
301
255
|
await safe_disconnect(device)
|
|
302
256
|
raise
|
|
303
257
|
|
|
@@ -308,7 +262,7 @@ async def control_device(
|
|
|
308
262
|
value: Any,
|
|
309
263
|
child_num: Optional[int] = None,
|
|
310
264
|
) -> Dict[str, Any]:
|
|
311
|
-
|
|
265
|
+
log("Controlling device", host=host)
|
|
312
266
|
try:
|
|
313
267
|
device_config_dict = device_config_cache.get(host)
|
|
314
268
|
device_config = DeviceConfig.from_dict(device_config_dict)
|
|
@@ -327,10 +281,9 @@ async def perform_device_action(
|
|
|
327
281
|
child_num: Optional[int] = None,
|
|
328
282
|
) -> Dict[str, Any]:
|
|
329
283
|
target = device.children[child_num] if child_num is not None else device
|
|
284
|
+
log(f"Performing action={action} on feature={feature}", alias=target.alias)
|
|
330
285
|
light = target.modules.get(Module.Light)
|
|
331
286
|
fan = target.modules.get(Module.Fan)
|
|
332
|
-
|
|
333
|
-
print(f"Performing action={action} on feature={feature} for device {target.alias}")
|
|
334
287
|
if feature == "state":
|
|
335
288
|
await getattr(target, action)()
|
|
336
289
|
elif feature == "brightness" and light.has_feature("brightness"):
|
|
@@ -346,7 +299,7 @@ async def perform_device_action(
|
|
|
346
299
|
return {"status": "success"}
|
|
347
300
|
|
|
348
301
|
async def handle_brightness(target: Device, action: str, value: int):
|
|
349
|
-
|
|
302
|
+
log(f"Handling brightness: action={action}, value={value}", alias=target.alias)
|
|
350
303
|
light = target.modules.get(Module.Light)
|
|
351
304
|
if value == 0:
|
|
352
305
|
await target.turn_off()
|
|
@@ -356,14 +309,15 @@ async def handle_brightness(target: Device, action: str, value: int):
|
|
|
356
309
|
await target.turn_on()
|
|
357
310
|
|
|
358
311
|
async def handle_color_temp(target: Device, action: str, value: int):
|
|
359
|
-
|
|
312
|
+
log(f"Handling color temperature: action={action}, value={value}", alias=target.alias)
|
|
360
313
|
light = target.modules.get(Module.Light)
|
|
361
|
-
|
|
314
|
+
color_temp = target.modules.get(Module.ColorTemperature)
|
|
315
|
+
min_temp, max_temp = color_temp.valid_temperature_range
|
|
362
316
|
value = max(min(value, max_temp), min_temp)
|
|
363
317
|
await getattr(light, action)(value)
|
|
364
318
|
|
|
365
319
|
async def handle_fan_speed_level(target: Device, action: str, value: int):
|
|
366
|
-
|
|
320
|
+
log(f"Handling fan speed level: action={action}, value={value}", alias=target.alias)
|
|
367
321
|
fan = target.modules.get(Module.Fan)
|
|
368
322
|
if value == 0:
|
|
369
323
|
await target.turn_off()
|
|
@@ -373,7 +327,7 @@ async def handle_fan_speed_level(target: Device, action: str, value: int):
|
|
|
373
327
|
await target.turn_on()
|
|
374
328
|
|
|
375
329
|
async def handle_hsv(target: Device, action: str, feature: str, value: Dict[str, int]):
|
|
376
|
-
|
|
330
|
+
log(f"Handling HSV: action={action}, feature={feature}, value={value}", alias=target.alias)
|
|
377
331
|
light = target.modules.get(Module.Light)
|
|
378
332
|
hsv = list(light.hsv)
|
|
379
333
|
if feature == "hue":
|
|
@@ -392,12 +346,26 @@ async def discover_route():
|
|
|
392
346
|
additional_broadcasts = data.get('additionalBroadcasts', [])
|
|
393
347
|
manual_devices = data.get('manualDevices', [])
|
|
394
348
|
exclude_mac_addresses = data.get('excludeMacAddresses', [])
|
|
395
|
-
|
|
396
|
-
|
|
349
|
+
asyncio.create_task(discover_devices(
|
|
350
|
+
username, password, additional_broadcasts, manual_devices, exclude_mac_addresses
|
|
351
|
+
))
|
|
352
|
+
return jsonify({"status": "discovery started"})
|
|
397
353
|
except Exception as e:
|
|
398
|
-
|
|
354
|
+
log(f"Discover route: {e}", level="ERROR")
|
|
399
355
|
return jsonify({"error": str(e)}), 500
|
|
400
356
|
|
|
357
|
+
@app.route('/stream')
|
|
358
|
+
async def stream():
|
|
359
|
+
async def event_generator():
|
|
360
|
+
while True:
|
|
361
|
+
try:
|
|
362
|
+
device_data = await device_queue.get()
|
|
363
|
+
log("Sending device data to SSE stream", level="DEBUG")
|
|
364
|
+
yield f"data: {json.dumps(device_data)}\n\n"
|
|
365
|
+
except Exception as e:
|
|
366
|
+
log(f"SSE event generator: {e}", level="ERROR")
|
|
367
|
+
return Response(event_generator(), mimetype="text/event-stream")
|
|
368
|
+
|
|
401
369
|
@app.route('/getSysInfo', methods=['POST'])
|
|
402
370
|
async def get_sys_info_route():
|
|
403
371
|
try:
|
|
@@ -406,7 +374,7 @@ async def get_sys_info_route():
|
|
|
406
374
|
sys_info = await get_sys_info(host)
|
|
407
375
|
return jsonify(sys_info)
|
|
408
376
|
except Exception as e:
|
|
409
|
-
|
|
377
|
+
log(f"GetSysInfo route: {e}", level="ERROR")
|
|
410
378
|
return jsonify({"error": str(e)}), 500
|
|
411
379
|
|
|
412
380
|
@app.route('/controlDevice', methods=['POST'])
|
|
@@ -421,29 +389,22 @@ async def control_device_route():
|
|
|
421
389
|
result = await control_device(host, feature, action, value, child_num)
|
|
422
390
|
return jsonify(result)
|
|
423
391
|
except Exception as e:
|
|
424
|
-
|
|
392
|
+
log(f"ControlDevice route: {e}", level="ERROR")
|
|
425
393
|
return jsonify({"error": str(e)}), 500
|
|
426
394
|
|
|
427
395
|
@app.route('/health', methods=['GET'])
|
|
428
396
|
async def health_check():
|
|
429
397
|
return jsonify({"status": "healthy"}), 200
|
|
430
398
|
|
|
431
|
-
@app.after_serving
|
|
432
|
-
async def cleanup():
|
|
433
|
-
print("Cleaning up and disconnecting all devices.")
|
|
434
|
-
await close_all_connections()
|
|
435
|
-
device_lock_cache.clear()
|
|
436
|
-
device_config_cache.clear()
|
|
437
|
-
|
|
438
399
|
async def safe_disconnect(device: Optional[Device]):
|
|
439
400
|
if device:
|
|
440
401
|
try:
|
|
441
402
|
await device.disconnect()
|
|
442
403
|
except Exception as e:
|
|
443
|
-
|
|
404
|
+
log(f"Disconnecting device: {e}", level="ERROR", host=device.host, alias=device.alias)
|
|
444
405
|
|
|
445
406
|
async def handle_device_error(host: str, error: Optional[Exception] = None) -> Dict[str, Any]:
|
|
446
|
-
|
|
407
|
+
log(f"Handling device: {error}", level="ERROR", host=host)
|
|
447
408
|
try:
|
|
448
409
|
device_config_dict = device_config_cache.get(host)
|
|
449
410
|
if device_config_dict:
|
|
@@ -452,10 +413,17 @@ async def handle_device_error(host: str, error: Optional[Exception] = None) -> D
|
|
|
452
413
|
await safe_disconnect(device)
|
|
453
414
|
device_cache.pop(host, None)
|
|
454
415
|
except Exception as e:
|
|
455
|
-
|
|
416
|
+
log(f"Error handling: {e}", level="ERROR", host=host)
|
|
456
417
|
return {"error": str(error)}
|
|
457
418
|
|
|
458
419
|
async def disconnect_all_devices(devices: Dict[str, Device]):
|
|
459
420
|
for host, device in devices.items():
|
|
460
421
|
await safe_disconnect(device)
|
|
461
|
-
|
|
422
|
+
log("Disconnected device", host=device.host, alias=device.alias)
|
|
423
|
+
|
|
424
|
+
@app.after_serving
|
|
425
|
+
async def cleanup():
|
|
426
|
+
log("Cleaning up and disconnecting all devices.")
|
|
427
|
+
await close_all_connections()
|
|
428
|
+
device_lock_cache.clear()
|
|
429
|
+
device_config_cache.clear()
|
|
@@ -11,6 +11,7 @@ declare class PythonChecker {
|
|
|
11
11
|
private pythonExecutable;
|
|
12
12
|
private venvPipExecutable;
|
|
13
13
|
private venvPythonExecutable;
|
|
14
|
+
private userPath;
|
|
14
15
|
constructor(platform: KasaPythonPlatform);
|
|
15
16
|
allInOne(isUpgrade: boolean): Promise<void>;
|
|
16
17
|
private ensurePluginDir;
|
|
@@ -20,13 +21,14 @@ declare class PythonChecker {
|
|
|
20
21
|
private createVenv;
|
|
21
22
|
private ensureVenvUsesCorrectPythonHome;
|
|
22
23
|
private getPythonHome;
|
|
24
|
+
private getSystemPythonVersions;
|
|
25
|
+
private getUserPath;
|
|
23
26
|
private ensureVenvPipUpToDate;
|
|
24
27
|
private updatePip;
|
|
25
28
|
private ensureVenvRequirementsSatisfied;
|
|
26
29
|
private areRequirementsSatisfied;
|
|
27
30
|
private stringToObject;
|
|
28
31
|
private installRequirements;
|
|
29
|
-
private getSystemPythonVersions;
|
|
30
32
|
private getVenvPipVersion;
|
|
31
33
|
private getMostRecentPipVersion;
|
|
32
34
|
}
|