diff --git a/main.py b/main.py index b2e0f28..a91dbd4 100644 --- a/main.py +++ b/main.py @@ -92,6 +92,15 @@ async def trust_and_connect_device(device_path): logging.info(f'Trusted device {device_path}') device_iface = device_obj.get_interface(DEVICE_IFACE) + + try: + logging.info(f"Attempting to disconnect {device_path} before connecting.") + await device_iface.call_disconnect() + await asyncio.sleep(1) # Give it a moment to settle + except DBusError as e: + # This is expected if the device is not already connected. + logging.info(f"Disconnect failed (this is likely okay): {e}") + await device_iface.call_connect() logging.info(f'Connected to device {device_path}') except Exception as e: