homebridge-kasa-python 2.7.2-beta.1 → 2.7.2-beta.3

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/README.md CHANGED
@@ -153,6 +153,7 @@ Some newer Kasa devices require authentication. These are marked with [*] in the
153
153
  - **KS225**
154
154
  - Hardware: 1.0 (US) / Firmware: 1.0.2[*]
155
155
  - Hardware: 1.0 (US) / Firmware: 1.1.0[*]
156
+ - Hardware: 1.0 (US) / Firmware: 1.1.1[*]
156
157
  - **KS230**
157
158
  - Hardware: 1.0 (US) / Firmware: 1.0.14
158
159
  - Hardware: 2.0 (US) / Firmware: 1.0.11
@@ -183,6 +184,8 @@ Some newer Kasa devices require authentication. These are marked with [*] in the
183
184
  - **KL60**
184
185
  - Hardware: 1.0 (UN) / Firmware: 1.1.4
185
186
  - Hardware: 1.0 (US) / Firmware: 1.1.13
187
+ - **LB100**
188
+ - Hardware: 1.0 (US) / Firmware: 1.8.11
186
189
  - **LB110**
187
190
  - Hardware: 1.0 (US) / Firmware: 1.8.11
188
191
 
@@ -226,6 +229,7 @@ All Tapo devices require authentication.<br>Hub-Connected Devices may work acros
226
229
  - Hardware: 1.0.0 (US) / Firmware: 1.3.7
227
230
  - Hardware: 1.0.0 (US) / Firmware: 1.4.0
228
231
  - **P110**
232
+ - Hardware: 1.0 (AU) / Firmware: 1.3.1
229
233
  - Hardware: 1.0 (EU) / Firmware: 1.0.7
230
234
  - Hardware: 1.0 (EU) / Firmware: 1.2.3
231
235
  - Hardware: 1.0 (UK) / Firmware: 1.3.0
@@ -278,10 +282,13 @@ All Tapo devices require authentication.<br>Hub-Connected Devices may work acros
278
282
  - **L510E**
279
283
  - Hardware: 3.0 (US) / Firmware: 1.0.5
280
284
  - Hardware: 3.0 (US) / Firmware: 1.1.2
285
+ - **L530B**
286
+ - Hardware: 3.0 (EU) / Firmware: 1.1.9
281
287
  - **L530E**
282
288
  - Hardware: 3.0 (EU) / Firmware: 1.0.6
283
289
  - Hardware: 3.0 (EU) / Firmware: 1.1.0
284
290
  - Hardware: 3.0 (EU) / Firmware: 1.1.6
291
+ - Hardware: 2.0 (TW) / Firmware: 1.1.1
285
292
  - Hardware: 2.0 (US) / Firmware: 1.1.0
286
293
  - **L630**
287
294
  - Hardware: 1.0 (EU) / Firmware: 1.1.2
@@ -300,12 +307,15 @@ All Tapo devices require authentication.<br>Hub-Connected Devices may work acros
300
307
  - Hardware: 1.0 (US) / Firmware: 1.1.0
301
308
  - Hardware: 1.0 (US) / Firmware: 1.1.3
302
309
  - **L930-5**
310
+ - Hardware: 1.0 (EU) / Firmware: 1.2.5
303
311
  - Hardware: 1.0 (US) / Firmware: 1.1.2
304
312
 
305
313
  ### Cameras
306
314
 
307
315
  - **C100**
308
316
  - Hardware: 4.0 / Firmware: 1.3.14
317
+ - **C110**
318
+ - Hardware: 2.0 (EU) / Firmware: 1.4.3
309
319
  - **C210**
310
320
  - Hardware: 2.0 / Firmware: 1.3.11
311
321
  - Hardware: 2.0 (EU) / Firmware: 1.4.2
@@ -344,6 +354,7 @@ All Tapo devices require authentication.<br>Hub-Connected Devices may work acros
344
354
  ### Hubs
345
355
 
346
356
  - **H100**
357
+ - Hardware: 1.0 (AU) / Firmware: 1.5.23
347
358
  - Hardware: 1.0 (EU) / Firmware: 1.2.3
348
359
  - Hardware: 1.0 (EU) / Firmware: 1.5.10
349
360
  - Hardware: 1.0 (EU) / Firmware: 1.5.5
@@ -362,6 +373,7 @@ All Tapo devices require authentication.<br>Hub-Connected Devices may work acros
362
373
  - Hardware: 1.0 (EU) / Firmware: 1.12.0
363
374
  - **T100**
364
375
  - Hardware: 1.0 (EU) / Firmware: 1.12.0
376
+ - Hardware: 1.0 (US) / Firmware: 1.12.0
365
377
  - **T110**
366
378
  - Hardware: 1.0 (EU) / Firmware: 1.8.0
367
379
  - Hardware: 1.0 (EU) / Firmware: 1.9.0
@@ -96,6 +96,15 @@
96
96
  },
97
97
  "description": "List of devices to manually add."
98
98
  },
99
+ "excludeMacAddresses": {
100
+ "title": "Exclude MAC Addresses",
101
+ "type": "array",
102
+ "items": {
103
+ "title": "MAC Address",
104
+ "type": "string"
105
+ },
106
+ "description": "List of MAC addresses to exclude from device discovery. Format: AA:BB:CC:11:22:33"
107
+ },
99
108
  "waitTimeUpdate": {
100
109
  "title": "Wait Time Update (milliseconds)",
101
110
  "type": "integer",
@@ -177,6 +186,22 @@
177
186
  "helpvalue": "Before resorting to manually specifying devices. Try setting the broadcast address and check your router/switch/firewall configuration. You must assign static IP addresses to your devices to use this configuration."
178
187
  }
179
188
  ]
189
+ },
190
+ {
191
+ "type": "fieldset",
192
+ "title": "Exclude MAC Addresses",
193
+ "description": "Specify MAC addresses to exclude from device discovery.",
194
+ "expandable": true,
195
+ "items": [
196
+ {
197
+ "key": "excludeMacAddresses",
198
+ "type": "array",
199
+ "items": {
200
+ "title": "MAC Address",
201
+ "type": "string"
202
+ }
203
+ }
204
+ ]
180
205
  }
181
206
  ]
182
207
  },
package/dist/config.d.ts CHANGED
@@ -16,6 +16,7 @@ export interface KasaPythonConfigInput {
16
16
  offlineInterval?: number;
17
17
  additionalBroadcasts?: string[];
18
18
  manualDevices?: (string | ConfigDevice)[];
19
+ excludeMacAddresses?: string[];
19
20
  waitTimeUpdate?: number;
20
21
  advancedPythonLogging?: boolean;
21
22
  }
@@ -33,6 +34,7 @@ export type KasaPythonConfig = {
33
34
  offlineInterval: number;
34
35
  additionalBroadcasts: string[];
35
36
  manualDevices: ConfigDevice[];
37
+ excludeMacAddresses: string[];
36
38
  };
37
39
  advancedOptions: {
38
40
  waitTimeUpdate: number;
package/dist/config.js CHANGED
@@ -39,6 +39,7 @@ export const defaultConfig = {
39
39
  offlineInterval: 7,
40
40
  additionalBroadcasts: [],
41
41
  manualDevices: [],
42
+ excludeMacAddresses: [],
42
43
  },
43
44
  advancedOptions: {
44
45
  waitTimeUpdate: 100,
@@ -78,6 +79,9 @@ function validateConfig(config) {
78
79
  if (config.manualDevices !== undefined && !Array.isArray(config.manualDevices)) {
79
80
  errors.push('`manualDevices` should be an array.');
80
81
  }
82
+ if (config.excludeMacAddresses !== undefined && !Array.isArray(config.excludeMacAddresses)) {
83
+ errors.push('`excludeMacAddresses` should be an array of strings.');
84
+ }
81
85
  validateType(config, 'waitTimeUpdate', 'number', errors);
82
86
  validateType(config, 'advancedPythonLogging', 'boolean', errors);
83
87
  return errors;
@@ -110,6 +114,7 @@ export function parseConfig(config) {
110
114
  offlineInterval: (c.offlineInterval ?? defaultConfig.discoveryOptions.offlineInterval) * 24 * 60 * 60 * 1000,
111
115
  additionalBroadcasts: c.additionalBroadcasts ?? defaultConfig.discoveryOptions.additionalBroadcasts,
112
116
  manualDevices: c.manualDevices ? convertManualDevices(c.manualDevices) : defaultConfig.discoveryOptions.manualDevices,
117
+ excludeMacAddresses: c.excludeMacAddresses ?? defaultConfig.discoveryOptions.excludeMacAddresses,
113
118
  },
114
119
  advancedOptions: {
115
120
  waitTimeUpdate: c.waitTimeUpdate ?? defaultConfig.advancedOptions.waitTimeUpdate,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export default class DeviceManager {
9
9
  private password;
10
10
  private additionalBroadcasts;
11
11
  private manualDevices;
12
+ private excludeMacAddresses;
12
13
  constructor(platform: KasaPythonPlatform);
13
14
  private convertManualDevices;
14
15
  private updateDeviceAlias;
@@ -10,6 +10,7 @@ export default class DeviceManager {
10
10
  password;
11
11
  additionalBroadcasts;
12
12
  manualDevices;
13
+ excludeMacAddresses;
13
14
  constructor(platform) {
14
15
  this.platform = platform;
15
16
  this.log = platform.log;
@@ -18,6 +19,7 @@ export default class DeviceManager {
18
19
  this.apiUrl = `http://127.0.0.1:${platform.port}`;
19
20
  this.additionalBroadcasts = platform.config.discoveryOptions.additionalBroadcasts;
20
21
  this.manualDevices = platform.config.discoveryOptions.manualDevices.map(device => device.host);
22
+ this.excludeMacAddresses = platform.config.discoveryOptions.excludeMacAddresses;
21
23
  }
22
24
  convertManualDevices(manualDevices) {
23
25
  return manualDevices.map(device => {
@@ -83,6 +85,7 @@ export default class DeviceManager {
83
85
  const response = await axios.post(`${this.apiUrl}/discover`, {
84
86
  additionalBroadcasts: this.additionalBroadcasts,
85
87
  manualDevices: this.manualDevices,
88
+ excludeMacAddresses: this.excludeMacAddresses,
86
89
  }, config);
87
90
  const devices = response.data;
88
91
  if (!devices || Object.keys(devices).length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"deviceManager.js","sourceRoot":"","sources":["../../src/devices/deviceManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deviceManager.js","sourceRoot":"","sources":["../../src/devices/deviceManager.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,7 @@ export const LightBulbs = [
59
59
  'KL135',
60
60
  'KL50',
61
61
  'KL60',
62
+ 'LB100',
62
63
  'LB110',
63
64
  'L510',
64
65
  'L530',
@@ -73,6 +74,7 @@ export const LightBulbs = [
73
74
  ];
74
75
  export const Unsupported = [
75
76
  'C100',
77
+ 'C110',
76
78
  'C210',
77
79
  'C225',
78
80
  'C325WB',
@@ -1 +1 @@
1
- {"version":3,"file":"kasaDevices.js","sourceRoot":"","sources":["../../src/devices/kasaDevices.ts"],"names":[],"mappings":"AA4FA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC"}
1
+ {"version":3,"file":"kasaDevices.js","sourceRoot":"","sources":["../../src/devices/kasaDevices.ts"],"names":[],"mappings":"AA4FA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC"}
@@ -114,6 +114,7 @@ async def discover_devices(
114
114
  password: Optional[str] = None,
115
115
  additional_broadcasts: Optional[List[str]] = None,
116
116
  manual_devices: Optional[List[str]] = None,
117
+ exclude_mac_addresses: Optional[List[str]] = None,
117
118
  ) -> Dict[str, Any]:
118
119
  devices = {}
119
120
  devices_to_remove = []
@@ -131,9 +132,11 @@ async def discover_devices(
131
132
  except (UnsupportedDeviceError, AuthenticationError) as e:
132
133
  print(f"{e.__class__.__name__}: {device.host}", file=sys.stderr)
133
134
  devices_to_remove.append(device.host)
135
+ await safe_disconnect(device)
134
136
  except Exception as e:
135
137
  print(f"Error during discovery: {e}", file=sys.stderr)
136
138
  devices_to_remove.append(device.host)
139
+ await safe_disconnect(device)
137
140
 
138
141
  async def discover_on_broadcast(broadcast: str):
139
142
  print(f"Discovering on broadcast: {broadcast}")
@@ -158,6 +161,8 @@ async def discover_devices(
158
161
  devices[host] = device
159
162
  except Exception as e:
160
163
  print(f"Error during manual device discovery: {e}", file=sys.stderr)
164
+ devices_to_remove.append(host)
165
+ await safe_disconnect(device)
161
166
 
162
167
  discover_tasks = [discover_on_broadcast(bc) for bc in broadcasts]
163
168
  manual_discover_tasks = [discover_manual_device(host) for host in (manual_devices or [])]
@@ -168,11 +173,16 @@ async def discover_devices(
168
173
  host: str
169
174
  device: Device
170
175
 
176
+ for host in devices:
177
+ device = devices[host]
178
+ if device.mac in (exclude_mac_addresses or []):
179
+ devices_to_remove.append(host)
180
+
171
181
  for host in devices_to_remove:
172
182
  device = devices.pop(host, None)
173
183
  if device:
174
184
  print(f"Removing device: {device.alias}")
175
- await device.disconnect()
185
+ await safe_disconnect(device)
176
186
 
177
187
  for host, device_config_dict in device_config_cache.items():
178
188
  device = devices.get(host)
@@ -188,8 +198,7 @@ async def discover_devices(
188
198
  await device.update()
189
199
  except Exception as e:
190
200
  print(f"Error checking device: {e}", file=sys.stderr)
191
- if device:
192
- await device.disconnect()
201
+ await safe_disconnect(device)
193
202
  continue
194
203
 
195
204
  try:
@@ -201,11 +210,11 @@ async def discover_devices(
201
210
  print(f"Skipping device {device.alias} due to Native HomeKit support")
202
211
  if matter_component:
203
212
  print(f"Skipping device {device.alias} due to Matter support")
204
- await device.disconnect()
213
+ await safe_disconnect(device)
205
214
  continue
206
215
  except Exception as e:
207
216
  print(f"Error checking HomeKit and Matter modules: {e}", file=sys.stderr)
208
- await device.disconnect()
217
+ await safe_disconnect(device)
209
218
  continue
210
219
 
211
220
  device_type = device.device_type.value
@@ -217,7 +226,7 @@ async def discover_devices(
217
226
  update_tasks.append(create_device_info(host, device))
218
227
  else:
219
228
  print(f"Skipping unsupported device: {host}")
220
- await device.disconnect()
229
+ await safe_disconnect(device)
221
230
 
222
231
  results = await asyncio.gather(*update_tasks, return_exceptions=True)
223
232
 
@@ -225,26 +234,12 @@ async def discover_devices(
225
234
  host, info = result
226
235
  if isinstance(info, Exception):
227
236
  print(f"Error creating device info for host {host}: {info}", file=sys.stderr)
228
- try:
229
- device_config_dict = device_config_cache.get(host)
230
- if device_config_dict:
231
- device_config = DeviceConfig.from_dict(device_config_dict)
232
- device = await get_or_connect_device(host, device_config)
233
- if device:
234
- await device.disconnect()
235
- device_cache.pop(host, None)
236
- except Exception as e:
237
- print(f"Error disconnecting device: {e}", file=sys.stderr)
237
+ await handle_device_error(host)
238
238
  continue
239
239
  print(f"Device info created for device: {host}")
240
240
  all_device_info[host] = info
241
241
 
242
- for host, device in devices.items():
243
- try:
244
- await device.disconnect()
245
- print(f"Disconnected device: {host}")
246
- except Exception as e:
247
- print(f"Error disconnecting device {host}: {e}", file=sys.stderr)
242
+ await disconnect_all_devices(devices)
248
243
 
249
244
  return all_device_info
250
245
 
@@ -281,21 +276,7 @@ async def get_sys_info(host: str) -> Dict[str, Any]:
281
276
  device_info = custom_serializer(device)
282
277
  return {"sys_info": device_info["sys_info"]}
283
278
  except Exception as e:
284
- try:
285
- if device:
286
- await device.disconnect()
287
- device_cache.pop(host, None)
288
- device_lock = device_lock_cache.get(host, asyncio.Lock())
289
- async with device_lock:
290
- device = await get_or_connect_device(host, device_config)
291
- device_info = custom_serializer(device)
292
- return {"sys_info": device_info["sys_info"]}
293
- except Exception as e:
294
- print(f"GetSysInfo failed: {e}", file=sys.stderr)
295
- if device:
296
- await device.disconnect()
297
- device_cache.pop(host, None)
298
- return {"error": str(e)}
279
+ return await handle_device_error(host, e)
299
280
 
300
281
  async def get_or_connect_device(host: str, device_config: DeviceConfig) -> Device:
301
282
  try:
@@ -307,9 +288,7 @@ async def get_or_connect_device(host: str, device_config: DeviceConfig) -> Devic
307
288
  return device
308
289
  except Exception as e:
309
290
  print(f"Failed to connect to device: {e}", file=sys.stderr)
310
- if device:
311
- await device.disconnect()
312
- device_cache.pop(host, None)
291
+ await safe_disconnect(device)
313
292
  raise
314
293
 
315
294
  async def control_device(
@@ -328,20 +307,7 @@ async def control_device(
328
307
  device = await get_or_connect_device(host, device_config)
329
308
  return await perform_device_action(device, feature, action, value, child_num)
330
309
  except Exception as e:
331
- try:
332
- if device:
333
- await device.disconnect()
334
- device_cache.pop(host, None)
335
- device_lock = device_lock_cache.get(host, asyncio.Lock())
336
- async with device_lock:
337
- device = await get_or_connect_device(host, device_config)
338
- return await perform_device_action(device, feature, action, value, child_num)
339
- except Exception as e:
340
- print(f"ControlDevice failed: {e}", file=sys.stderr)
341
- if device:
342
- await device.disconnect()
343
- device_cache.pop(host, None)
344
- return {"error": str(e)}
310
+ return await handle_device_error(host, e)
345
311
 
346
312
  async def perform_device_action(
347
313
  device: Device,
@@ -415,7 +381,8 @@ async def discover_route():
415
381
  data: Dict[str, Any] = await request.get_json()
416
382
  additional_broadcasts = data.get('additionalBroadcasts', [])
417
383
  manual_devices = data.get('manualDevices', [])
418
- devices_info = await discover_devices(username, password, additional_broadcasts, manual_devices)
384
+ exclude_mac_addresses = data.get('excludeMacAddresses', [])
385
+ devices_info = await discover_devices(username, password, additional_broadcasts, manual_devices, exclude_mac_addresses)
419
386
  return jsonify(devices_info)
420
387
  except Exception as e:
421
388
  print(f"Discover route error: {e}", file=sys.stderr)
@@ -456,4 +423,29 @@ async def cleanup():
456
423
  print("Cleaning up and disconnecting all devices.")
457
424
  await close_all_connections()
458
425
  device_lock_cache.clear()
459
- device_config_cache.clear()
426
+ device_config_cache.clear()
427
+
428
+ async def safe_disconnect(device: Optional[Device]):
429
+ if device:
430
+ try:
431
+ await device.disconnect()
432
+ except Exception as e:
433
+ print(f"Error disconnecting device: {e}", file=sys.stderr)
434
+
435
+ async def handle_device_error(host: str, error: Optional[Exception] = None) -> Dict[str, Any]:
436
+ print(f"Handling device error for host {host}: {error}", file=sys.stderr)
437
+ try:
438
+ device_config_dict = device_config_cache.get(host)
439
+ if device_config_dict:
440
+ device_config = DeviceConfig.from_dict(device_config_dict)
441
+ device = await get_or_connect_device(host, device_config)
442
+ await safe_disconnect(device)
443
+ device_cache.pop(host, None)
444
+ except Exception as e:
445
+ print(f"Error during error handling: {e}", file=sys.stderr)
446
+ return {"error": str(error)}
447
+
448
+ async def disconnect_all_devices(devices: Dict[str, Device]):
449
+ for host, device in devices.items():
450
+ await safe_disconnect(device)
451
+ print(f"Disconnected device: {host}")
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge Kasa Python",
3
3
  "name": "homebridge-kasa-python",
4
- "version": "2.7.2-beta.1",
4
+ "version": "2.7.2-beta.3",
5
5
  "description": "Plugin that uses Python-Kasa API to communicate with Kasa Devices.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "engines": {
16
16
  "homebridge": "^1.8.0 || ^2.0.0-beta.0",
17
- "node": "^18.20.6 || ^20.18.3 || ^22.14.0 || ^23.8.0",
17
+ "node": "^18.20.6 || ^20.18.3 || ^22.14.0 || ^23.9.0",
18
18
  "python": "^3.11.0"
19
19
  },
20
20
  "main": "dist/index.js",
@@ -48,19 +48,19 @@
48
48
  "requirements.txt"
49
49
  ],
50
50
  "devDependencies": {
51
- "@eslint/eslintrc": "^3.2.0",
52
- "@eslint/js": "^9.20.0",
53
- "@types/node": "^22.13.4",
54
- "@typescript-eslint/parser": "^8.24.1",
55
- "@stylistic/eslint-plugin": "^4.0.1",
56
- "eslint": "^9.20.1",
57
- "globals": "^15.15.0",
51
+ "@eslint/eslintrc": "^3.3.0",
52
+ "@eslint/js": "^9.21.0",
53
+ "@types/node": "^22.13.9",
54
+ "@typescript-eslint/parser": "^8.26.0",
55
+ "@stylistic/eslint-plugin": "^4.2.0",
56
+ "eslint": "^9.21.0",
57
+ "globals": "^16.0.0",
58
58
  "homebridge": "^2.0.0-beta.27",
59
59
  "node-persist": "^4.0.4",
60
60
  "nodemon": "^3.1.9",
61
61
  "rimraf": "^6.0.1",
62
62
  "ts-node": "^10.9.2",
63
- "typescript-eslint": "^8.24.1"
63
+ "typescript-eslint": "^8.26.0"
64
64
  },
65
65
  "homepage": "https://github.com/ZeliardM/homebridge-kasa-python#readme",
66
66
  "funding": [
@@ -74,9 +74,9 @@
74
74
  }
75
75
  ],
76
76
  "dependencies": {
77
- "axios": "^1.7.9",
77
+ "axios": "^1.8.2",
78
78
  "ts-essentials": "^10.0.4",
79
- "typescript": "^5.7.3"
79
+ "typescript": "^5.8.2"
80
80
  },
81
81
  "overrides": {
82
82
  "node-persist": "^4.0.4"