Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Sonos S2 player provider #1600

Merged
merged 13 commits into from
Aug 23, 2024
Merged

New Sonos S2 player provider #1600

merged 13 commits into from
Aug 23, 2024

Conversation

marcelveldt
Copy link
Member

@marcelveldt marcelveldt commented Aug 23, 2024

Sonos S2 player provider, completely written from scratch (including the all new fully async aiosonos library), based on the new (S2-only) websockets API!

  • Superfast, low latency, low overhead persistent connection to the speaker through websockets
  • No more polling, no more continuous (xml) api calls
  • Fully async so no more overhead from the executor
  • No more dependency on 20 year old obscure xml libraries
  • Superfast response times to commands
  • Fully compatible with the S2 app

Discovery of players is entirely done based on mdns broadcasts.
Note that the new Sonos player provider only works for S2 generation Sonos devices.

For MA to still support S1 generation speakers, I've refactored the old provider into the Sonos S1 provider and optimized it for S1 generation devices (including fallback polling)

@marcelveldt marcelveldt merged commit 69101ba into main Aug 23, 2024
8 of 9 checks passed
@marcelveldt marcelveldt deleted the sonos-s1-s2 branch August 23, 2024 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant