Skip to main content

HueBLE

HueBLE logo

PyPI Status Documentation Status Black

Python module for controlling Bluetooth Philips Hue lights.

This Python module enables you to control Philips Hue Bluetooth lights directly from your computer, without the need for a Hue bridge or ZigBee dongle. It leverages the Bleak library to interact with Bluetooth Philips Hue lights.

Features

  • 💡 On/Off control
  • 🌗 Brightness control
  • 🌡️ Colour temp control
  • 🌈 XY colour control
  • ❔ Light state (power/brightness/temp/colour)
  • ⚙️ Light configuration (name)
  • 📊 Light metadata (manufacturer/model/zigbee address)
  • 🤜 Supports push & polling models
  • 🔂 Simple structure
  • 📜 Mediocre documentation
  • ✔️ More emojis than strictly necessary

Requirements

  • 🐍 Python 3.11+
  • 📶 Bleak 0.19.0+
  • 📶 bleak-retry-connector

Supported Operating Systems

  • 🐧 Linux (BlueZ)
    • Ubuntu Desktop (24.04)
    • Arch
    • Buildroot (HomeAssistant OS)
  • 🏢 Windows
    • Windows 10
  • 💾 Mac OSX
    • Sequoia (15.7)
  • 🛜 ESPHome (Bluetooth Proxy)
    • ESP32-C3-Super-Mini
    • ESP32-C5-N4R2

Documentation

https://hueble.readthedocs.io/en/latest/

Installation

PIP

pip install HueBLE

Manual

HueBLE consists of a single file (HueBLE.py) which you can simply put in the same directory as your program. If you are using manual installation make sure the dependencies are installed as well.

pip install bleak bleak-retry-connector dbus-fast

Examples

Quick start example

Example code from example.py

[!NOTE] Do not forget to put the light in pairing mode before first connection!

import asyncio
from bleak import BleakScanner
import HueBLE


async def main():

    # Address of light to connect to
    address = "F6:9B:48:A4:D2:D8"

    # Obtain the BLEDevice from bleak
    device = await BleakScanner.find_device_by_address(address)

    # Initialize the light object
    light = HueBLE.HueBleLight(device)

    # Optionally we could call connect but it will be called automatically
    # on the first request to the light. You might want to call this if
    # you want to subscribe to state changes without changing the lights state.
    # await light.connect()

    # Will automatically connect to the light and turn it off
    await light.set_power(False)

    # Wait
    await asyncio.sleep(5)

    # Turn the light back on again
    await light.set_power(True)

if __name__ == "__main__":
    asyncio.run(main())

Demo program

A more fully featured demo program can be found in examples/demo.py which demonstrates all of the implemented features.

Disclaimer

HueBLE is a software library designed to work with Philips Hue. Philips Hue is a registered trademark of Philips. This project is not affiliated with, endorsed by, or sponsored by Philips (Though I wouldn't mind being sponsored 😉). All other trademarks cited herein are the property of their respective owners.

Download files

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

Source Distribution

hueble-2.2.3.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

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

hueble-2.2.3-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file hueble-2.2.3.tar.gz.

File metadata

  • Download URL: hueble-2.2.3.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hueble-2.2.3.tar.gz
Algorithm Hash digest
SHA256 f0c0cb7b3416bd8fcfd39418a195e89287fd07ca821ac92b798ae2113eb7bb4d
MD5 ea1e6e29e9631c18e4addf5250288ea4
BLAKE2b-256 1ec9a396b2b1b14d57ff23a63b2e216e71960a3ba90deb0d22a165435193c350

See more details on using hashes here.

Provenance

The following attestation bundles were made for hueble-2.2.3.tar.gz:

Publisher: publish-to-pypi.yml on flip-dots/HueBLE

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hueble-2.2.3-py3-none-any.whl.

File metadata

  • Download URL: hueble-2.2.3-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hueble-2.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 53ccaa15c1d33b2d983010ba3147e21cad4be64eab64d805256fd184a3c5a29b
MD5 e12569ffc90d7f271dfb3c2a24d2ce95
BLAKE2b-256 bb529936d0d86a7a586bbd4647f4cd69b85902e2eb2d07209a5469073a968214

See more details on using hashes here.

Provenance

The following attestation bundles were made for hueble-2.2.3-py3-none-any.whl:

Publisher: publish-to-pypi.yml on flip-dots/HueBLE

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.2.3 This release

2 files

2.2.2

2 files

2.2.1

2 files

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

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