Denos HEOS support


#41

Hi,

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/profile.py
Seems the subscribe maximum timeout is 9 minutes for HEOS1

SUBSCRIBE_TIMEOUT = timedelta(minutes=9)

2/ async_upnp_client/dlna.py - 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/didl_lite.py - 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.


#42

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


#43

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:


#44

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


#45

Did you use aioheos from Jarle Hjortland? (https://github.com/jarlebh/aioheos/commit/484c3a791f9d80d1d095a320fa610c29d533f65e) it has many features added like the input and sound mode selection etc.