Skip to content
/ bleak Public
forked from virantha/bleak

Bluetooth Low Energy platform Agnostic Klient for Python

License

Notifications You must be signed in to change notification settings

dlech/bleak

 
 

Repository files navigation

bleak

Bleak Logo

https://dev.azure.com/hbldh/github/_apis/build/status/hbldh.bleak?branchName=master Documentation Status Updates

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.

Be warned: Bleak is still in an early state of implementation.

Installation

$ pip install bleak

Features

  • Supports Windows 10, version 16299 (Fall Creators Update) or greater
  • Supports Linux distributions with BlueZ >= 5.43
  • Plans on macOS support via Core Bluetooth API (see develop branch for progress)

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 discover

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

loop = asyncio.get_event_loop()
loop.run_until_complete(run())

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 = "00002a24-0000-1000-8000-00805f9b34fb"

async def run(address, loop):
    async with BleakClient(address, loop=loop) 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()
loop.run_until_complete(run(address, loop))

See examples folder for more code, among other example code for connecting to a TI SensorTag CC2650

About

Bluetooth Low Energy platform Agnostic Klient for Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 89.6%
  • PowerShell 7.9%
  • Makefile 2.5%