bleak
** 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.
Free software: MIT license
Documentation: https://bleak.readthedocs.io.
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)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.