Inspired by Steven Devlin's project on Weebly, (and many others!), I am using a 1957 Seeburg Jukebox Wallbox to control my Sonos music system, using a raspberry pi and some python code.
Wallboxes were used at restaurant booths to send songs to the Jukebox - if you are old enough (like me) you may have actually used one! I'm using a Seeburg 3WA wallbox that has 200 selections. You pick a selection by pressing one of 20 letter keys and a number key 0 - 9. The selections are listed on panels behind the glass that can be flipped back and forth to show the full 200 choices, 40 at a time.
I've set mine up so that the first 10 selections are internet and SiriusXM radio stations; the next ten are Sonos playlists, and the remaining 180 selections are for favorite songs.
Also check out my raspberry pi zero powered portable Sonos volume controller : https://sites.google.com/shortens.ca/sonoswallbox/portable-sonos-volume-control . It uses new, object based code - i am in the process of re-writing the wallbox code to use generic modules and classes I wrote for the volume control box.
If you've got questions feel free to email me at geoff.shorten@shortens.ca
On the left is the Seeburg wallbox, in the middle a display, volume control, power button, and skip track button, all connected to a raspberry pi behind the wall plate, on the right is the rasperry pi (in a grounded metal case) and the interface board on top. Below are a couple of videos of the Sonos wallbox controller in operation.
The first 10 selections on the wallbox select internet radio stations and Sirius XM stations (such as my two favorites, POTUS and Atlantic Sound Factory). The next 10 select spotify or sonos playlists. the remaining 180 selections add individual songs to the queue. These songs are in a sonos playlist. If the queue is playing, and a radio station or playlist is selected, the queue is cleared and the station or playlist is started. If it's a playlist it starts at a random song in the playlist. If a song is selected when a radio station or playlist is playing a new queue is started and the song selected starts playing. Subsequent song selections are added to the queue.