Skip to content
/ bleak Public
forked from hbldh/bleak

Bluetooth Low Energy platform Agnostic Klient for Python

License

Notifications You must be signed in to change notification settings

etactica/bleak

This branch is 439 commits behind hbldh/bleak:develop.

Folders and files

NameName
Last commit message
Last commit date
Jan 10, 2022
Jul 1, 2022
Mar 5, 2022
Jan 30, 2022
Aug 2, 2021
Jun 10, 2021
Apr 26, 2018
Oct 10, 2020
Mar 9, 2020
Jun 23, 2020
Oct 16, 2021
Jul 31, 2021
Apr 26, 2018
Jul 1, 2022
Oct 5, 2021
Jun 30, 2020
May 27, 2022
Apr 26, 2018
Feb 5, 2022
Jan 26, 2022
Jan 18, 2022
Feb 5, 2022
Jan 10, 2022
Jan 18, 2022

Repository files navigation

bleak

Bleak Logo
Build and Test PyPI - Downloads Documentation Status

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

async def main(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))))

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

Bluetooth Low Energy platform Agnostic Klient for Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.5%
  • Other 1.5%