Skip to main content

AIOHUESYNCBOX

Asyncio package to communicate with Philips Hue Play HDMI Sync Box. This package is aimed at basic control of the box. Initial setup and configuration is assumed to have been done with the official Hue app.

Installation

python3 -m pip install aiohuesyncbox

Usage

Instantiate the HueSyncBox 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 HueSyncBox, 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 = HueSyncBox(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 HueSyncBox next time
print(f"Registration ID: {registration_info.registration_id}")
print(f"Access Token: {registration_info.access_token}")

# Unregister by registration ID.
# HueSyncBox needs to use the associated `access_token` to execute this request.
await box.unregister(registration_info['registration_id'])

Basic usage

from aiohuesyncbox import HueSyncBox

# host and id can be obtained through mDNS/zeroconf discovery
# (or for testing look them up in the official Hue app)
box = HueSyncBox(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.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiohuesyncbox 0.1.2
File Size Uploaded
aiohuesyncbox-0.1.2.tar.gz 25.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiohuesyncbox 0.1.2
File Interpreter ABI Platform
aiohuesyncbox-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 54.0 kB

Release files / aiohuesyncbox-0.1.2.tar.gz

Download URL aiohuesyncbox-0.1.2.tar.gz
Size 25.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e94914179c9fb3c1670e0f1591e02dd97eac61c1759a47b30d11d9eea8ed4524
BLAKE2b-256 checksum
How to use checksums
2f9240300d38cc423313942ae5b3a5060eb0024a548f2ad225d4acbad299ba1d
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.2-py3-none-any.whl

Download URL aiohuesyncbox-0.1.2-py3-none-any.whl
Size 28.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eed6be4ce8ffa55d54404d521e113912f47b1296589ec0dc1a3cbba37e946ca5
BLAKE2b-256 checksum
How to use checksums
daa6fed58ee22f7e0d9ed4aaf2d03d8ea151d39607cff9335c8811a41545888f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.31

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page