AIOHUESYNCBOX
Asyncio package to communicate with Philips Hue Play Sync devices (box and screen sync).
This package is aimed at basic control of the devices. Initial setup and configuration is assumed to have been done with the official Hue app.
Installation
python3 -m pip install aiohuesyncbox
Usage
Instantiate the HueSyncDevice class and access the API.
For more details on the API see the official API documentation on https://developers.meethue.com (requires free registration)
Note on changing bridge
Changing a bridge is a bit more involved than other calls.
After calling box.hue.set_bridge() the syncbox will start switching which takes a while (seems to take about 15 seconds).
You will have to wait until the attributes match the expected endstate, but the status displayed on the API can be a bit confusing during the process.
These are the status changes I see when switching from bridge A to bridge B.
- ID: Bridge A, IP: Bridge A, Status: connected
- Call
box.hue.set_bridge()with info for bridge B - ID: Bridge B, IP: Bridge A, Status: connecting
- ID: Bridge B, IP: Bridge B, Status: disconnected
- ID: Bridge B, IP: Bridge B, Status: connected or ID: Bridge B, IP: Bridge B, Status: invalidgroup
Examples
The examples below are available as a runnable script in the repository.
There is also an example on using zeroconf for device discovery.
Registration
from aiohuesyncbox import HueSyncDevice, InvalidState
# host and id can be obtained through mDNS/zeroconf discovery
# (or for testing look them up in the official Hue app)
# The ID is the number that looks like C43212345678
box = HueSyncDevice(host, id)
print("Press the button on the box for a few seconds until the light blinks green.")
registration_info = None
while not registration_info:
try:
registration_info = await box.register("Your application", "Your device")
except InvalidState:
# Indicates the button was not pressed
pass
await asyncio.sleep(1)
# Save registration_info somewhere and use the 'access_token' when instantiating HueSyncDevice next time
print(f"Registration ID: {registration_info.registration_id}")
print(f"Access Token: {registration_info.access_token}")
# Unregister by registration ID.
# HueSyncDevice needs to use the associated `access_token` to execute this request.
await box.unregister(registration_info['registration_id'])
Basic usage
from aiohuesyncbox import HueSyncDevice
# host and id can be obtained through mDNS/zeroconf discovery
# (or for testing look them up in the official Hue app)
box = HueSyncDevice(host, id, access_token_from_registration_info)
# Call initialize before interacting with the box
await box.initialize()
print(f"Name: {box.device.name}")
print(f"Sync Active: {box.execution.sync_active}")
print(f"Mode: {box.execution.mode}")
print(f"HDMI Source: {box.execution.hdmi_source}")
# Turn the box on, start syncing with video mode on input 4
await box.execution.set_state(sync_active=True, mode="video", hdmi_source="input4")
# Call refresh_data() to update with latest status from the box
await box.refresh_data()
print(f"Sync Active: {box.execution.sync_active}")
print(f"Mode: {box.execution.mode}")
print(f"HDMI Source: {box.execution.hdmi_source}")
Metadata
Release files for aiohuesyncbox 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aiohuesyncbox-0.1.4.tar.gz | 26.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aiohuesyncbox-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.6 kB
Release files / aiohuesyncbox-0.1.4.tar.gz
| Download URL | aiohuesyncbox-0.1.4.tar.gz |
|---|---|
| Size | 26.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f3753af597eafb9fa83dd9c9f4ae4fcbf9321b5291efec144490c2148c8ac46
|
|
BLAKE2b-256 checksum How to use checksums |
e81dd677dc789194c5762092709ab607ac74b6d745d2616671af9b32560d3c94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / aiohuesyncbox-0.1.4-py3-none-any.whl
| Download URL | aiohuesyncbox-0.1.4-py3-none-any.whl |
|---|---|
| Size | 28.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
331074eaa35a691a38061c755a1db7db38df24e370ed038ceb3e8208fa85ee5f
|
|
BLAKE2b-256 checksum How to use checksums |
17653c63436d68b865c54e773bac04ea73ef4e0d53ecea81bfc0f2baed1d7419
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|