'Python's Bluetooth library of the Bleak report "bleak.exc.BleakError: Could not get GATT services: Unreachable" , how to solve it?

I'm a rookie, I've been doing nothing for a few days and have to turn to overflow for help (┬┬﹏┬┬)

Windows 10 downloads a python third-party library of the bleak package and conda's virtual environment tf-gpu-3.7 local install it.

Use bleak's example file:https://github.com/hbldh/bleak/blob/develop/examples/get_services.py

The bluetooth service characteristic value can be obtained normally. I will be according to the document using read_gatt_descriptor and read_gatt_char, Pycharm is suddenly the error. (I didn't change the code for example file at this point)

ERROR:

C:\ProgramData\Anaconda3\envs\tf-gpu-3.7\python.exe C:/Users/Administrator/PycharmProjects/pythonProject/main.py
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/pythonProject/main.py", line 27, in <module>
    asyncio.run(main(sys.argv[1] if len(sys.argv) == 2 else ADDRESS))
  File "C:\ProgramData\Anaconda3\envs\tf-gpu-3.7\lib\asyncio\runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "C:\ProgramData\Anaconda3\envs\tf-gpu-3.7\lib\asyncio\base_events.py", line 587, in run_until_complete
    return future.result()
  File "C:/Users/Administrator/PycharmProjects/pythonProject/main.py", line 19, in main
    async with BleakClient(address) as client:
  File "C:\ProgramData\Anaconda3\envs\tf-gpu-3.7\lib\site-packages\bleak-0.15.0a1-py3.7.egg\bleak\backends\client.py", line 61, in __aenter__
    await self.connect()
  File "C:\ProgramData\Anaconda3\envs\tf-gpu-3.7\lib\site-packages\bleak-0.15.0a1-py3.7.egg\bleak\backends\winrt\client.py", line 276, in connect
    await self.get_services()
  File "C:\ProgramData\Anaconda3\envs\tf-gpu-3.7\lib\site-packages\bleak-0.15.0a1-py3.7.egg\bleak\backends\winrt\client.py", line 456, in get_services
    "Could not get GATT services",
  File "C:\ProgramData\Anaconda3\envs\tf-gpu-3.7\lib\site-packages\bleak-0.15.0a1-py3.7.egg\bleak\backends\winrt\client.py", line 105, in _ensure_success
    raise BleakError(f"{fail_msg}: Unreachable")
bleak.exc.BleakError: Could not get GATT services: Unreachable

Picture:https://tupian.li/images/2022/03/26/image4e67fd58c248b7b3.png

I don't know how to solve it.The error is too sudden. It was fine a while ago, but now it doesn't work.

I recreated the virtual environment and re-installed the bleak, and unfortunately the error was repeated.

ESP32 restarted several times, pyCharm wrote again several times, but they all reported the same error. A few days ago, I asked the author for help, but I haven't replied yet...

ESP32 Code:https://github.com/hbldh/bleak/files/8348469/BLE.UART.txt

Captured Bluetooth packets:https://github.com/hbldh/bleak/files/8348459/ERROR.txt

How to resolve the sudden error:Could not get GATT services: Unreachable?



Solution 1:[1]

Sorry, it's not clear where I will describe what is wrong...

The problem is over. I find the cause of the error:

ESP.restart();

I forgot to comment on the esp.restart function, causing ESP32 to keep rebooting. Therefore, the services of Bluetooth cannot be obtained.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1