An async python library for controlling HEOS devices through the HEOS CLI Protocol (version 1.17 for players with firmware 2.41.140 or newer).
pip install pyheos
or
pip install --use-wheel pyheos
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.
host: str
: The IP Address or hostname of a HEOS device on the local network. This parameter is required.timeout: float
: Number of seconds to wait during connection and issuing commands. Default ispyheos.const.DEFAULT_TIMEOUT = 5.0
. This parameter is required.heart_beat: Optional[float]
: Number of seconds since last activity to issue a heart-beat command. Default ispyheos.const.DEFAULT_HEART_BEAT = 60.0
. Set this parameter toNone
to disable heart-beat.all_progress_events
: Set toTrue
to receive signals for each media play-back progression orFalse
to only receive a signal when media state transitions to playing or changes. Default isTrue
. This parameter is required.dispatcher: Optional[pyheos.Dispatcher]
: An instance of dispatcher to use for raising signals. The default isNone
which results in use of the default dispatcher implementation.
Connect to the specified host. This method is a coroutine.
auto_reconnect: bool
: Set toTrue
to automatically reconnect to the host upon disconnection. The default isFalse
.reconnect_delay: float
: The number of seconds to wait before attempting to reconnect upon a connection failure. The default isDEFAULT_RECONNECT_DELAY = 5.0
Disconnect from the specified host. This method is a coroutine.
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 toTrue
to retrieve the latest available players from the CLI. The default isFalse
and will return the previous loaded players.
import pyheos
heos = Heos('172.16.0.1')
await heos.connect(auto_reconnect=True)
players = await heos.get_players()
...
await heos.disconnect()