我正在尝试从蓝牙设备读取一些特征。该设备需要 Pin 来配对,但我找不到任何有关如何使用 python-bleak 输入 pin 的资源。
我的代码如下。它将成功连接并获取服务。任何与设备绑定的尝试都会出现错误。
bleak.exc.BleakError:无法与设备配对:19
是否可以使用 python-bleak 与需要 pin 的设备进行配对?如果没有,是否有其他方法使用 python 与设备配对?
import asyncio
from bleak import BleakScanner, BleakClient, exc, BLEDevice, backends
from typing import Any, List, Dict
deviceAdress = "zz:yy:xx:ww:vv:uu".upper()
fixedPin = "012345"
async def GetServices(client:BleakClient) -> backends.service.BleakGATTServiceCollection:
services = await client.get_services()
return services
async def main():
device:BLEDevice = await BleakScanner.find_device_by_address(deviceAdress)
print(device)
client:BleakClient = BleakClient(device, timeout=60)
try:
connectResults = await client.connect()
except Exception as e:
print(e)
await GetServices(client) # Successfully gets services
pairResults = await client.pair() # Fails here
asyncio.run(main())
您使用什么操作系统?在 Windows 上,当 Bleak 连接到允许您输入 PIN 的设备时,应该会出现一个消息框。 Bleak 目前不支持以编程方式进行 PIN 配对(请参阅 https://github.com/hbldh/bleak/discussions/767#discussioncomment-5292532)。