Bleak is an acronym for Bluetooth Low Energy platform Agnostic Klient.
- Free software: MIT license
- Documentation: https://bleak.readthedocs.io.
Bleak is a GATT client software, capable of connecting to BLE devices acting as GATT servers. It is designed to provide a asynchronous, cross-platform Python API to connect and communicate with e.g. sensors.
Installation
$ pip install bleak
Features
- Supports Windows 11, version 22000 and greater
- Supports Linux distributions with BlueZ >= 5.55
- OS X/macOS support via Core Bluetooth API, from at least OS X version 10.15
- Android backend compatible with python-for-android
Bleak supports reading, writing and getting notifications from GATT servers, as well as a function for discovering BLE devices.
Usage
To discover Bluetooth devices that can be connected to:
import asyncio from bleak import BleakScanner async def main(): devices = await BleakScanner.discover() for d in devices: print(d) asyncio.run(main())
Connect to a Bluetooth device and read its model number:
import asyncio from bleak import BleakClient address = "24:71:89:cc:09:05" MODEL_NBR_UUID = "2A24" async def main(address): async with BleakClient(address) as client: model_number = await client.read_gatt_char(MODEL_NBR_UUID) print(f"Model Number: {model_number.decode()}") asyncio.run(main(address))
DO NOT NAME YOUR SCRIPT bleak.py! It will cause a circular import error.
See examples folder for more code, for instance example code for connecting to a TI SensorTag CC2650
