From d29a704b7d1f2ca28a7861b8280f5e5b056309e9 Mon Sep 17 00:00:00 2001 From: Alex Schofield Date: Fri, 7 Feb 2025 22:02:04 +0000 Subject: add functionality to look for devices in loop until TP350S found --- src/discover.py | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) (limited to 'src/discover.py') diff --git a/src/discover.py b/src/discover.py index 59889d9..478995f 100644 --- a/src/discover.py +++ b/src/discover.py @@ -1,21 +1,27 @@ from bleak import BleakScanner from logger import get_logger +import asyncio logger = get_logger("Discovery") async def discover(debug=False): - try: - logger.info("Starting Bluetooth discovery...") - scan = await BleakScanner.discover() - logger.info("Completed Bluetooth discovery!") - logger.debug(scan) - devices = [{"name": device.name, "address": device.address} for device in scan] - filtered_devices = [ - device - for device in devices - if device["name"] and "TP350S" in device["name"] - ] - return filtered_devices - except Exception as e: - logger.error(f"There was an issue during Bluetooth discovery: \n {e}") - raise + while True: + try: + logger.info("Starting Bluetooth discovery...") + scan = await BleakScanner.discover() + logger.info("Completed Bluetooth discovery!") + logger.debug(scan) + devices = [{"name": device.name, "address": device.address} for device in scan] + filtered_devices = [ + device + for device in devices + if device["name"] and "TP350S" in device["name"] + ] + if filtered_devices: + return filtered_devices + else: + logger.info("No device was found. Trying again in 5 seconds...") + await asyncio.sleep(5) + except Exception as e: + logger.error(f"There was an issue during Bluetooth discovery: \n {e}") + raise -- cgit v1.2.3