simojenki / bonob

sonos SMAPI implementation allowing integrating different music sources with sonos.
GNU General Public License v3.0
208 stars 15 forks source link

bonob missing after Sonos 80.00 update #205

Open np-90 opened 1 month ago

np-90 commented 1 month ago

Have been using bonob flawlessly for a few months now but as expected, Sonos dropped an app update this week and the bonob service looks to have just disappeared from my list of services on both iOS and the new web app.

Interestingly I can still access it on the Desktop App (which I believe is being retired)

Is this the experience for everyone else or have I broken something in the process of tinkering?

jaeti01 commented 4 weeks ago

Just a heads up that the Desktop version (Windows and Mac) is still on 16.1. If you still need to do a software update on a speaker (sounds ridiculous typing this), you can do it through the app. Bonob can still be added as a service, but it won't show on the new app.

b.t.w. the 16.2 app still has support for adding the bonob service.

gravelld commented 4 weeks ago

I thought 16.2 referred to the speaker firmware?

garfieldairlines commented 4 weeks ago

I emailed the CEO address a few weeks ago and I got one unsurprising answer : a boilerplate email. Sent questions related to this issue (and others of this repo) and got flat out ignored. But at least I tried…

MNickelson commented 3 weeks ago

@jaeti01 My 16.1 install just started to fail with a pop up that I need to update to the newest version to do anything.

wilddev65 commented 3 weeks ago

I can verify that the Mac OS Desktop Sonos Controller version 16.2 works for bonob/Navidrome. If you look in the About dialog, it says 16.2 Build 79153290. This is equivalent to 79.1-53290 when you download manually the update from Sonos. The speakers if updated will say Version 16.2 (build 79153290). I haven't updated my iPhone app so far so it still says it's 16.1, build 7851030 and appears to still connect, at least for now.

gravelld commented 3 weeks ago

Just tried app 780151030 connecting to a 79.0-52294 speaker but can confirm I can't add a service:

App Update Needed

Update the Sonos app to the latest version. You may have limited functionality until the update is complete.

MNickelson commented 3 weeks ago

I was able to use the desktop app from Linux to re-add Navidrome. I think I was having some other issues specific to my setup.

gravelld commented 3 weeks ago

@MNickelson Sorry - which Linux desktop app? I see no such link on the downloads page. There's the web app, but that doesn't allow adding/removing services.

jaeti01 commented 3 weeks ago

@jaeti01 My 16.1 install just started to fail with a pop up that I need to update to the newest version to do anything.

Sorry if I wasn't clear enough. My speakers are all up to date. They still play local content. It's for now just the app that doesn't let you choose the content. The MacOS app 16.2 still does.

jaeti01 commented 2 weeks ago

There is b.t.w. a 3rd party iPhone app called sonophone which works flawlessly with bonob. The app is much cleaner than the original one but does not support alarm settings.

MNickelson commented 2 weeks ago

@gravelld Sorry about the slow respose. I'm using this: https://github.com/pascalopitz/unoffical-sonos-controller-for-linux on Linux

claha commented 1 week ago

@gravelld Sorry about the slow respose. I'm using this: https://github.com/pascalopitz/unoffical-sonos-controller-for-linux on Linux

Was also able to use this to add bonob as a service and use it without problem, unfortenatly it does not magically show up in the offical app

simojenki commented 1 week ago

At this point I don't expect it to ever show up in the official S2 app as it sounds like they have moved all the functionality to the server side.

Which I guess leaves either using the S1 app, or using a different 3rd party app?

On the iPhone I'm only aware of sono+

Are there any for android?

dhalem commented 1 week ago

At this point I don't expect it to ever show up in the official S2 app as it sounds like they have moved all the functionality to the server side.

Which I guess leaves either using the S1 app, or using a different 3rd party app?

On the iPhone I'm only aware of sono+

Are there any for android?

Who knows how long until they drop support for it in the speakers themselves. We’re probably on a clock.

polymorphicshade commented 1 week ago

image In case anyone came here from Google, this version of the PC Sonos app lets me add the bonob service with no issues.

garfieldairlines commented 1 week ago

At this point I don't expect it to ever show up in the official S2 app as it sounds like they have moved all the functionality to the server side.

Which I guess leaves either using the S1 app, or using a different 3rd party app?

On the iPhone I'm only aware of sono+

Are there any for android?

For android I am just using Symfonium with upnp...

gravelld commented 1 week ago

@polymorphicshade I tried installing that, but I guess because the app phones home it sees it requires an update and greys out the "Settings" option in the "Manage" menu. This means I can't add a service.

I used Wireshark to check which servers it tries to contact and found it calls a number of Sonos servers, so I added a redirect to my hosts file:

127.0.0.1   sonos.com
127.0.0.1   msmetrics.ws.sonos.com
127.0.0.1   setup.ws.sonos.com
127.0.0.1   cf.ws.sonos.com
127.0.0.1   system-api.ws.sonos.com
127.0.0.1   update-services.sonos.com

Unfortunately it doesn't start fully now - it just tells me to update then closes.

They don't make it easy do they?

ChevronLugs commented 1 week ago

@gravelld,

I still have the installer for the 16.1 version of the Windows app. If you need it, let me know and I can upload it somewhere. It does not prompt for the 16.2 system update.

amp64 commented 1 week ago

Sorry to be the bearer of bad news but I don't think this is fixable, unless you can get a properly signed SSL certificate on the local machine and switch to https for the endpoint. Sonos clearly stated that http support was going away with the v80 mobile app.

Background: not a bobob user, but I write the Sonos app "Phonos Universal" and I know how SMAPI works from the client side.

See my reply on the Community site: https://en.community.sonos.com/controllers-and-music-services-228995/airsonic-subsonic-bonob-support-6893831?postid=16760774#post16760774

peterbuga commented 1 week ago

hi @amp64 thanks for your input! in the same time, can you please give a bit of extra input as I'm a little confused about the situation you're describing.

for example, in my case, Bonob was always served httpS via internet with valid SSL certificate. basically the Bonob server is in physical locationA, whereas the sonos system + app are in locationB so whatever connections were done it always happened by connecting to https://bonob.myexampledomain.com

as it happens right now, due to forced constrains (😤), everything is up-to-date speakers + desktop app + mobile (ios) app and the desktop app still works (counting the days when it'll be gone...). could you please point exactly between what-and-what a SSL connection needs to be maintained (in my case)?

I have some fair knowledge of networking, I understand that doing a local setup of Bonob in internal network generated a http-only connection but I'm confused about the external ones. just a hunch on my side, but I believe Sonos needs to pre-approve sources in the mobile app in order for them to show up 🤷‍♂️

amp64 commented 1 week ago

Hi @peterbuga , looks like you might almost be there, as you have an https address. As your service works in the Desktop app then it must pass all the criteria listed here:

https://docs.sonos.com/docs/security

However what is the certificate authority for your cert? Sonos used to only support 15 or so root certificates, I don't know if that has changed, or if the docs have just been lost in the doc re-org last year. But again, if you are fine in the Desktop app it can't be that. So maybe there is more to it than having both SMAPI endpoints as https? (You have BOTH, right?).

If all else fails I can share a special build of my Windows app that has some extra logging so I can see if there is something tagged different about customsd sources and everything else. (Once I return from vacation).

jaeti01 commented 1 week ago

Hi @peterbuga , looks like you might almost be there, as you have an https address. As your service works in the Desktop app then it must pass all the criteria listed here:

https://docs.sonos.com/docs/security

Actually my bonob service doesn't run on https and still is listed in the desktop app (latest app on MacOS). So it seems to me the desktop app is not checking those security conditions at all.

amp64 commented 1 week ago

@jaeti01 of course, the Desktop app works with bonob, the requirement for https is in the new mobile app only. The requirements listed in the link I posted say https is recommended, but for the new app it is mandatory. (These developer docs have historically never been kept very current).

amp64 commented 1 week ago

Another potential issue is reachability: the Sonos web app requires that their web service can get to the music provider, so not only is that why https is required, but also the address needs be be external. If bonob uses eg localhost in its endpoint address (and I don't know, I am not a bonob user) that cannot work in the web app and, IF the new mobile app uses the same architecture (not sure at this point if true) then the same rule would apply, also preventing access to such services.

drohhyn commented 1 week ago

[... ] but also the address needs be be external. If bonob uses eg localhost in its endpoint address (and I don't know, I am not a bonob user) that cannot work in the web app [...]

you just emphasized the main problem, lots of users of bonob and similar services have. There is no reason why somebody should open their fully privately used services to an external service. I have my music mainly on my NAS and want to play my music locally. But sonos does not care, they will answer marketing nonsense related to privacy and security, fully ignoring* that they have broken privacy by design from the former versions.

* From my experience this is intentionally.

nitzzzu commented 6 days ago

I've switched to https://owntone.github.io/owntone-server/ and I'm quote happy. I have the same music folder shared between navidome and owntone.

simojenki commented 6 days ago

I used to use that (under its former project name) prior to subsonic/bonob. Are you using AirPlay to the Sonos speakers?

nitzzzu commented 6 days ago

I used to use that (under its former project name) prior to subsonic/bonob. Are you using AirPlay to the Sonos speakers?

Using AirPlay. As a bonus I've installed https://github.com/mikebrady/shairport-sync on a spare raspberry pi, transforming it to another airplay speaker.

Switching away from the closed Sonos ecosystem is empowering. I now have multi room sound between Sonos and non Sonos.

The web interface is really nice, mobile friendly. It can run in any browser and act as remote. It has playlist support.

I keep using Navidrome for remote music (in the car, at work) and owntone/shairport for home devices.

simojenki commented 6 days ago

The web interface is really nice, mobile friendly. It can run in any browser and act as remote. It has playlist support.

Sorry, which app is the web interface part of?

nitzzzu commented 6 days ago

The web interface is really nice, mobile friendly. It can run in any browser and act as remote. It has playlist support.

Sorry, which app is the web interface part of?

https://owntone.github.io/owntone-server/clients/web-interface/

It's embedded in owntone server.

garfieldairlines commented 4 days ago

I got another reply from the Sonos support by mail.

Regarding your questions about why your music is no longer working, I am sorry to hear about this. However, I must mention that this configuration has never been supported by us and will not be, at least for the time being. When a configuration is not supported, it may or may not work. These details have been verified with our engineering team. Therefore, below I have attached the reasons for the changes made regarding how the music library can be shared with Sonos: Starting with May 13, S2 Sonos systems will start updating to R3 2024. Systems on R3 will no longer work with Music Libraries that use a specific type of file sharing.That file-sharing process is possible because the computer and the storage device use an agreed protocol to handle the request and grant file access.Computers and storage devices can share files using multiple protocols; they just need to agree on one before they share files. The computer sends the file request to the storage device in a set protocol. If the storage device supports that protocol, it accepts the request. Like with all file sharing, the Sonos players and the music folder share must communicate using the same protocol.The initial protocol the Sonos player used to create the Music Library is used every time a player on the Sonos system accesses the Music Library.After updating to R3, a Sonos system can only communicate with storage devices that use: •SMBv2 •SMBv3

And at the end basically a "Suck it up and pay for Apple/Amazon/YouTube Music".

I regret buying these loudspeakers man…

dhalem commented 4 days ago

That response means they didn't even understand what you were asking.

On Thu, Jun 27, 2024 at 9:49 AM garfieldairlines.net < @.***> wrote:

I got another reply from the Sonos support by mail.

Regarding your questions about why your music is no longer working, I am sorry to hear about this. However, I must mention that this configuration has never been supported by us and will not be, at least for the time being. When a configuration is not supported, it may or may not work. These details have been verified with our engineering team. Therefore, below I have attached the reasons for the changes made regarding how the music library can be shared with Sonos: Starting with May 13, S2 Sonos systems will start updating to R3 2024. Systems on R3 will no longer work with Music Libraries that use a specific type of file sharing.That file-sharing process is possible because the computer and the storage device use an agreed protocol to handle the request and grant file access.Computers and storage devices can share files using multiple protocols; they just need to agree on one before they share files. The computer sends the file request to the storage device in a set protocol. If the storage device supports that protocol, it accepts the request. Like with all file sharing, the Sonos players and the music folder share must communicate using the same protocol.The initial protocol the Sonos player used to create the Music Library is used every time a player on the Sonos system accesses the Music Library.After updating to R3, a Sonos system can only communicate with storage devices that use: •SMBv2 •SMBv3

And at the end basically a "Suck it up and pay for Apple/Amazon/YouTube Music".

I regret buying these loudspeakers man…

— Reply to this email directly, view it on GitHub https://github.com/simojenki/bonob/issues/205#issuecomment-2195203618, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACESIERXZ5GPWYWAIFJV5MLZJQ7BRAVCNFSM6AAAAABHMIX576VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJVGIYDGNRRHA . You are receiving this because you commented.Message ID: @.***>

garfieldairlines commented 3 days ago

I don't think they haven't understood… I think they just don't care, took bricks of text left and right and were hitting "send" and called it a day.

sassa4ras commented 3 days ago

The sum total of this discussion tells me that the only real way forward is to write a service that connects to a https/SSL signed server using their SMAPI and submit for official review and approval through Sonos.

I know that would a huge undertaking. I wonder if @amp64 would be willing to comment on this? Most users would have a Let's Encrypt or similar certificate due to this being a self hosted solution for most.

cllatser commented 3 days ago

Hello everyone, here’s another sufferer. I have tried to create a personal integration on the SONOS developers' website. I have exposed my Bonob instance to the internet. I have configured the parameters, and the fact is that the application appears in my mobile app. The only thing is that it absolutely needs OAuth login, but I don't know if Bonob uses OAuth or Session. Any ideas?

Captura de pantalla 2024-06-28 101331

simojenki commented 3 days ago

@cllatser bonob does not use oauth as Sonos never previously required oauth.

I'm sure what they mean by 'session', perhaps that's the old way, have you tried that?

simojenki commented 3 days ago

The sum total of this discussion tells me that the only real way forward is to write a service that connects to a https/SSL signed server using their SMAPI and submit for official review and approval through Sonos.

I know that would a huge undertaking. I wonder if @amp64 would be willing to comment on this? Most users would have a Let's Encrypt or similar certificate due to this being a self hosted solution for most.

The problem with this is that it still requires routing all traffic through both this new service and Sonos own servers. This is similar to how Plex works.

This seems like a step backwards from a performance point of view and also a privacy point of view.

cllatser commented 3 days ago

@cllatser bonob does not use oauth as Sonos never previously required oauth.

I'm sure what they mean by 'session', perhaps that's the old way, have you tried that?

With Session it doesn’t work, it’s deprecated. And with Anonymous, the integration installs but appears empty in the app.

cllatser commented 3 days ago

The sum total of this discussion tells me that the only real way forward is to write a service that connects to a https/SSL signed server using their SMAPI and submit for official review and approval through Sonos. I know that would a huge undertaking. I wonder if @amp64 would be willing to comment on this? Most users would have a Let's Encrypt or similar certificate due to this being a self hosted solution for most.

The problem with this is that it still requires routing all traffic through both this new service and Sonos own servers. This is similar to how Plex works.

This seems like a step backwards from a performance point of view and also a privacy point of view.

I totally agree, but if it could be made to work, my intention would be to set up a reverse proxy, and all the requests would stay local. :)

simojenki commented 3 days ago

my intention would be to set up a reverse proxy, and all the requests would stay local. :)

I think the issue is that the Sonos app itself is hosted remotely so I don't see how a local reverse proxy will help. Though if there is a solution that would be great!

cllatser commented 3 days ago

my intention would be to set up a reverse proxy, and all the requests would stay local. :)

I think the issue is that the Sonos app itself is hosted remotely so I don't see how a local reverse proxy will help. Though if there is a solution that would be great!

The idea is that in the first installation the Bonob service is visible on the Internet. Once it is configured in the app, I would make the traffic go local with the reverse proxy.

simojenki commented 3 days ago

I get the impression that the 'app' on your phone is really just a shell for the real 'app' that is hosted in the 'cloud'? Happy to be wrong however.