Skip to main content
Contributor I
May 7, 2020

UPNP, S2 and Control API on the LAN

  • May 7, 2020
  • 18 replies
  • 7749 views

Hello,

I have a few questions regarding S2 and the two ways of connecting to Sonos speakers locally:

  • UPNP
    This API is “undocumented” and not officially supported, but it works.
     
  • Sonos Control API on the LAN
    This API is not yet available, and its release date is unknown.


My question is whether the S2 update will remove the UPNP functionality from upgraded speakers?
If so, will the Sonos Control API on the LAN be available when S2 is released?

If the answer to the first question is yes, and the answer to the second question is no, it would mean that upgraded S2 products cannot be controlled locally. This would mean that new products (such as the Arc) cannot be controlled locally at all, at least for the time being.

I have tried searching for an answer to these questions, but I could not find them, so I decided to ask here.

I had originally intended to preorder a Sonos Arc, however my setup (computer which serves my local music library and calls my Play 5 speakers using UPNP) requires a way to locally control it without resorting to the Cloud API (I’d prefer not to host a web facing service on my machine, plus securing it with a SSL certificate is a hassle). If UPNP is indeed not present in S2, and the Control API on the LAN is not yet available at launch, then I will hold off on my purchase until it is available.

Thank you in advance!

This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

18 replies

BarryM
June 10, 2020

pwt wrote: I’ll update additional speakers when I can include all the required zones, which means I’m probably going to have to suppress my gag reflex and buy a Port.

 

:slight_smile: What’s the Port for? Is it wired, to enable you to get Sonosnet to isolated unwired S1 devices in a now mixed household? ... That is the issue that i think that i will have, due to internal double brick walls.

pwt
Virtuoso
June 10, 2020

pwt wrote: I’ll update additional speakers when I can include all the required zones, which means I’m probably going to have to suppress my gag reflex and buy a Port.

:slight_smile: What’s the Port for? Is it wired, to enable you to get Sonosnet to isolated unwired S1 devices in a now mixed household? ... That is the issue that i think that i will have, due to internal double brick walls.

It’s to replace one of my three Gen. 1 Connects, so that all of my normal household zones can be updated to S2. (The other two Connects are in my studies and can stay on S1 without annoying my wife. They’re also useful for testing S1 things.)

I just don’t like the Port: no digital optical out, no on-device controls, no 1Gps network ports, wall-wart power supply, much too expensive. Inexplicable product management decisions. Using one of my Trade Up discounts brings it down to a palatable price point, however.

My preliminary testing indicates that the UPnP interface is still present in S2. One of the (not important) SoCo integration tests is failing against an S2 speaker, but a cursory inspection suggests it’s a SoCo defect. The rest of the tests are passing.

This was tester error, btw. All the SoCo integration tests are passing against an S2 speaker. They’re all single speaker tests, however.

4 x P:5 | Sub | 4 x P:1 | 3 x Connect | 2 x Boost | Connect:Amp | 2 x One | Amp | Move | Port | Era 300
Lyricist I
June 15, 2020

Sonos S2 supports upnp on my Play 1. You just have to enable the “Show UPnP Servers” option under “Media Servers”

controlav
Lead Maestro
June 15, 2020

I have found no change at all in UPnP between S1 and S2. All APIs and events are identical. The only difference is the swGen field in the device xml file.

Regarding “security changes”, haven’t seen anything yet, but some of the new hardware has a PIN printed on the bottom so there could be some kind of change in the future.

The official, publicly documented cloud API is still a poor substitute for the hard-to-find-documented UPnP API and hasn’t had an upgrade in a while.

Author of the leading independent Sonos apps for Android, MacOS, iOS, Windows and Xbox.
Avid Contributor I
January 21, 2021

Hi,

 

I used to play with the node.js api to display my zones and what’s playing on them, but since a  while (not sure it is since I switched to S2) I don’t get any data in the queue attributes. I still can see all zones and control functions seem to be working, but no queue info.

Did you experiment the same behaviour?

 

Thanks,

Crilo

controlav
Lead Maestro
January 22, 2021

I used to play with the node.js api to display my zones and what’s playing on them, but since a  while (not sure it is since I switched to S2) I don’t get any data in the queue attributes. I still can see all zones and control functions seem to be working, but no queue info.

Did you experiment the same behaviour?


I have yet to detect any difference between S1 and S2 at the UPnP level for any normal operation. Can you be more specific about which call you are talking about and what exactly you are seeing?

Author of the leading independent Sonos apps for Android, MacOS, iOS, Windows and Xbox.
Avid Contributor I
January 23, 2021

Hi controlav,

 

I’m not a Upnp expert, but using the node.js API, when I issue the following command

 http://<node.js server ip>:5005/<zone name>/state

I don’t have any information in the currentTrack section, this used to work perfectly “before”

Note that play / pause commands are working  fine with the API.

 

I also noted that the following does not return anything either :

http://<player ip>:1400/status/tracks_summary

 

controlav
Lead Maestro
January 23, 2021

Hi controlav,

 

I’m not a Upnp expert, but using the node.js API, when I issue the following command

 http://<node.js server ip>:5005/<zone name>/state

I don’t have any information in the currentTrack section, this used to work perfectly “before”

Note that play / pause commands are working  fine with the API.

 

I also noted that the following does not return anything either :

http://<player ip>:1400/status/tracks_summary

 


I am not familiar with whatever js library that is. I obtain current track data from events on AVTransport1, and I’ve not noticed any changes in that for a very long time.

I long ago quit relying on the status endpoint for anything as it was subject to so much change, unlike the APIs which have remained pretty stable for years.

Author of the leading independent Sonos apps for Android, MacOS, iOS, Windows and Xbox.