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?

simojenki commented 1 month ago

My phone hasn't updated yet, so I've not experienced this yet.

Will be interesting to see what experience others have.

peterbuga commented 1 month ago

here to confirm the same problem :(

turns out there are new requests (endpoints?) done by the new app. for example I can start bonob playing from desktop app, I can see playlist/controls from new app but pushing the "..." button to bottom left corner gives an error - normally this button exposes options like Save to Sonos Favoriters/Search for <<artist>>/Crossfade etc

simojenki commented 1 month ago

I'm going to let the dust settle a little before considering upgrading.
I have a spare device somewhere so I might see if I can set that up somehow as a new location with a different controller so as not to brick my home audio.

Jypy commented 1 month ago

yep, it's gone with the new app for me too. Sonos mentioned they were dropping HTTP & SMBv1 support. I tried creating a new service using HTTPS just in case, but it doesn't appear in the new app either. As mentioned above, it still work fine with the desktop app (until it gets updated too I guess).

hakimh02 commented 1 month ago

same here, updated to the new app and Bonob is gone....

drohhyn commented 1 month ago

Unfortunately this is not a bonob issue, it is fully sonos fault. Their community forum is full of issues with missing sources, missing features, missing everyhting. If you are on Android, for now you can go back to the older app version (16.1), e.g. via aurora store (foss client for the play store, so downloading APKs from google not some obscure provider). The correct version numbers are 780151030 or 780151030 depending on your hardware.

garfieldairlines commented 1 month ago

Got the update too… Don't update, and I guess it would be wise to turn off automatic firmware updates for the time being. And if you own a iPhone, I think it's too late to downgrade.

simojenki commented 1 month ago

Perhaps it's time to look into WiiM and what is required to get a similar experience.

wez commented 1 month ago

Perhaps it's time to look into WiiM and what is required to get a similar experience.

@simojenki I hadn't seen WiiM, looks interesting!

I have BluSound Node device and another NAD device that has the option of a BluOS addon board. I'm not recommending them, but wanted to raise that as another possible streamer hardware platform. If there is a good way to navidrome -> bluos then I can avoid buying more hardware in case sonos is really dead and done for this use case. Would love to hear about options for that.

The timing of this sucks: I only just discovered bonob in the past week or so and have been really enjoying it!

simojenki commented 1 month ago

I'm still optimistic that Sonos will update their app in the coming weeks/months in such a way that this type of service works, however I'm also aware of the fact that the bonob/subsonic use case is not a large part of their user base so it may also never work again... in which case I'll look for alternatives to continue to self host which may require porting bonob to another platforms api.

garfieldairlines commented 1 month ago

Someone asked the support about subsonic and here's a copy of the reply... I am afraid the days of the bonob/subsonic solution are counted :( (Source : https://en.community.sonos.com/product-updates/the-new-sonos-mobile-app-web-app-6891770/index20.html?postid=7933#post7933)

Got a response to my email, similar to other ones posted. To their credit, the directly addressed my comments about last.fm and Subsonic, but I can’t say the responses make sense:

”In the new Sonos app, you won't be able to setup new music libraries or configure existing libraries. You can utilize the Sonos desktop controller to set up and manage your music library. The sleep timer feature is not currently available in the Sonos app, but will return in a future update.

Last.fm is used for scrobbling. Scrobbling is a system that tracks your listening habits and uploads them to your Last.fm account. Every time you play a track it is added, or scrobbled, to your Last.fm account.

Subsonic doesn't show on the services on Sonos. I believe we never supported Subsonic since they do not work the way a normal music service would.”

simojenki commented 1 month ago

I found that a little confusing. They never officially supported the manual style of integration that subsonic and later bonob used. That doesn't necessarily mean the new updates have broken it forever, as someone on this thread mentioned bonob is still registered, it just doesn't show in the app, however as I understand it there are other missing services that also do not show in the app.

I suspected this might happen when they said they were going to remove http as a protocol, perhaps using https and implementing whatever missing api routes the new app requires will be enough to get it going again??

Their new web app is unlikely to work with bonob however as their servers have no api access to bonob.

I have no idea at this point, I'm just being optimistic.

There were other ominous signs;

simojenki commented 1 month ago

@Jypy when you tried https did you use a self signed cert or a cert signed by a public auth ie LetsEncrypt?

Jypy commented 1 month ago

@Jypy when you tried https did you use a self signed cert or a cert signed by a public auth ie LetsEncrypt?

I tried both actually. With my own CA I couldn't pass the first service configuration step when you need to login. Which was expected as sonos doesn't trust my CA. But I had no issues with Let's Encrypt cert, I can browse, play, etc... same as using HTTP only, on the old or desktop app only ofc. When testing, I found some info here which helped me debug. Like downgrading from TLSv1.3 to TLSv1.2. I can post my nginx proxy config if needed.

peterbuga commented 1 month ago

@simojenki to follow up on @Jypy answer, I do also have bonob+navidrome setup on an external machine and sonos in a different physical location with connection over https. the only difference is that on my case it's working over TLSv1.3 for some reason.

in my case the setup is: Sonos -- https --> Cloudflare ("DNS only" option, related to my other problem) -- https w/ Let's encrypt --> Bonob -- http /w docker network --> Navidrome

a possible future solution would be to create a mock-plex server, like a bridge to translate plex requests to navidrome/subsonic otherwise Sonos might never allow external integrations show up in their app/web interface. (the reason I don't use Plex as a source for music is due to the fact it does a crappy job organizing my media even though it's properly tagged, as it's just randomly merging albums together 😤)

drohhyn commented 1 month ago

I found that a little confusing. They never officially supported the manual style of integration that subsonic and later bonob used. That doesn't necessarily mean the new updates have broken it forever, as someone on this thread mentioned bonob is still registered, it just doesn't show in the app, however as I understand it there are other missing services that also do not show in the app.

I can confirm this. As mentioned in my other comment, when you downgrade to the previous Android app version everything works as before. Same for using noson.

Jypy commented 1 month ago

@peterbuga I actually have both TLSv1.2 & 1.3 enabled, but with 1.3 only it wasn't connecting. So your endpoint may also support both?! I also just found out about this Music Assistant, I haven't tested it yet though.

simojenki commented 1 month ago

It sounds like plex still works? As I understand it you require a plex account? However presumably plex don't proxy all data from the private network through their servers and back into the private network for Sonos? Maybe there is a solution that allows for https for the auth section, then http within the LAN?

Jypy commented 1 month ago

Yes, plex still works, but it requires you to enable external access and a plex pass. More details here. I wanted to try it, but having to enable external access for me was a deal breaker.

simojenki commented 1 month ago

Taken from that link;

"...something such as manually forward a port in your router/modem. Successfully enabling Remote Access will give you the best experience with Sonos." - This does not sound like a good idea to me.

I'm also unhappy with the 'relay' feature. The entire point of self hosting is to not have a dependency on a 3rd party service.

hakimh02 commented 1 month ago

FWIW: https://www.theverge.com/2024/5/9/24152675/sonos-new-app-bad-reviews-response-statement

"...broken local music library management..."

simonmiddleton commented 1 month ago

I have Plex working with my Sonos. I had to create a Plex account and sign in and then I used the Enable Remote Access button but didn’t set up any forwarding on the router. The Plex now says “Not available outside your network” but shows up in Sonos.

I don’t really like Plex, but it’s at least an option for now.

Simon.

drohhyn commented 1 month ago

FWIW: https://www.theverge.com/2024/5/9/24152675/sonos-new-app-bad-reviews-response-statement

"...broken local music library management..."

Unfortunately, it does not necessarily mean services like subsonic (with bonob) because even the "old" music library feature (with the old samba version) is broken.


I am still puzzled how releasing an app "update" like this could happen. In the android ecosystem you have beta release channels and I assume there is something similar for iOS. Imagine having an update like this on your smartwatch. "Your alarm is set to 6:00. Now deal with it because you can't change it in the following months. It is always at 6:00. No, you can't disable it, please just wait." Crazy.

I also got a response from sonos support about the "classic search" feature, which they stated 2 months ago will remain. Now:

Unfortunately, unforeseen developments led to the removal of the Classic Search function in our new app version.

I do not believe them. Even if they are fully doing agile development, the reduced android version did not suddenly change within the last 8 weeks. It was in review before without the classic search function. And in addition, they did not address my main concern, the privacy feature as mentioned e.g. by @simojenki.

ChevronLugs commented 1 month ago

Another data point here. Due to this whole mess, I spun up a Plex server in Docker on the same NAS where Navidrome and Bonob were (still are) running. I have not forwarded any ports. Remote access is enabled yet not available from outside of my network. It's working with the new Sonos app.

I'd rather have Navidrome and Bonob.

Jypy commented 1 month ago

Taken from that link;

"...something such as manually forward a port in your router/modem. Successfully enabling Remote Access will give you the best experience with Sonos." - This does not sound like a good idea to me.

I'm also unhappy with the 'relay' feature. The entire point of self hosting is to not have a dependency on a 3rd party service.

Exactly, so using plex, even if you don't open the port on your router (which plex will try using UPNP anyway), still requires you to have an online connection, rely on their servers, and at least the search traffic goes through plex relays (maybe the tracks are played locally though). And if your plex is setup to use SSL only with your own CA, then you probably won't be able to play your tracks on sonos.

I've tried Music Assistant, and it's not perfect, but connect to open subsonic api and sonos without any 3rd party. It still needs improvements, but at least I can search and play my music without relying on 3rd party services or online connection.

simojenki commented 1 month ago

Presumably you are running MA over https?

If that is working then that's a good sign, might mean bonob just needs a valid cert and perhaps a new api or two implemented

Jypy commented 1 month ago

Presumably you are running MA over https?

If that is working then that's a good sign, might mean bonob just needs a valid cert and perhaps a new api or two implemented

sorry, my bad for not being clearer about this. MA have it's own interface, which sort of replace the sonos app. MA doesn't appear in sonos as a service at all. Right now I have it over HTTP only as I just started to test it, but it will be over HTTPS soon.

simojenki commented 1 month ago

I see, well at least it works, that's a good start!

wez commented 1 month ago

FWIW, I think that something like MA is probably the right way to go in the long term; I'm skeptical that we can rely on any vendor's own internal service API in the long term, because of their own financial machinations and interests, so having a self-hosted solution that can drive casting/air-play/dlna to a device via an industry standard protocol is probably going to be the most stable integration.

simojenki commented 1 month ago

You may well be right, as it currently stands we don't know if Sonos has simply blocked all non 'official' sources in their UI with a simple 'if' statement.

However the nice thing about the bonob/subsonic style integration was the native Sonos expeeience, that was the reason I bought the expensive Sonos hardware. Without the Sonos app then I no longer need to stay within the sonos ecosystem.

l-mb commented 1 month ago

Unless Sonos rolls back some of the probably intentional breakage (this gives them more data on customers to mine, plus guides users more and more towards streaming services they probably get a revenue share from?), I think this will be a dead-end and I'll be looking to replace my Sonos hardware with "dumb" speakers and something like Moodeaudio.

It's clear that my (our?) use case for Sonos isn't aligned with their business strategy, and that can't succeed in the long run.

garfieldairlines commented 1 month ago

There's also volumio with a subsonic addon : https://community.volumio.com/t/volumio-3-plugin-migration-status/51716

Somebody on the Sonos forums told me not to upgrade the firmware, the 16.1 Android software won't be compatible with it.

garfieldairlines commented 1 month ago

here it is, if you update the firmware you're going to have a bad time https://www.reddit.com/r/sonos/comments/1crrqh3/great_joke/

jnth commented 1 month ago

The noson application is a great alternative. There's an Android package in release section. https://github.com/janbar/noson-app

With this application, I can register the bonob music service like the old Sonos application.

KeenVox commented 1 month ago

The noson application is a great alternative. There's an Android package in release section. https://github.com/janbar/noson-app

With this application, I can register the bonob music service like the old Sonos application.

There's already an issue with sonos not working anymore with the update.

For me that's the final straw for sonos. I'm switching to Denon Home 150. Better sound and simple DLNA/UPNP capabilities should work with any music server you can throw at it. In the worst case scenario you could still use bluetooth or the USB-A connectio for your SSD :-D

simojenki commented 1 month ago

The noson application is a great alternative. There's an Android package in release section.

https://github.com/janbar/noson-app

With this application, I can register the bonob music service like the old Sonos application.

@jnth are you using https for your registered bonob?

jnth commented 1 month ago

@jnth are you using https for your registered bonob?

@simojenki : I remove the automatic update of the Android application and the Sonos firmware as soon as I earn about the problem. I'm still using the "old" system.

sassa4ras commented 1 month ago

I know I don't have much constructive to add, but I wanted to chime in and say that it's a real bummer they nerfed your awesome plug-in. I really liked the native way it integrated my library without having to use the SMB plug in.

Do you think there would be any traction with Sonos if you went the route of trying to make it semi-official? Obviously they're geared toward a seamless end user experience and a server side docker container isn't exactly that, but there are a lot of services that look to be very boutique/niche, and it can't hurt to inquire

simojenki commented 1 month ago

Thanks @sassa4ras , I agree, the ability to have a local music library presented in the same way across Sonos, phone, car and browser was very nice. As for following up with Sonos themselves, yes I was thinking the same, however i wasn't sure which means to use, I could email the ceo however I suspect he has his hands full atm

sassa4ras commented 1 month ago

Thanks @sassa4ras , I agree, the ability to have a local music library presented in the same way across Sonos, phone, car and browser was very nice. As for following up with Sonos themselves, yes I was thinking the same, however i wasn't sure which means to use, I could email the ceo however I suspect he has his hands full atm

I suppose we could go the route of trying to submit through their official SMAPI platform approval process. I don't see anything on their developer website that indicates self-hosted content would be dis-allowed. An email to the dev team would quickly clarify whether it's a complete non starter

ChevronLugs commented 1 month ago

I have to say, after setting up Plex in a Docker on the same machine where I have Navidrome and Bonob, I appreciate Bonob (and Navidrome) a whole lot more. While Plex works, it's pretty slow in comparison.

On Reddit the user KeithFromSonos may be a good person to message.

jHat0421 commented 1 month ago

Yup have come here for the same reason. The update messed with my bonob service. For those on Android, you'll have to find a APK for 16.1. Did that, and it's working again! A note though is that you cannot add any new speakers, as it will prompt you to update the app.

dlehammer commented 1 month ago

Seems the official app is most likely are fast moving target pt...

“Redesigning the Sonos app is an ambitious undertaking that represents just how seriously we are committed to invention and re-invention,” said chief product officer Maxime Bouvat-Merlin. “It takes courage to rebuild a brand’s core product from the ground up, and to do so knowing it may require taking a few steps back to ultimately leap into the future.”

From https://www.theverge.com/2024/5/9/24152675/sonos-new-app-bad-reviews-response-statement

Instead of the CEO, perhaps aim for the CPO 🤔

(I've also been torpedoed by these "few steps back" since the app "upgrade" :/ )

l4kr commented 1 month ago

They've removed the SMB option too, despite it already being there in the new version when it came out...

jHat0421 commented 1 month 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.

ChevronLugs commented 1 month ago

Good to know the 16.2(?) system update won't nerf the 16.1 app. I've been holding off on that system update since it wasn't clear if it'd kill Bonob.

Schabernack commented 1 month ago

Tragedy. Not much to add other than i hope a work around is found and id be more than happy to threw few bucks in the tip jar.

mostly using the sonos as radio for one station which was set through bonob a while back - so as long as i never listen to anything else, this will keep working 🙈

the fact there is no native web radio integration that allows you to provide a url and it forces you to sign up with tuneIn is just criminal 😢

simojenki commented 4 weeks ago

bonob uses customSD to register itself with the sonos device, according to this thread that mechanism is no longer supported on the new app.

gravelld commented 3 weeks ago

Not sure when this information was updated but on the Key requirements page it says:

[...] you must: [...]

  1. Use Transport Layer Security (TLS) and Secure Sockets Layer (SSL) security requirements in your SMAPI implementation. See security for details.

(my bold).

So it doesn't sound like SSL is optional. Furthermore, on the security page it is written that the following ciphers were withdrawn at the end of May:

TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384

Also, if you're using Let's Encrypt make sure the full certificate chain is sent; I've had the issue on embedded devices before that don't include the LE intermediate certificates.

Maybe Sonos are approaching the model where they want centralised control over all registered add-ins and "content services"? Maybe that's why customSD.html doesn't work anymore - and the lasting damage to bonob would be that it's only service discovery that is borked. It'll be interesting to see how the local music integration is implemented, due in the middle of this month.

It would still be interesting to see bonob live on as a general Subsonic adapter layer... Plex, BluOS.... erm, maybe that's it 😄

jaeti01 commented 3 weeks ago

I am also watching this issue because I have just recently migrated away from plex due to their requirements of remote access or relaying. I was so happy when I found out about bonob + navidrome and how easy it works. There are others depending on local music integration as certain home automation systems (like homeassistant) offer playing local media like tts alarms and such. I think we all need to push Sonos a lot to get this support back.