Skip to main content

bleak

Bleak Logo

https://img.shields.io/pypi/v/bleak.svg https://img.shields.io/travis/hbldh/bleak.svg https://ci.appveyor.com/api/projects/status/ujrddq7n2uqqy3bh?svg=true Documentation Status Updates

** This is a fork of the original Bleak library ** by Henrik Blidh, with some modifications to support my needs for my BrickNil project. It has been packaged up for distribution with that project on PyPI. All credit to Henrik for his development of this wonderful asyncio package.

Also credit is due to David Lechner for his work on getting Windows 10 support working.

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)

  • 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.3.1 (2019-04-01)

  • Win10 support

  • Changes to get more device information

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.

Metadata

Release files for bricknil-bleak 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for bricknil-bleak 0.3.1
File Interpreter ABI Platform
bricknil_bleak-0.3.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Release files / bricknil_bleak-0.3.1-py2.py3-none-any.whl

Download URL bricknil_bleak-0.3.1-py2.py3-none-any.whl
Size 37.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
fba7fab357dc34192f68ff42d6a3d6f88e91d0b9040286d3bfa33a4e85a5e6d1
BLAKE2b-256 checksum
How to use checksums
795ece668631eb3bdb181db9348992e1666fc2e1b8f2fe58264cf60e6696f54f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0

Security for bricknil-bleak 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page