0.1.29
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled

This commit is contained in:
paul2212
2026-03-16 18:30:19 +01:00
parent 2a7915a707
commit 4c1bedf166
6 changed files with 26 additions and 7 deletions

View File

@@ -487,8 +487,25 @@ async def connect(
if "br-connection-not-supported" in msg:
last_exc = exc
if not forced_rescan_done:
print(
"BLE connection failed with 'br-connection-not-supported'. "
"Attempting to clear device cache with 'bluetoothctl remove' and rescan."
)
# Aggressive recovery: try to remove the device from bluez's cache
if address:
try:
remove_cmd = f'echo -e "remove {address}\\nquit" | bluetoothctl'
proc = await asyncio.create_subprocess_shell(
remove_cmd,
stdout=asyncio.subprocess.DEVNULL,
stderr=asyncio.subprocess.DEVNULL,
)
await asyncio.wait_for(proc.communicate(), timeout=10.0)
except Exception as remove_exc:
print(f" Failed to run 'bluetoothctl remove': {remove_exc}")
forced_rescan_done = True
target = await resolve_ble_target(None)
target = await resolve_ble_target(address)
if attempt < BLE_CONNECT_RETRIES:
await asyncio.sleep(BLE_CONNECT_BACKOFF * attempt)
continue