diff --git a/src/infuse_iot/tools/native_bt.py b/src/infuse_iot/tools/native_bt.py index 26e507b..310035c 100644 --- a/src/infuse_iot/tools/native_bt.py +++ b/src/infuse_iot/tools/native_bt.py @@ -16,6 +16,7 @@ from bleak.backends.characteristic import BleakGATTCharacteristic from bleak.backends.device import BLEDevice from bleak.backends.scanner import AdvertisementData +from bleak.exc import BleakError from cryptography.exceptions import InvalidTag import infuse_iot.definitions.rpc as defs @@ -214,8 +215,12 @@ def security_state_done(pkt: PacketReceived, _rc: int, response: bytes, challeng async def create_connection(self, request: GatewayRequestConnectionRequest, dev: BLEDevice, queue: asyncio.Queue): try: await self.create_connection_internal(request, dev, queue) + except BleakError as e: + Console.log_info(f"Bleak Error: {str(e)}") + self.wrapped_broadcast(ClientNotificationConnectionFailed(request.infuse_id)) except TimeoutError as e: Console.log_info(f"Timeout: {str(e)}") + self.wrapped_broadcast(ClientNotificationConnectionFailed(request.infuse_id)) def datagram_received(self, data: bytes, addr: tuple[str | Any, int]): loop = asyncio.get_event_loop()