Skip to content
hbldhPublic

About

A cross platform Bluetooth Low Energy Client for Python using asyncio

Topics

Resources

Contributing

Stars

2.6k stars

Watchers

29 watching

Forks

Latest commit

 

History

1,800 Commits

Folders and files

Repository files navigation

Bleak

Build and Test PyPI - Downloads Documentation Status
Bleak Logo

Bleak is an acronym for Bluetooth Low Energy platform Agnostic Klient.

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

About

A cross platform Bluetooth Low Energy Client for Python using asyncio

Topics

Resources

Contributing

Stars

2.6k stars

Watchers

29 watching

Forks

Releases

Packages

Used by

Contributors

Languages