music-assistant / hass-music-assistant

Turn your Home Assistant instance into a jukebox, hassle free streaming of your favorite media to Home Assistant media players.
Apache License 2.0
1.2k stars 44 forks source link

Universal group not working with DLNA/uPNP player provider on WiiM Pro Plus devices, or Marantz devices #2484

Open madbrain76 opened 2 weeks ago

madbrain76 commented 2 weeks ago

What version of Music Assistant has the issue?

2.0.7

What version of the Home Assistant Integration have you got installed?

2024.6.2

Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?

The problem

No sound plays on a group of WiiM Pro plus using DLNA, even though they play individually

How to reproduce

  1. add the DLNA/uPNP provider
  2. add the Universal group player
  3. create a group player of 2 devices. I chose "downstairs bedroom" and "downstairs bath"
  4. select the group player
  5. select an album
  6. click play
  7. not a peep

If you select an individual DLNA player, and repeat steps 5-6, it plays fine. This includes the 2 DLNA devices that are part of the group.

Music Providers

Qobuz FS Plex

(I played a triplacate album)

Player Providers

DLNA Universal Group Player

Full log output

log.txt

Additional information

No response

What version of Home Assistant Core are your running

2024.6.2

What type of installation are you running?

Home Assistant OS

On what type of hardware are you running?

Windows

OzGav commented 2 weeks ago

Wiim Pro Plus support Airplay. Use that to group the players. As per the docs "UGP is on best-effort basis and might not work correctly with all player models or give unexpected results. For best results use standalone or syncgroup playback"

madbrain76 commented 2 weeks ago

OzGav,

The existence of a workaround for one brand devices doesn't negate the existence of an issue, even if the component is best effort.. Especially if it is also the case with other devices.

I also linked two Marantz receivers with DLNA and UGP, and got no sound either. A workaround exists in that case as well, since these Marantz support Airplay - but not Chromecast.

However, some players truly will only support DLNA/UPNP for input, and not Chromecast or Airplay. This the case for JRiver Media Center, and I believe also for Kodi. I have instances of those, also.

In the case of JRiver as a DLNA player, something is broken between MA and JRiver, even with a single JRiver player. That's also on my list to file an issue - has been for a few days.

I just haven't tried to use Kodi as a DLNA player, and I currently only ave one instance of it - Libreelec on a Pi3B, used mainly to play 3D movies, and not typically audio, but it can.

Grouping with can involve a mix of devices. Since USG only supports grouping devices of the same family, the intersection of the devices may be limited, or even an empty set. But there are cases where it is useful to group a mix of WiiM, Marantz, Kodi and JRiver; and if any of the last two are grouped, the only common protocol is DLNA .

I believe DLNA with UG may be generally broken, but it would take a dev to look at the logs - I can provide some with more device types.

OzGav commented 2 weeks ago

Marcel was talking about removing the Universal Group all together because of these types of issues. The sentence I quoted was the current compromise. As some people are using it successfully the functionality has been retained. However, there is no capacity to put any effort into this when you can use other solutions which do work.

DLNA is a hot mess of a protocol because it is poorly implemented from a standardisation point of view and thus there are often issues (although that has died down of late so Marcel must have patched the majority of problems)

Kodi supports Airplay which is what I use.

madbrain76 commented 2 weeks ago

Ozgav,

Thanks for the background. I would like to see which DLNA / UGP issues have been fixed. Any info on which DLNA devices have been successfully grouped with UGP would be helpful. And perhaps a list of them in the doc for UGP and or DLNA player providers.

Re: Kodi, I didn't know that it t had support for Airplay. it looks like there are some significant limitations with it as an Airplay sink, but those may not apply to the MA case. https://kodi.wiki/view/AirPlay

Since Chromecast devices have native group support, they don't need UGP. Airplay devices have native grouping in MA, so they don't need UGP either. DLNA.UPNP doesn't have native grouping, so this would seem like the most useful case for UGP. It's unfortunate that the protocol has this type of issues.

FYI, WiiM managed to implement grouping of their own devices over DLNA . It's setup using their smartphone app. It works with JRiver MC which only supports DLNA. The main drawbacks are that you can't name the group - it takes the name of the first device, and the other ones (individual) disappear as targets. And also, it only works for WiiM's own devices - you can't add a Marantz, JRiver MC or Kodi to the WiiM groups. exposed as DLNA. I wish UGP worked better with DLNA since there is no or limited native DLNA grouping.

Is the UGP useful for the other player providers ? I have only tried Airplay, Chromecast and DLNA/UPNP. Sonos probably has native grouping. Perhaps I should try the HA MediaPlayers provider next and see if UGP works.

marcelveldt commented 2 weeks ago

Wiim devices are based on Linkplay chips and they use DLNA under the hood but with their own extensions. Exactly what Sonos does (which is also dlan under the hood). I think we should put some effort in adding support for Linkplay devices because that means that folks can use native grouping for all devices with Linkplay chips (which are actually more than you think). There is a task for that on the backlog but as with all stuff.. I only have 24 hours in a day :-)

But that said; We should still make sure that UGP either works in some way (or limit it to players that can work with it) OR scratch it. I will do another round of investigating but from what I remember is that UGP + DLNA is a hot mess.

I kind of kept the provider in the codebase because some folks do have it working for their needs and I hoped someone would step in and help contribute the fixes. Guess I need to keep dreaming ;-)

I have spotted a few more error reports about DLNA. What would maybe be helpful is that we can tag/label these provider related issues so I can quickly skim through the issue reports and combine them all at once.