Awesome Open Source
Awesome Open Source

===== bleak

.. figure:: :target: :alt: Bleak Logo :scale: 50%

.. image:: :target: :alt: Build and Test

.. image:: :target:

.. image:: :target: :alt: Documentation Status

.. image:: :target:

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.


.. code-block:: bash

$ pip install bleak


  • Supports Windows 10, version 16299 (Fall Creators Update) or greater
  • Supports Linux distributions with BlueZ >= 5.43
  • OS X/macOS support via Core Bluetooth API, from at least OS X version 10.11

Bleak supports reading, writing and getting notifications from GATT servers, as well as a function for discovering BLE devices.


To discover Bluetooth devices that can be connected to:

.. code-block:: python

import asyncio
from bleak import BleakScanner

async def run():
    devices = await
    for d in devices:

loop = asyncio.get_event_loop()

Connect to a Bluetooth device and read its model number:

.. code-block:: python

import asyncio
from bleak import BleakClient

address = "24:71:89:cc:09:05"
MODEL_NBR_UUID = "00002a24-0000-1000-8000-00805f9b34fb"

async def run(address):
    async with BleakClient(address) as client:
        model_number = await client.read_gatt_char(MODEL_NBR_UUID)
        print("Model Number: {0}".format("".join(map(chr, model_number))))

loop = asyncio.get_event_loop()

See examples folder for more code, for instance example code for connecting to a TI SensorTag CC2650 <>_

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
python (55,394
python3 (1,677
cross-platform (707
bluetooth (192
bluetooth-low-energy (90
platform-independent (19