Skip to main content

asyncio Python library for connecting to and controlling the Logitech Harmony

Project description

Python library for programmatically using a Logitech Harmony Link or Ultimate Hub.

This library originated from iandday/pyharmony which was a fork of bkanuka/pyharmony with the intent to:

  • Make the harmony library asyncio

  • Ability to provide one’s own custom callbacks to be called

  • Automatic reconnect, even if re-connection cannot be established for a time

  • More easily get the HUB configuration through API call

  • Additional callbacks: connect, disconnect, HUB configuration updated

  • Using unique msgid’s ensuring that responses from the HUB are correctly managed.

Protocol

As the harmony protocol is being worked out, notes will be in PROTOCOL.md.

Status

  • Retrieving current activity

  • Querying for entire device information

  • Querying for activity information only

  • Querying for current activity

  • Starting Activity

  • Sending Command

  • Changing channels

  • Custom callbacks.

Usage

usage: __main__.py [-h] (--harmony_ip HARMONY_IP | --discover)
                   [--protocol {WEBSOCKETS,XMPP}]
                   [--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
                   [--logmodules LOGMODULES]
                   [--show_responses | --no-show_responses] [--wait WAIT]
                   {show_config,show_detailed_config,show_current_activity,start_activity,power_off,sync,listen,activity_monitor,send_command,change_channel}
                   ...

aioharmony - Harmony device control

positional arguments:
  {show_config,show_detailed_config,show_current_activity,start_activity,power_off,sync,listen,activity_monitor,send_command,change_channel}
    show_config         Print the Harmony device configuration.
    show_detailed_config
                        Print the detailed Harmony device configuration.
    show_current_activity
                        Print the current activity config.
    start_activity      Switch to a different activity.
    power_off           Stop the activity.
    sync                Sync the harmony.
    listen              Output everything HUB sends out. Use in combination
                        with --wait.
    activity_monitor    Monitor and show when an activity is changing. Use in
                        combination with --wait to keep monitoring
                        foractivities otherwise only current activity will be
                        shown.
    send_command        Send a simple command.
    send_commands       Send a series of simple commands separated by spaces.
    change_channel      Change the channel

optional arguments:
  -h, --help            show this help message and exit
  --harmony_ip HARMONY_IP
                        IP Address of the Harmony device, multiple IPs can be
                        specified as a comma separated list without spaces.
                        (default: None)
  --discover            Scan for Harmony devices. (default: False)
  --protocol {WEBSOCKETS,XMPP}
                        Protocol to use to connect to HUB. Note for XMPP one
                        has to ensure that XMPP is enabledon the hub.
                        (default: None)
  --loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}
                        Logging level for all components to print to the
                        console. (default: ERROR)
  --logmodules LOGMODULES
                        Restrict logging to modules specified. Multiple can be
                        provided as a comma separated list without any spaces.
                        Use * to include any further submodules. (default:
                        None)
  --show_responses      Print out responses coming from HUB. (default: False)
  --no-show_responses   Do not print responses coming from HUB. (default:
                        False)
  --wait WAIT           How long to wait in seconds after completion, useful
                        in combination with --show-responses. Use -1 to wait
                        infinite, otherwise has to be a positive number.
                        (default: 0)

Release Notes

See changelog <https://github.com/Harmony-Libs/aioharmony/blob/main/CHANGELOG.md> for release notes

TODO

  • Redo discovery for asyncio. This will be done once XMPP is re-implemented by Logitech

  • More items can be done from the Harmony iOS app; determining what could be done within the library as well

  • Is it possible to update device configuration?

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

aioharmony-1.0.3.tar.gz (38.8 kB view details)

Uploaded Source

Built Distribution

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

aioharmony-1.0.3-py3-none-any.whl (39.3 kB view details)

Uploaded Python 3

File details

Details for the file aioharmony-1.0.3.tar.gz.

File metadata

  • Download URL: aioharmony-1.0.3.tar.gz
  • Upload date:
  • Size: 38.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aioharmony-1.0.3.tar.gz
Algorithm Hash digest
SHA256 408328b7323bfd0d2172b3e0b208b3b07b6aeec42cb4ea4560196c8fd9ae62ee
MD5 998c1f949502d4cbdf84769a8677e1bf
BLAKE2b-256 db2cdd73eb5dffebb5b23bdc1137533b12b6426a895d76b1284f74b518589ff5

See more details on using hashes here.

Provenance

The following attestation bundles were made for aioharmony-1.0.3.tar.gz:

Publisher: ci.yml on Harmony-Libs/aioharmony

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

File details

Details for the file aioharmony-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: aioharmony-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 39.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aioharmony-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9ec84e13078f0e73a628199938fd706b9c4480b5319d31d7832a508c29daee1d
MD5 f79fbc1186f883ee02c8f2641175b0fa
BLAKE2b-256 b425e0d6829b5c689d43d228472ba5f57c94e1bcc64c7b05da1186ab0fd0c6a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for aioharmony-1.0.3-py3-none-any.whl:

Publisher: ci.yml on Harmony-Libs/aioharmony

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

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