Skip to main content

An async python library for controlling HEOS devices through the HEOS CLI Protocol

Project description

pyheos

CI Status codecov image image image

An asynchronous Python library for controlling Denon and Marantz products with HEOS® Built-in through the HEOS CLI Protocol (version 1.21 for HEOS firmware 3.40 or newer).

Installation

pip install pyheos

Getting Started

Heos class

The Heos class is the implementation providing control to all HEOS compatible devices on the local network through a single network connection. It is suggested to connect to a device that is hard-wired.

pyheos.Heos.create_and_connect(host: str, **kwargs) -> Heos

Coroutine that accepts the host and options arguments (as defined in the pyheos.HeosOptions below), creates an instance of Heos and connects, returning the instance.

pyheos.Heos(options: HeosOptions)

  • options: HeosOptions: An instance of HeosOptions that encapsulates options and configuration (see below)

pyheos.Heos.connect() -> None

Connect to the specified host. This method is a coroutine.

pyheos.Heos.disconnect() -> None

Disconnect from the specified host. This method is a coroutine.

pyheos.Heos.get_players(*, refresh)

Retrieve the available players as a dict[int, pyheos.Heos.HeosPlayer] where the key represents the player_id and the value the HeosPlayer instance. This method is a coroutine. This method will populate the players property and will begin tracking changes to the players.

  • refresh: Set to True to retrieve the latest available players from the CLI. The default is False and will return the previous loaded players.

HeosOptions class

This class encapsulates the options and configuration for connecting to a HEOS system.

pyheos.HeosOptions(host, *, timeout, heart_beat, heart_beat_interval, dispatcher, auto_reconnect, auto_reconnect_delay, auto_reconnect_max_attempts, credentials)

  • host: str: A host name or IP address of a HEOS-capable device. This parameter is required.
  • timeout: float: The timeout in seconds for opening a connection and issuing commands to the device. Default is pyheos.const.DEFAULT_TIMEOUT = 15.0. This parameter is required.
  • heart_beat: bool: Set to True to enable heart beat messages, False to disable. Used in conjunction with heart_beat_delay. The default is True.
  • heart_beat_interval: float: The interval in seconds between heart beat messages. Used in conjunction with heart_beat. Default is pyheos.const.DEFAULT_HEART_BEAT = 10.0
  • events: bool: Set to True to enable event updates, False to disable. The default is True.
  • all_progress_events: bool: Set to True to receive media progress events, False to only receive media changed events. The default is True.
  • dispatcher: pyheos.Dispatcher | None: The dispatcher instance to use for event callbacks. If not provided, an internally created instance will be used.
  • auto_failover: bool: Set to True to automatically failover to other hosts if the connection is lost. The default is False. Used in conjunction with auto_failover_hosts.
  • auto_failover_hosts: Sequence[str]: A sequence of host names or IP addresses of other hosts in the HEOS system. The default is an empty list, which will be populated automatically from the system information.
  • auto_reconnect: bool: Set to True to automatically reconnect if the connection is lost. The default is False. Used in conjunction with auto_reconnect_delay.
  • auto_reconnect_delay: float: The number of seconds to wait before attempting to reconnect upon a connection failure. The default is DEFAULT_RECONNECT_DELAY = 1.0. Used in conjunction with auto_reconnect.
  • auto_reconnect_max_attempts: float: The maximum number of reconnection attempts before giving up. Set to 0 for unlimited attempts. The default is 0 (unlimited).
  • credentials: credentials to use to automatically sign-in to the HEOS account upon successful connection. If not provided, the account will not be signed in.
Example:
import pyheos

heos = await Heos.create_and_connect('172.16.0.1', auto_reconnect=True)

players = await heos.get_players()
...
await heos.disconnect()

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

pyheos-1.0.6.tar.gz (66.4 kB view details)

Uploaded Source

Built Distribution

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

pyheos-1.0.6-py3-none-any.whl (54.4 kB view details)

Uploaded Python 3

File details

Details for the file pyheos-1.0.6.tar.gz.

File metadata

  • Download URL: pyheos-1.0.6.tar.gz
  • Upload date:
  • Size: 66.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyheos-1.0.6.tar.gz
Algorithm Hash digest
SHA256 925d6451ffb484cb766dc3cde56f9d2b42115ecc2ce86db2f67f302b9bc9abc4
MD5 858e5629de954017809811ac8b1c0043
BLAKE2b-256 13401acfb53f57c6c15653e3a0ceef946b8bfd7b0899ad9888dfbe6a522ac338

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyheos-1.0.6.tar.gz:

Publisher: publish.yaml on andrewsayre/pyheos

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

File details

Details for the file pyheos-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: pyheos-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyheos-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8ffc8bc426da9fc8da00731f271ca2c037d791e6157778d0a0b16447b1fedf6a
MD5 d442b7c6d76bf5511099d57afba6f505
BLAKE2b-256 ab1ed7da5db3b742fd98c780309921169add8c4302fff0654ab5368c37d5f2fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyheos-1.0.6-py3-none-any.whl:

Publisher: publish.yaml on andrewsayre/pyheos

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