Denos HEOS support



I noticed somes troubles with my HEOS1 speakers :

  • resubcribe event always returns 412
  • volume level always display 0
  • sometimes media_player not created or unavailable
    It’s possible to fix theses problems by changing python scripts in dep directory.

1/ async_upnp_client/
Seems the subscribe maximum timeout is 9 minutes for HEOS1

SUBSCRIBE_TIMEOUT = timedelta(minutes=9)

2/ async_upnp_client/ - DlnaDmrEventContentHandler class
There are multiple mute/volume zone, have to return states variables only for master channel

if attrs.get(‘channel’) in (None, ‘Master’):
self.changes[current_instance][name] = attrs.get(‘val’)

3/ didl_lite/ - function from_xml_el
Sometimes HEOS speaker returns empty or unknown upnp class, function should returns none

didl_object_type = type_by_upnp_class(upnp_class.text)
if didl_object_type is None:
return None

And now the dlna_dmr is stable to handle 2 HEOS speakers…
Hope that’s help.


Do you guys HEOS can be added as an official addon? It seems like its a pretty popular platform, and it works better the Denon Receiver platform


I’m not the greatest Python wizard but I forked the original and added user_login/play_favourite support (because that’s personally what I missed).

It lacks a bit of documentation at the moment :wink:


Seems nice! What’s the purpose of the user_login feature?


Did you use aioheos from Jarle Hjortland? ( it has many features added like the input and sound mode selection etc.