使用Python Bleak连接Entertech Flowtime设备时扫描到却无法连接求助
解决Bleak连接Flowtime设备时的"设备未找到"问题
问题背景
Windows 10 + Python 3.8环境下,使用Bleak库连接Entertech Flowtime头环时,扫描阶段能正常获取设备MAC地址,但执行连接操作时触发bleak.exc.BleakDeviceNotFoundError,提示目标设备未找到。使用的是Entertech官方PC SDK的示例代码。
报错信息
INFO - 2023-02-28 14:45:34,569 - enterble.collector.collector - Scanning for Flowtime Headband... INFO - 2023-02-28 14:45:39,595 - enterble.ble.device - Device initialized: "MY MAC ADDRESS": Flowtime Headband INFO - 2023-02-28 14:45:39,595 - enterble.collector.collector - Found "MY MAC ADDRESS": Flowtime Headband INFO - 2023-02-28 14:45:39,596 - enterble.ble.device - Connecting to "MY MAC ADDRESS": Flowtime Headband Traceback (most recent call last): File "c:/Users/enjoy/Documents/EDU-AI/project/AiDO-LOCA/04_version2/brain wave/flowtime.py", line 145, in <module> loop.run_until_complete(data_collector()) File "C:\Users\enjoy\.conda\envs\brain\lib\asyncio\base_events.py", line 616, in run_until_complete return future.result() File "c:/Users/enjoy/Documents/EDU-AI/project/AiDO-LOCA/04_version2/brain wave/flowtime.py", line 133, in data_collector await collector.start() File "C:\Users\enjoy\.conda\envs\brain\lib\site-packages\enterble\collector\collector.py", line 75, in start await self.device.start_notify(char_specifier, callback) File "C:\Users\enjoy\.conda\envs\brain\lib\site-packages\enterble\ble\device.py", line 270, in start_notify await (await self.client()).start_notify(char_specifier, callback) File "C:\Users\enjoy\.conda\envs\brain\lib\site-packages\enterble\ble\device.py", line 129, in client await self.connect() File "C:\Users\enjoy\.conda\envs\brain\lib\site-packages\enterble\ble\device.py", line 113, in connect await self._client.connect() File "C:\Users\enjoy\.conda\envs\brain\lib\site-packages\bleak\__init__.py", line 471, in connect return await self._backend.connect(**kwargs) File "C:\Users\enjoy\.conda\envs\brain\lib\site-packages\bleak\backends\winrt\client.py", line 239, in connect raise BleakDeviceNotFoundError( bleak.exc.BleakDeviceNotFoundError: Device with address "MY MAC ADDRESS" was not found.
解决方案
改用设备UUID连接
Windows平台下Bleak的WinRT后端对MAC地址的寻址支持存在兼容性问题,优先使用扫描时获取的设备UUID替代MAC地址。修改示例代码中指定目标设备的逻辑,将MAC替换为对应UUID。检查设备配对与蓝牙状态
- 确保Flowtime头环未与其他设备(如手机)保持连接,BLE设备通常仅支持单连接
- 手动在Windows蓝牙设置中完成设备配对后,再执行代码连接操作
延长连接超时时间
在连接逻辑中添加timeout参数,避免因设备响应延迟导致连接失败。可修改Entertech SDK中device.py的连接代码:await self._client.connect(timeout=10.0)更新依赖库版本
升级Bleak至最新稳定版(建议>=0.19.0),旧版本WinRT后端存在设备寻址bug;同时确保Entertech PC SDK为最新版本,修复已知兼容性问题。关闭蓝牙适配器节能模式
进入Windows设备管理器,找到蓝牙适配器,在“电源管理”选项卡中取消勾选“允许计算机关闭此设备以节约电源”,避免扫描后蓝牙适配器休眠导致设备无法被寻址。
内容的提问来源于stack exchange,提问作者yeon
相关产品推荐
相关产品推荐

