Heos Group support

The mini media player card looks really crisp, but at least the grouping is working perfectly for now. I just made some different input booleans to group and ungroup speakers to different setups. Works like a charm.

Question to the developer, would it be possible to make an option for group volume? This is one of the features from the mini media player that I do miss. Thanks!

Thatā€™s great news, Tor. Iā€™m excited to hear you are working on it. I was worried there was some inherent limitation in HEOS that made it impossible, so Iā€™m relieved to know it will come eventually.
Currently I play my heos favorites (including radio stations), and spotify playlists using the lovelace interface (not the media browser) on a wall tablet. But I have to switch to the BubbleUPNP app to play the music on my DLNA server. Now that it all shows up in the media browser, Iā€™m looking forward to ditching bubble and playing everything from the same interface.

Some good news: I noticed balloob made a PR on the official integration for Media Browser support. Iā€™ve tested it and it works great, but right now it only supports local files and Radio Browser. I have it working for favorites with my tweak, but Iā€™m having a hard time playing Spotify direct from the Media Browser. Not sure if it is supported by HEOS at all since even in the HEOS-app we need to open the Spotify-application. On the other hand, HEOS devices appears as spotify-connect devices in spotify, so it should be possible somehow.

Hello Bjorn,

How did you create the different input booleans? I have the same setup as you and also heos with the avr zone 1 and 2. Thanks!

Supporting multiple zones would be amazing. I own numerous AVRs and PrePros supporting HEOS, each with 2-3 zones. Right now, if I want to include my living room in the group, the speakers outside on Zone 2 also start playing.

Please provide the ability to control zones independently. :pray:

You are able to do this already if you make a different mini media player card for each zone.

If you put the mini media card inside a conditional card you can make them only show up when the zone is playing music. :+1:t2:

Sorry for my late replyā€¦

The setup is quite easy using scripts and automations. I created a few different items:

configration.yaml

media_player:
  - platform: group
    name: heos_keuken
    entities:
      - media_player.heos_keuken_l
      - media_player.heos_keuken_r

  - platform: group
    name: heos_all
    entities:
      - media_player.heos_keuken_l
      - media_player.heos_keuken_r
      - media_player.heos_eetkamer
      - media_player.heos_soundbartype or paste code here

input boolean:

muziek_keuken:
  name: muziek_keuken
muziek_huis:
  name: muziek_huis

automations:

- alias: muziek_keuken_aan
  trigger:
    - platform: state
      entity_id: input_boolean.muziek_keuken
      from: "off"
      to: "on"
  action:
    - service: script.turn_on
      entity_id: script.muziek_luisteren_keuken

- alias: muziek_keuken_uit
  trigger:
    - platform: state
      entity_id: input_boolean.muziek_keuken
      from: "on"
      to: "off"
  action:
    - service: media_player.media_pause
      data: {}
      target:
        entity_id: media_player.heos_keuken

- alias: muziek_overal_aan
  trigger:
    - platform: state
      entity_id: input_boolean.muziek_huis
      from: "off"
      to: "on"
  action:
    - service: script.turn_on
      entity_id: script.muziek_luisteren_overal

- alias: muziek_overal_uit
  trigger:
    - platform: state
      entity_id: input_boolean.muziek_huis
      from: "on"
      to: "off"
  action:
    - service: media_player.media_pause
      data: {}
      target:
        entity_id: media_player.heos_all

scripts:

unjoin_heos:
  alias: unjoin_heos
  sequence:
    - service: media_player.unjoin
      data:
        entity_id: media_player.heos_keuken_r

    - delay:
        milliseconds: 500

    - service: media_player.unjoin
      data:
        entity_id: media_player.heos_keuken_l

    - delay:
        milliseconds: 500

    - service: media_player.unjoin
      data:
        entity_id: media_player.heos_eetkamer

    - delay:
        milliseconds: 500

    - service: media_player.unjoin
      data:
        entity_id: media_player.heos_soundbar

## Join all heos together
join_heos_all:
  alias: join_heos_all
  sequence:
    - service: media_player.join
      data:
        entity_id: media_player.heos_eetkamer
        group_members:
          - media_player.heos_soundbar
          - media_player.heos_keuken_l
          - media_player.heos_keuken_r

## Join heos keuken
join_heos_keuken:
  alias: join_heos_keuken
  sequence:
    - service: media_player.join
      data:
        entity_id: media_player.heos_keuken_l
        group_members:
          - media_player.heos_keuken_r

muziek_luisteren_keuken:
  alias: muziek_luisteren_keuken
  sequence:
    - service: script.turn_on
      data:
        entity_id: script.unjoin_heos

    - delay:
        seconds: 2

    - service: script.turn_on
      data:
        entity_id: script.join_heos_keuken

    - delay:
        milliseconds: 500

    - service: media_player.volume_set
      data_template:
        entity_id:
          - media_player.heos_keuken
        volume_level: 0.1 

    - delay:
        milliseconds: 500

    - service: media_player.media_play
      entity_id: media_player.heos_keuken

muziek_luisteren_overal:
  alias: muziek_luisteren_overal
  sequence:
    - service: script.turn_on
      data:
        entity_id: script.unjoin_heos

    - delay:
        seconds: 2

    - service: script.turn_on
      data:
        entity_id: script.join_heos_all

    - delay:
        milliseconds: 500

    - service: media_player.volume_set
      data_template:
        entity_id:
          - media_player.heos_all
        volume_level: 0.1 

    - delay:
        milliseconds: 500

    - service: media_player.media_play
      entity_id: media_player.heos_all

And then I have quite a few different automations when I switch from one to another zone, or unjoin the soundbar when the tv is switched on etc. But planning on moving those to NodeRed.

Also, in my experience it worked best to unjoin them all first, and then create the new group.

1 Like

I think this HA app is great.
Quick question -
When I select an album to stream via a DLNA server using the HEOS app I get an option to play the whole Album. There is a ā€œPlay Albumā€ button that brings up a selection either Play Now/Play NOW add to queue/Play Next Add to end of queue or cancel
This works brilliantly within the app
However if I select the same DLNA server using Home assistant via the HEOS player I have integrated, I donā€™t see those choicesā€¦ I just see the individual tracks only. I play one and it wonā€™t go onto the next

What am I doing wrong?

thanks

Iā€™m not sure I understand. There appears to be only one HEOS ā€˜media_playerā€™ entity per device. So for my Marantz AV7706 that has three zones, how do I control each zone independently like I can through the HEOS app?

The HEOS app doesnā€™t allow you to control each zone independently either. It allows you to select what music you want to play on your HEOS device, and then you can activate or deactivate different zones. But you canā€™t select that it plays A on zone 1 and plays B on zone 2.
However by combining the HEOS integration and the DenonAVR integration you can get quite some flexibility.

Does anyone have a DHT-S516S an the multiroom feature working? I have various Denon devices, works fine except for this type of speaker. I already created an issue at Grouping/Multiroom does not work for a Denon DHT-S516H Ā· Issue #712 Ā· kalkih/mini-media-player Ā· GitHub.

Basically Iā€™m getting a System error -9 (12) when the DHT-S516S is a slave speaker. As a master itā€™s working fine.

can u show us what u mean? as i using this two devices but not getting it to an good usable level

Hey there

The Grouping is really nice, but then using Media and control the volumes needs again some mediaplayers. Thats not really neat, but it works. Did anyone of you could match everything together?

My component

  • Custom Mediaplayer for Grouping
  • Mediaplayer for Spotify
  • Mediaplayer (all mediaplayers) for Volume control or even a Mediaplayer for every speaker to control that granually. And aswell for Radiostation

What do you exactly want to accomplish?

Reduce the 3 Mediaplayer to 1 if thats possible

So I have 1 Mediaplayer, where i can group everything, change the volume of all Speakers I grouped (like in the HeosApp) and when i go Browse Media, that i can choose from my Spotify.

At the moment thats not possible because

  • Spotify cannot be a mediaplayer when i want to Group the Speakers (Only heos speakers are allowed)
    so therefore i cannot browse through my spotify playlist

  • Volume Control for all the grouped speakers.
    This cannot be done, because it only regulates the master speakers volume. Same problem as with the spotifyplayer, i cannot use the ā€œallmediaplayer Groupā€ entity because its not a real speaker.

So because i cannot use All mediaplyer Group and the spotify mediaplayer i need to have 3 Mediaplayers in lovelace
1x Mediaplayer for Grouping
1x Mediaplayer Spotify for browsing trough spotify playlist
1x Mediaplayer All Mediaplayer Group. to change the volume of all the Speakers.

You can reduce it to two cards if you include: sync_volume: true to your mini media player card that you use for grouping.
Spotify playlist I donā€™t know.

thanks for the tip!

Hi there,
Im pretty new to HA, but I hope someone can help me out.
The only thing i want is a media-player card for spotify (with the playlist button integrated)
which is turning on by default zone 2 of my denon (heos)
With the option of turning on zone 1.
The group function doesnt work with me (cant call the join service)
Im trying and reading for a lot of hours now, but cant figure it out.
I installed all the needed integrations (spotify/hacs/mini media player and some custom cards.)

Here is my code (i like to believe im closeā€¦)

type: custom:stack-in-card
cards:
  - type: custom:mini-media-player
    entity: media_player.versterker_rob_denon_eetkamer
    platform: heos
    name: Muziek
    hide:
      power: true
      icon: true
      source: true
    speaker_group:
      platform: heos
      show_group_count: true
      entities:
        - entity_id: media_player.versterker_rob_denon_eetkamer
          name: Heos Eetkamer
        - entity_id: media_player.versterker_rob_denon_tvkamer
          name: Heos TV Kamer
    artwork: material
    volume_stateless: true
    source: full
    info: scroll
    group: false
    volume_step: '1'
    card_mod:
      style: |
        div.mmp__bg {
          /*opacity: 1;*/
          transition: none !important;
        }
        div.cover {
          transition: none !important;
        }
        div.cover-gradient {
          transition: none !important;
        }
        div.mmp-player {
          transition: none !important;
        }
  - type: media-control
    entity: media_player.spotify_rob
    title: title
    card_mod:
      style: |
        div.media-info {
          display: none;
        }
        div.top-info {
          display: none;
        }
        div.controls {
          display: true;
          margin-left: -2px; 
          margin-right: -2px;
          margin-top: -2px;
          padding-top: 3px;
          background-color: rgba(0,0,0,0.0);
          text-shadow: 2px 2px 5px red;
          border-radius: 6px;
        }
        div.background {
          display: true;
          opacity: 1;
          transition: none;
        }
        div.no-img {
          display: true;
          /*opacity: 1;*/
          transition: none;
        }
        div.image {
          display: none;
          opacity: 0.7;
          transition: none;
        }
        div.color-gradient {
          display: none;
          /*opacity: 0.7;*/
          transition: none;
        }
        div.color-block {
          display: true;
          /*opacity: 0.7;*/
          /*background-color: black !important;*/
          transition: none;
        }
        div.background.off {
          display: none;
        }
        ha-icon-button {
          display: true;
        }
        ha-card {
          width: 100%;  /*force a value of > 300px to keep the controls if needed*/
        }
        mwc-icon-button {
          margin-bottom: 4px;
          margin-right: 16px;
          display: true;
          position: absolute !important;
          right: 15px ;
          --mdc-icon-size: 45px !important;
        }
        div.title-controls {
          padding: 0 0 3px;
        }
        .no-progress.player {
          padding-bottom: 0px !important;
        }
        div.player {
          /*color: inherit !important;*/
          padding-top: 0px;
          padding-bottom: 0px;
          margin-bottom: 0px;
        }
        div.off {
          display: true;
        }

I think to control the zones it is better to use the Denon AVR integration as heos has limited options for zone selection.

Hey there. How did you get the Cards for Spotify Radio etc there? that would be awesome if you could share the config! Thanks