Skip to main content

Asyncio package to communicate with a Philips Hue Play HDMI Sync Box.

Project description

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

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(registration_info)

    # 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(box.device.name)
    print(box.execution.sync_active)
    print(box.execution.mode)

    # 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 update() to update with latest status from the box
    await box.execution.update()
    print(box.execution.sync_active)
    print(box.execution.mode)

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

aiohuesyncbox-0.0.31.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

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

aiohuesyncbox-0.0.31-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file aiohuesyncbox-0.0.31.tar.gz.

File metadata

  • Download URL: aiohuesyncbox-0.0.31.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for aiohuesyncbox-0.0.31.tar.gz
Algorithm Hash digest
SHA256 1fcfec187bdbb701862e5feaf9b7f32e8f59670c4c32bbce121bdbe74ae3d122
MD5 f736c7aded411d5bee116eaab5be9474
BLAKE2b-256 4cd9f1d2bb6544b3ce4420fcc410bcc4e2f347c9f3d27486db178e5341f44bab

See more details on using hashes here.

File details

Details for the file aiohuesyncbox-0.0.31-py3-none-any.whl.

File metadata

  • Download URL: aiohuesyncbox-0.0.31-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for aiohuesyncbox-0.0.31-py3-none-any.whl
Algorithm Hash digest
SHA256 fccbb3afe609209f6795c56c7cec78937ced28dc139550b225dd24056cb54d1b
MD5 2bf489fb6a0cc8955adec629503c9420
BLAKE2b-256 9e91e947a7bb3740faa9aa173385bd73e68103952545f304188b40389854c9c0

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