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.5.tar.gz (66.4 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pyheos-1.0.5.tar.gz
Algorithm Hash digest
SHA256 07028d23d0a8f37cee3929a6cf9dbfad82b9efe182999e169c0580f9b787187b
MD5 52109633acf3d1f1f28f33143f915d81
BLAKE2b-256 0e91221b3daa096ec1080cce351738b0359f19a09051f404f28d7d6f98c5ef7b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyheos-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4c94406687240c630dbe4c8c8aa5ac315e7746913b72da779a5377a2ab3f3c63
MD5 74f98089e8fb2977cda309cbbc8bf1b0
BLAKE2b-256 0bed758020b6c61322bc0e7d11ec93c6d6b2cf45cb5ffee614a909ec4ff1972f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page