Sonos always shows as "remote"

How come Sonos always shows as remote, is that normal? Also the remote IP address keeps changing?

Plex for Sonos —
Playing—14:56 / 27:01
Remote (54.211.136.121)—481 Kbps

While the speakers try to stream directly to your PMS, the Sonos service runs in the cloud which is why it appears to be a remote player.

Which Sonos service? Yours or theirs?

Do I need to open any ports (udp etc) besides the HTTP port 32400 for Sonos to stream directly?

Technically both, but it’s the Plex for Sonos service that is talking to your PMS reporting Now Playing information, which is where the Remote comes from in the dashboard.

If you’re able to play on Sonos you’ve already enabled your PMS for remote access. Unless you have a weird network setup the speakers are likely already streaming directly from your PMS, but regardless the dashboard will always show Remote due to the cloud-based progress reports.

Thanks. What I meant about ports, I’m running in Docker in bridge mode with only port 32400 open (I’m not opening any of the other ports 3005, 8324, etc). Will Sonos still stream direct without those ports open?

So PMS in Docker is one of those weird edge cases. :smiley:

Since a Dockerized PMS is on its own private LAN, it is not able to discover local Sonos speakers and the service is not able to definitively determine that PMS and the speaker are on the same network. In that case we will try to play using the public IP address and port that the service is using to talk to PMS. This usually works, but some networks have NAT loopback protection. If you can reach your PMS by hitting your public IP and port from within your LAN, you don’t have any problems, and the music streaming is staying local.

So the Lan Networks setting doesn’t help here? My Sonos is on 10.0.1.0/24 and I have put that in Lan Networks. Shouldn’t that tell PMS my Sonos is directly accessible?

While the LAN Networks and Custom server access URLs are important for Dockerized PMS in bridge mode in order for normal Plex clients to see it as local, Sonos is a different beast due to not being able to test the connection between the speaker and PMS. If we were to direct the speaker to use a LAN address and it couldn’t connect, there is zero feedback and nothing plays. For this reason we only use LAN connections when PMS reports that it can discover the speaker.

If you want to see if PMS can discover your speakers you can hit server.ip:port/neighborhood/devices?X-Plex-Token={your token}. In bridge mode PMS should not be able to see the speakers, in host/macvlan mode it should be able to.

Plex is playing to Sonos and to my browser. I’m getting this:

<MediaContainer size="0"> </MediaContainer>

Is that expected?

Yup, that’s expected when PMS is Dockerized in bridge mode. It’s either streaming via your public IP address or via Plex Relay. If you can access Plex Web via your public IP and port that you’ve forwarded it should be the former.

The dashboard says local though:

Plex Web — Chrome
Playing—0:48 / 3:53
Local (10.0.1.200)—271 Kbps

Plex Web, and all installed Plex apps, are able to test all the connections that your PMS is broadcasting it can be connected on. Since you set the LAN Networks to include your LAN, Web sees PMS as local. This is expected.

If we could run code on the Sonos speakers we would absolutely do the same thing, but the speaker talks to our service in the cloud and we have zero visibility into your LAN besides what PMS reports and get zero feedback when something fails to play.

Thanks so much for your help!

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.