Heos Group support

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?!

Hi,

  1. You are still using the custom integration, did you try the official one after grouping was implemented?

  2. If you have issues with the custom integration, please report it on the github site with a proper description of exactly what you are trying to do, what is not working, and more details on the error.

I’m still using the custom integration myself, and it is working fine here (I’m on HA 2021.12.7). I don’t see any errors, but then I only have HEOS-speakers and not Denon AVR. I didn’t have time to test the official integration after grouping was implemented, but if it is working fine, the plan is to deprecate the custom integration.

I’m still using the custom integration as well, because as far as I understand, the mini media player doesn’t support the new grouping feature at the moment. I asked a question about that here, but no luck.

Yeah, I saw direx mentioned something on that. When I get to testing it myself, I can propose a PR to the mini-media-player to fix it since I am using it myself for the same purpose.

PS! Perhaps you have better luck opening an issue on the github of mini-media-player. The developer is probably paying more attention there than on the community. Anyway he may need some help testing it for Heos.

1 Like