Roon-extension-http-api: change_volume does not work for newer generation speakers

Hi @St0g1e, all, For the Sonos 5 play or B&W formation duo, bluesound power node 2, the change volume http request does not work (i.e when I use curl “http://localhostip:3001/roonAPI/change_volume?outputId=someId&volume=15” or http://localhostip:3001/roonAPI/change_volume?volume=15&outputId=someId as an example) with Roon. For older generation Sonos speakers it still works well. The start / stop works fine also for the newer versions. Is this related to Airplay 2 in one shape or form? Any workarounds? Please advise…

Hi @Chris_Keller,

Unfortunately I don’t have B&W formation and power nodes. However I’m using a mix of Sonos’ Play 1, the new Play Ones and a few Symfonisks. So both the current and older generation of Sonos.

I just tested them and the change volume works on my end using the following command.


Do make sure that it is using outputId instead of zoneId.
What I also find sometimes is that when you copy/paste the ids, there is a space character in the beginning. make sure that there is no space before the outputId.

As far as I Know roon does not have airplay 2 yet. Can you make sure that the Sonos is using Sonos Streaming method on Settings → Audio.

Hope it helps.

Actually, I just tried using the airplay and it works as well (Air Play LR and LR Sonos).

Can you send me the screenshot of your settings->audio for the devices?
as well as the json from listZones.

Thank you

Hi Hi @St0g1e, thanks for checking this out. I went through all speakers http commands again (I do this in node-red with a HomeKit integration) and it turns out that I used some zoneId’s instead of outputId’s!!! Issue resolved and thank you for highlighting the outputId instead of zoneId…

Hi @Chris_Keller,

Glad it works now.
Was just going to reply to you that I tested with Lumin which is also a roon ready and works.

Let me know if you need more help.

– bastian

1 Like