Have you thougt of using the api from Sonos?
Sonos Api. Here a link with a how to Sonos api how to
You can install it on a server(with Docker) and or a Rpi. With get requests you are able to control Sonos. It works great. This is a flow i use to play a radiostation or a playlist from Sonos favorites
This are some possibilities with the Sonos api
Favorites
It now has support for starting favorites. Simply invoke:
http://localhost:5005/living room/favorite/[favorite name]
and it will replace the queue with that favorite. Bear in mind that favorites may share name, which might give unpredictable behavior at the moment.
Playlist
Playing a Sonos playlist is now supported. Invoke the following:
http://localhost:5005/living room/playlist/[playlist name]
and it will replace the queue with the playlist and starts playing.
With a script i shuffle my radiostations and playlists every 2 weeks
This way you also have the ability to easily raise or lower the volume