Release 1.0.0
This version implements all of the functionality documented in the HEOS CLI Protocol specification (version at this time 1.21 dated 10/06/2024). There are breaking changes from previous versions. See notes below.
Fixes/improvements: 🐛
- Invocation of the command_error callbacks now occur outside of the held lock for commands so that other commands could be called within the callback.
- When matching players after a refresh,
serialis first used (if available), before matching onplayer_idorname. - Connection retry logic now implements a doubling incremental backoff with a maximum delay of 10min.
New: 🚀
const Module:
- Added service option constants (e.g.
SERVICE_OPTION_THUMBS_UP)
error module:
- Added
CommandAuthenticationErrora subclass ofCommandFailedErrorwhich is raised when an auth-related error occurs calling a command.
Heos class:
- Added
get_group_infomethod to retrieve or refresh a specific group. If all groups are loaded, this will retrieve the cached instance, unless refresh=True. - Added
get_player_infofunction to retrieve a specific player and optionally refresh and update an existing instance. - Added
check_updatethat returnsTrueis a firmware update is available for the player, otherwiseFalse. - Added
player_get_queueto retrieve the specified player's queue items. - Added
player_play_queueto play a specific queue index on the specified player. - Added
player_remove_from_queueto remove one or more items from the specified player's queue - Added
player_save_queueto save the specified player's queue as a playlist. - Added
player_move_queue_itemto move items in the specified player's queue. - Added
get_music_source_infoto retrieve or refresh a specific music source. - Added
get_search_criteriato obtain search options for a given source. - Added
searchto perform a search against a source with specific criteria. - Added
rename_playlistto rename a playlist. - Added
delete_playlistto delete a playlist. - Added
retrieve_metadatato retrieve album metadata. - Added
set_service_optionto call a service option, such as thumbs up. - Added
multi_searchto search multiple sources and criteria. - Added
add_search_to_queueto add items to the queue for the specified player based on the search string.
HeosGroup class:
- Added parameter
refresh_base_info: bool = Truetorefreshmethod to include updating the base information about the group (name, id, leader, members) in addition to mute and volume.
HeosPlayer class:
- Added parameter
refresh_base_info: bool = Truetorefreshto optionally pull the latest player information, such as name. - Added
group_idfield to represent the group reference the player is a member of, otherwise None. - Added
check_updatethat returnsTrueis an update is available for the player, otherwise `False. - Added
get_queueto retrieve the player's queue items. - Added
play_queueto play a specific queue index on the player. - Added
remove_from_queueto remove one or more items from the player's queue - Added
save_queueto save the current queue as a playlist. - Added
move_queue_itemto move items in the queue. - Added
controlproperty to indicate the volume control type whenlineoutis Fixed. - Added
add_search_to_queueto add items to the queue for the current player based on the search string.
HeosNowPlayingMedia class:
- New attribute
options: Sequence[ServiceOption]to list available service options.
Media module:
- New class
ServiceOptionfor describing a service option. BrowseResultnow hasoptions: Sequence[ServiceOption]attribute to list available service options.- New classes
ImageMetadata,AlbumMetadata, andRetreiveMetadataResultto represent album metadata.
Search module:
- New classes
SearchCriteria,SearchResult,MultiSearchResult, andSearchStatisticto represent output of search commands.
types Module:
- Contains all of the enumeration types, centralized from the library.
- Added
ConnectionStateenum to replace connection state constants (e.g.STATE_CONNECTED) - Added
ControlTypeenum to replace play control constants (e.g.CONTROL_PLAY) - Added
NetworkTypeenum to replace network connection constants (e.g.NETWORK_TYPE_WIFI) - Added
SignalTypeenum to replace signal constants (e.g.SIGNAL_HEOS_EVENT) - Added
SignalHeosEventenum to replace event constants (e.g.EVENT_CONNECTED) - Added
LineOutLevelTypeandVolumeControlType
Changed ⏸️
const module:
- Removed connection state const (e.g.
STATE_CONNECTED). UseConnectionStateinstead. - Removed control consts (e.g.
CONTROL_PLAY). UseControlTypeinstead. - Removed network connection constants (e.g.
NETWORK_TYPE_WIFI). UseNetworkTypeinstead. - Removed signal constants (.e.g
SIGNAL_HEOS_EVENT). UseSignalTypeinstead. - Removed dispatched event consts (.e.g
EVENT_CONNECTED). UseSignalHeosEventinstead.
Heos class:
- Function
load_playersnow returns an instance ofPlayerUpdateResultinstead of a dictionary.
HeosPlayer class:
- Field
lineoutis now an enum of typeLineOutLevelType
Full Changelog: 0.9.0...1.0.0