No description
Find a file
2024-10-05 16:22:40 -05:00
.github Update github action version 2024-09-25 09:11:46 +02:00
.vscode vscode: replace deprecated setting 2023-12-22 18:15:59 -06:00
bleak uuids: Remove extra quotes (#1649) 2024-10-01 09:46:24 -05:00
docs docs/troubleshooting: update for macOS 14.5 2024-08-10 13:38:27 -05:00
examples examples: use context manager in detection_callback.py 2024-07-02 11:25:08 -05:00
tests backends/winrt: don't throw exception for properly configured GUI apps (#1581) 2024-06-01 11:14:33 -05:00
typings sort imports with isort 2024-04-28 19:42:30 -05:00
.editorconfig Initial commit. 2018-04-26 23:15:40 +02:00
.gitattributes doc: add troubleshooting page 2020-10-10 14:00:16 -05:00
.gitignore vsocde: add config files 2023-09-01 11:49:19 -05:00
.readthedocs.yml readthedocs: use poetry to install dependencies 2024-10-05 15:10:42 -05:00
AUTHORS.rst Provide a local definition of user32.SetTimer, user32.KillTimer and ole32.CoGetApartmentType on Windows 2024-07-01 12:10:11 -05:00
Bleak_logo.png Initial commit. 2018-04-26 23:15:40 +02:00
Bleak_logo2.png README: new logo 2024-10-05 16:18:22 -05:00
CHANGELOG.rst v0.22.3 2024-10-05 15:57:32 -05:00
CONTRIBUTING.rst sort imports with isort 2024-04-28 19:42:30 -05:00
LICENSE Documentation commit. 2020-06-30 15:59:51 +02:00
poetry.lock readthedocs: use poetry to install dependencies 2024-10-05 15:10:42 -05:00
pyproject.toml v0.22.3 2024-10-05 15:57:32 -05:00
README.rst README: new logo 2024-10-05 16:18:22 -05:00
setup.cfg flake8: ignore E704 2024-04-28 17:43:46 -05:00

=====
bleak
=====

.. image:: https://raw.githubusercontent.com/hbldh/bleak/master/Bleak_logo2.png
    :target: https://github.com/hbldh/bleak
    :alt: Bleak Logo

.. image:: https://github.com/hbldh/bleak/workflows/Build%20and%20Test/badge.svg
    :target: https://github.com/hbldh/bleak/actions?query=workflow%3A%22Build+and+Test%22
    :alt: Build and Test

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

.. image:: https://img.shields.io/pypi/dm/bleak.svg
    :target: https://pypi.python.org/pypi/bleak
    :alt: PyPI - Downloads

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

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black

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.

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

.. code-block:: python

    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:

.. code-block:: python

    import asyncio
    from bleak import BleakClient

    address = "24:71:89:cc:09:05"
    MODEL_NBR_UUID = "2A24"

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