Skip to main content

Bluetooth Low Energy platform Agnostic Klient

Project description

bleak

Bleak Logo https://dev.azure.com/hbldh/github/_apis/build/status/hbldh.bleak?branchName=master https://img.shields.io/pypi/v/bleak.svg Documentation Status https://img.shields.io/badge/code%20style-black-000000.svg

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

  • 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

History

0.5.0 (2019-08-02)

  • macOS support added (thanks to @kevincar)

  • Merged #90 which fixed #89: Leaking callbacks in BlueZ

  • Merged #92 which fixed #91, Prevent leaking of DBus connections on discovery

  • Merged #96: Regex patterns

  • Merged #86 which fixed #83 and #82

  • Recovered old .NET discovery method to try for #95

  • Merged #80: macOS development

0.4.3 (2019-06-30)

  • Fix for #76

  • Fix for #69

  • Fix for #74

  • Fix for #68

  • Fix for #70

  • Merged #66

0.4.2 (2019-05-17)

  • Fix for missed part of PR #61.

0.4.1 (2019-05-17)

  • Merging of PR #61, improvements and fixes for multiple issues for BlueZ backend

  • Implementation of issue #57

  • Fixing issue #59

  • Documentation fixes.

0.4.0 (2019-04-10)

  • Transferred code from the BleakUWPBridge C# support project to pythonnet code

  • Fixed BlueZ >= 5.48 issues regarding Battery Service

  • Fix for issue #55

0.3.0 (2019-03-18)

  • Fix for issue #53: Windows and Python 3.7 error

  • Azure Pipelines used for CI

0.2.4 (2018-11-30)

  • Fix for issue #52: Timing issue getting characteristics

  • Additional fix for issue #51.

  • Bugfix for string method for BLEDevice.

0.2.3 (2018-11-28)

  • Fix for issue #51: dpkg-query not found on all Linux systems

0.2.2 (2018-11-08)

  • Made it compliant with Python 3.5 by removing f-strings

0.2.1 (2018-06-28)

  • Improved logging on .NET discover method

  • Some type annotation fixes in .NET code

0.2.0 (2018-04-26)

  • Project added to Github

  • First version on PyPI.

  • Working Linux (BlueZ DBus API) backend.

  • Working Windows (UWP Bluetooth API) backend.

0.1.0 (2017-10-23)

  • Bleak created.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bleak-0.5.0.tar.gz (80.3 kB view hashes)

Uploaded Source

Built Distribution

bleak-0.5.0-py2.py3-none-any.whl (84.0 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page