Heos Group support

Its easier if you make a binary sensor for the group! Especially if you have more than one heos device!

What do you need?

@KoltesPunti, can you share the code you use for your card?

Screenshot_1

Like this:
type: ā€˜custom:mini-media-playerā€™
entity: media_player.heos_3_l
artwork: cover
source: icon
toggle_power: false
hide:
power_state: false
icon: true
speaker_group:
platform: heos
show_group_count: true
entities:
- entity_id: media_player.heos_3_l
name: HEOS5 Eetkamer L
- entity_id: media_player.heos_3_r
name: HEOS5 Eetkamer R
- entity_id: media_player.denon_avr_x2400h
name: AVR-X2400H

entities:
  - artwork: cover
    entity: media_player.kuche
    hide:
      controls: false
      icon: true
      info: true
      mute: true
      next: true
      play_pause: true
      play_stop: false
      power: true
      prev: true
      source: true
    info: short
    max_volume: 30
    min_volume: 1
    shortcuts:
      buttons:
        - id: 1
          name: Q-Dance
          type: favorite
        - id: 2
          name: Slam!
          type: favorite
        - id: 3
          name: Antenne Stmk
          type: favorite
      column_height: 24
      columns: 3
    style: |
      ha-card {
        background-color: rgba(50,50,50,0.0);
        border-radius: 10px;
        color: "#999999";
        border: solid 1px rgba(100,100,100,0.3);
        box-shadow: 3px 3px rgba(0,0,0,0.4);
      }
    type: 'custom:mini-media-player'
    volume_stateless: false
  - artwork: cover
    entity: media_player.badezimmer
    hide:
      controls: false
      icon: true
      info: true
      mute: true
      next: true
      play_pause: true
      play_stop: false
      power: true
      prev: true
      source: true
    info: short
    max_volume: 30
    min_volume: 1
    name: Bad
    replace_mute: play
    shortcuts:
      buttons:
        - id: 1
          name: Q-Dance
          type: favorite
        - id: 2
          name: Slam!
          type: favorite
        - id: 3
          name: Antenne Stmk
          type: favorite
      column_height: 24
      columns: 3
    style: |
      ha-card {
        background-color: rgba(50,50,50,0.0);
        border-radius: 10px;
        color: "#999999";
        border: solid 1px rgba(100,100,100,0.3);
        box-shadow: 3px 3px rgba(0,0,0,0.4);
      }
    type: 'custom:mini-media-player'
    volume_stateless: false
  - artwork: cover
    entity: media_player.denon_avr_x1400h
    hide:
      controls: false
      icon: true
      info: true
      mute: true
      next: true
      play_pause: true
      play_stop: false
      power: true
      prev: true
      source: true
    info: short
    max_volume: 40
    min_volume: 10
    name: Wohnzimmer
    replace_mute: play
    shortcuts:
      buttons:
        - id: 1
          name: Q-Dance
          type: favorite
        - id: 2
          name: Slam!
          type: favorite
        - id: 3
          name: Antenne Stmk
          type: favorite
      column_height: 24
      columns: 3
    speaker_group:
      entities:
        - entity_id: media_player.denon_avr_x1400h
          name: Wohnzimmer
        - entity_id: media_player.kuche
          name: KĆ¼che
        - entity_id: media_player.badezimmer
          name: Badezimmer
      platform: heos
      show_group_count: true
    style: |
      ha-card {
        background-color: rgba(50,50,50,0.0);
        border-radius: 10px;
        color: "#999999";
        border: solid 1px rgba(100,100,100,0.3);
        box-shadow: 3px 3px rgba(0,0,0,0.4);
      }
    type: 'custom:mini-media-player'
    volume_stateless: false
show_header_toggle: false
type: entities
1 Like

Hi @KoltesPunti, thanks! this looks cool! Sorry iā€™m still learning, but how do you link the favoriteā€™s to the radio channel you like?

Itā€™s linked to your favorites in your heos account!

1 Like

Thanks, working perfect! Anyone experience to have the card from @KoltesPunti together with spotify?

WARNING (MainThread) [homeassistant.loader] No ā€˜versionā€™ key in the manifest file for custom integration ā€˜heosā€™. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of ā€˜heosā€™

How to update the integration to avoid it get disabled?

i found a nice spotify card: Spotify Lovelace Card

Hi guys,

Sorry it took me forever, but I think most of the reported issues with the grouping feature in my custom ā€œhackā€ has been solved. I also moved the repo and made it HACS-compatible (by using custom repo only though).

For those interested, please see here. @quizzical; u able to test for the reported troubles?

I really hope this feature can be implemented in the official integration some time soon. Perhaps @direx could give us an update there? I see there has been movement on the open issues lately.

PS! I also did some very preliminary tests of using the media browser feature that was introduced in HA some time ago. Its a start, but it is far from working yet.

4 Likes

Thank you!
I have the impression the group support will be provided natively soon, but until that happens Iā€™ve been a very happy user of your hack for almost half a year now.
I just switched to your HACS repository. I did a few tests and those errors that I posted previously still show up.
However as mentioned previously, these errors donā€™t bother me at all.

Official support for HEOS groups has just been merged to the Home Assistant main development branch. Itā€™s probably going to be part of 2021.12. :tada:

It took longer than I initially thought and I must admit that it was not an easy job. But in the end it was totally worth it and I got some great guidance from the Home Assistant developers lately, which led to big improvements of both the codebase and my very own coding skills :slight_smile:

For now HEOS will be the first component which uses the new media_player.join() / media_player.unjoin() service calls. That means that custom:mini-media-player will need some updates to support this.

5 Likes

Nice! Great job and thanks for your time!

Thanks so much for your efforts.
I admit I donā€™t yet fully understand how the new functionality will work but am very glad there is now an official and future proof solution!
I assume the ā€˜hackā€™ will remain required for now until the custom mini media player supports the new functionality.

Awesome news @direx! Great job, and congratulations on your patience! Looking forward to test it. When it is merged, does it mean it is already part of the core if I update my dev-container?

Iā€™d say this should be either in todayā€™s or tomorrowā€™s dev docker image.

1 Like

Fantastic! Question though, will it also allow grouping/ungrouping of surround setups? Eg. The recently added functionality of the Denon Home 550?

Idea would be to select various grouping presets based on the app running on my NVIDIA shield or status of Logitech Harmony hub.

Use case:

  • when watching movies i would like my Denon 150ā€™s to function as surround back speakers to my Denon 550 soundbar;
  • when listening to music i would like them to be setup as stereo pair.

Currently, the way Denon has setup itā€™s app/surround group I can either listen to pure stereo which disables /mutes the 150s and plays over the 550 or select "dynamic stereo which pushes the stereo signal over all speakers.

Same applies to the subwoofer, ideally I want to only use this for movies/series and not for music - The bass is quite omnipresent :slight_smile:

1 Like

Creating surround groups is not supported. Personally I have always considered this a set up once and forget thing. Furthermore the Home Assistant API for joining/unjoining does not support this HEOS-specific scenario.

To be honest I donā€™t think that this is ever going to make it into Home Assistant, as most people set up their surround speakers statically.

If I were you Iā€™d just create a Python script which sets up either speaker ā€œpresetā€ directly through the HEOS API or through pyheos. Iā€™d then call the Python script through a Home Assistant shell_command. That should do the trick and gives you maximum flexibility.

Edit: Surround groups are not even documented in the official HEOS API doc. Sorry about that. You might want to ask Denon support if they could update their API spec.

1 Like

Can or Do i need to delete the heos files now?
Got these errors: Entity media_player.denon_avr_x1600h (<class 'custom_components.heos.media_player.HeosMediaPlayer'>) implements device_state_attributes. Please report it to the custom component author.

Me too! Maybe someone can help?!