How do I join/unjoin Yamaha musiccast speakers?

Sorry for refreshing the topic, but I think I don’t understand what should be the final configuration. Is that the one posted by @YetAnotherDave?

This post is how I have it configured. It still works for me :wink:

core-2021.5.5
supervisor-2021.06.8
Home Assistant OS 5.13
HACS 1.12.4
Musiccast Yamaha v0.5
Mini Media Player v1.12.1

I also have some problems getting my Musiccast system up and running with Homeassistant. I browsed the examples here and on GitHub - ppanagiotis/pymusiccast: Group MusicCast Speakers with Home Assistant to do the installation. I made a card in Lovelace like this:

type: entities
entities:
  - type: custom:mini-media-player
    group: true
    entity: media_player.esszimmer
    name: Esszimmer
    toggle_power: false
    artwork: cover
    hide:
      icon: true
      power_state: false
    speaker_group:
      platform: musiccast_yamaha
      expanded: false
      entities:
        - entity_id: media_player.esszimmer_main
          name: Esszimmer
        - entity_id: media_player.kuche_main
          name: Küche
        - entity_id: media_player.schlafzimmer_main
          name: Schlafzimmer
  - type: custom:mini-media-player
    artwork: cover
    group: true
    name: Küche
    hide:
      icon: true
      controls: true
      progress: true
      source: true
      info: true
      power_state: false
    entity: media_player.kuche
    toggle_power: false
  - type: custom:mini-media-player
    artwork: cover
    group: true
    name: Schlafzimmer
    hide:
      icon: true
      controls: true
      progress: true
      source: true
      info: true
      power_state: false
    entity: media_player.schlafzimmer
    toggle_power: false

This is what the card looks like:

I also add my devicecs in the configuration.yaml file. My problem is this: I cannot control or group my devices. When I click the slider, nothing happens. The slider does not move. I can only turn the devices on / off and adjust the volume.
What am I doing wrong?

Hi Guys
Has the Musiccast Group Issue been resolved as i am still recieving the Error that service not found

Also cannot get it working with the ‘official’ aiomusiccast-0.9.1 (https://github.com/ppanagiotis/pymusiccast says it’s deprecated), all documentation I find is very outdated.
I’m on 2021.9.3, the integrated MusicCast (at least their docu says) should provide a join routine.
But it tells there is no service musiccast/join.

Here’s how it looks with platform set to mediaplayer:

This is my custom card:

type: entities
entities:
  - type: custom:mini-media-player
    group: true
    entity: media_player.rxv_werkstatt
    name: RXV Werkstatt
    toggle_power: false
    artwork: cover
    hide:
      icon: true
      power_state: false
      source: false
    speaker_group:
      platform: media_player
      expanded: false
      entities:
        - entity_id: media_player.rxv_wohnen
          name: Wohnzimmer
        - entity_id: media_player.rxv_kueche
          name: Küche
  - type: custom:mini-media-player
    group: true
    entity: media_player.rxv_wohnen
    hide:
      icon: true
      controls: true
      progress: true
      source: true
      info: true
      power_state: false
  - type: custom:mini-media-player
    group: true
    entity: media_player.rxv_kueche
    hide:
      icon: true
      controls: true
      progress: true
      source: true
      info: true
      power_state: false

if I change the speaker_group platform to musiccast, it looks like this:

Played a bit, found a workaround:

service: media_player.join
target:
  entity_id:
    - media_player.rxv_wohnen
data:
  group_members: media_player.rxv_wohnen

added a button card for it.

image
This is my screenshot of Musicast devices.
I will try the button setup but that would require multiple buttons if a eventually add all musiccast devices in each room
My Card View

Do you know if there is currently an Open Issue for this intergration

I think not, I opened one yesterday: https://github.com/vigonotion/aiomusiccast/issues/20.
You do use the (deprecated) musiccast_yamaha platform,
but I want to get it working with the ‘official’ platform, which is now musiccast.

Take a look at my previous post, I think it is an issue of mini-media-player, not of the musiccast platform.

Just tried to add the master like you did in your screenshot,
the error stays the same:

Yep, it’s a (solved) issue with mini-media-player, which does not honor the new join method in media_player platform (https://github.com/kalkih/mini-media-player/issues/528). There is no bundled release yet.

If you use platform type media_player, it works. This is my config, it works for me. The join service is part of the media_player scope I guess.

          - type: custom:mini-media-player
            entity: media_player.1st_floor_living_receiver
            artwork: cover
            artwork_border: true
            power_color: true
            show_source: true
            sync_volume: true
            expanded: true
            speaker_group:
              platform: media_player
              show_group_count: true
              entities:
                - entity_id: media_player.2nd_floor_office_speakers
                  name: Musiccast Office
                - entity_id: media_player.2nd_floor_loft_receiver
                  name: Musiccast Loft
                - entity_id: media_player.1st_floor_living_receiver
                  name: Musiccast Living
                - entity_id: media_player.basement_cinema_receiver
                  name: Musiccast Cinema
6 Likes

Did anybody know how this could work in official musiccast integration?

thanks.

I created an automation using rest http calls , documented in Yamaha advanced api doc.
To group two speakers it takes few http calls, so it is easy enough to do.

Example or rest calls - part of configuration.yaml:

rest_command:
  
  speaker_group:
    url: "http://speaker/YamahaExtendedControl/v1/dist/setClientInfo"
    method: POST
    content_type: 'application/json; charset=utf-8'
    payload: '{"group_id": "0000000000000000000000000000000A", "zone": ["main"]}'
  mainspeaker_link:
    url: "http://mainspeaker/YamahaExtendedControl/v1/dist/setServerInfo"
    method: POST
    payload: '{ "group_id": "0000000000000000000000000000000A", "zone": ["main"], "type": "add", "client_list": ["192.168.1.99"]}'
  mainspeaker_group_name:
    url: "http://mainspeaker/YamahaExtendedControl/v1/dist/setGroupName"
    method: POST
    payload: '{ "name": "LinkedSpeakers"}'
  mainspeaker_start_group:
    url: "http://mainspeaker/YamahaExtendedControl/v1/dist/startDistribution?num=0"  

So, i have two speakers , named

  • “speaker” with and ip address 192.168.1.99
  • “mainspeaker” , which is the “owner” of the group.

then, in the automation, I am calling the services in this order:

service: rest_command.speaker_group
service: rest_command.mainspeaker_link
service: rest_command.mainspeaker_group_name
service: rest_command.mainspeaker_start_group

That is all, i have speakers linked.
The ip adress can change if dhcp is used - it is better to have the ip static for the speakers.
GroupId is whathever, as long as it is the same in both rest calls.

I was able. This one works using the custom mini media player from HACS and the official Musiccast integration.
Here is my code, Enjoy!

type: entities
entities:
  - type: custom:mini-media-player
    group: true
    entity: media_player.home_theater_room
    toggle_power: false
    artwork: cover
    artwork_border: true
    power_color: true
    show_source: true
    sync_volume: true
    expanded: true
    speaker_group:
      platform: media_player
      show_group_count: true
      entities:
        - entity_id: media_player.kitchen_2
          name: Link Kitchen
        - entity_id: media_player.master_bedroom_2
          name: Link Master Bedroom
        - entity_id: media_player.office
          name: Link Office
        - entity_id: media_player.home_theater_room_zone2
          name: Link Patio
  - type: custom:mini-media-player
    entity: media_player.kitchen_2
    group: true
    toggle_power: false
  - type: custom:mini-media-player
    entity: media_player.master_bedroom_2
    group: true
    controls: true
    toggle_power: false
  - type: custom:mini-media-player
    entity: media_player.office
    group: true
    toggle_power: false
  - type: custom:mini-media-player
    entity: media_player.home_theater_room_zone2
    name: Patio (Zone 2)
    group: true
    toggle_power: false
header:
  type: picture
  image: /local/images/musiccast.png
  tap_action:
    action: none
  hold_action:
    action: none
state_color: true

4 Likes

With the above, can you control individual volumes for each zone? Say if I have ‘Kitchen’ as the master, and link ‘bedroom’, you still only get volume control for Kitchen. Could you include a volume control for each zone linked to the master zone?

I was hoping to configure something like this when I set it up last night also. Sync volume true wasn’t working when I tested it.

I ended up with something really ugly for individual volume.

Actually I was also having issue with volume sync not working, the code just needed slight tweaking from above. The sync_volume: true needed to be under speaker_group:. Here is my working code.

type: entities
entities:
  - type: custom:mini-media-player
    group: true
    entity: media_player.rx_v581
    toggle_power: false
    artwork: cover
    artwork_border: true
    power_color: true
    show_source: true
    expanded: true
    speaker_group:
      platform: media_player
      show_group_count: true
      sync_volume: true
      entities:
        - entity_id: media_player.rx_v2085_zone2
          name: Link Kitchen
        - entity_id: media_player.rx_v2085_zone3
          name: Link Office
  - type: custom:mini-media-player
    entity: media_player.rx_v2085_zone2
    name: Kitchen
    group: true
    toggle_power: false
  - type: custom:mini-media-player
    entity: media_player.rx_v2085_zone3
    name: Office
    group: true
    controls: true
    toggle_power: false
state_color: true

After countless hours messing with this, I can confirm that this solution is working for the official MusicCast integration using platform: media_player.

Thank you all for your posts!!!

Here is my code:

type: entities
entities:
  - type: custom:mini-media-player
    group: true
    entity: media_player.living_room
    toggle_power: false
    artwork: full-cover
    artwork_border: true
    power_color: true
    show_source: true
    expanded: true
    speaker_group:
      platform: media_player
      sync_volume: true
      show_group_count: true
      icon: mdi:link
      entities:
        - entity_id: media_player.kitchen
          name: Link Kitchen
  - type: custom:mini-media-player
    entity: media_player.kitchen
    group: true
    toggle_power: false
state_color: true

I noticed that if I add the sync volume= true after the speaker group, my main source volume didn’t work on the card. Could you please check yours. Please let me know.

Hi. I have sync volume = true enabled. If I change the grouped card’s volume, it is reflected in the individual main source card’s volume too, and vice versa. Hope that’s what you were asking.