Skip to main content

Bluetooth Low Energy platform Agnostic Klient

Project description


=====
bleak
=====

.. image:: https://www.dropbox.com/s/fm0670e9yrmwr5t/Bleak_logo.png?raw=1
:target: https://github.com/hbldh/bleak
:alt: Bleak Logo
:scale: 50%

|

.. image:: https://dev.azure.com/hbldh/github/_apis/build/status/hbldh.bleak?branchName=master
:target: https://dev.azure.com/hbldh/github/_build/latest?definitionId=4&branchName=master

.. image:: https://img.shields.io/pypi/v/bleak.svg
:target: https://pypi.python.org/pypi/bleak

.. image:: https://readthedocs.org/projects/bleak/badge/?version=latest
:target: https://bleak.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://pyup.io/repos/github/hbldh/bleak/shield.svg
:target: https://pyup.io/repos/github/hbldh/bleak/
:alt: Updates

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
------------

.. code-block:: bash

$ 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:

.. code-block:: python

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:

.. code-block:: python

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 <http://www.ti.com/ww/en/wireless_connectivity/sensortag/>`_


=======
History
=======

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.3.0.tar.gz (42.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bleak-0.3.0-py2.py3-none-any.whl (35.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file bleak-0.3.0.tar.gz.

File metadata

  • Download URL: bleak-0.3.0.tar.gz
  • Upload date:
  • Size: 42.6 kB
  • Tags: Source
  • Uploaded using 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.1

File hashes

Hashes for bleak-0.3.0.tar.gz
Algorithm Hash digest
SHA256 72138f753b30c0d8ab13b40440775af2012621a88ebcfc7609f20589cc6c0da4
MD5 fc47ad4923b1297eed21b6dac49ef090
BLAKE2b-256 68b2fc268b86f1a628652a98589fe67d57a73ec3011ef4bfce903acc029c09bc

See more details on using hashes here.

File details

Details for the file bleak-0.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: bleak-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0

File hashes

Hashes for bleak-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f26e1605896eac55bc9da24949d543d50163503d98636aa21134ed07c34ba313
MD5 87182ddd77d6caa589791a9963901bfa
BLAKE2b-256 e19c54d137e44ca3b7e30468428cc7a4f2f51d2a6eb6f32c0217db3a62dccebf

See more details on using hashes here.

Supported by

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