First I was tinkering with chrome apps and sonos, but chrome apps are a dying platform, so I've moved over to Electron. The project is written in mostly ES6 and utilizes Preact and Redux to manage the UI
I use Ubuntu as my main OS, and there's no decent controller app. So I am aiming to at some point provide a usable sonos controller that can run on Linux also, installed via deb file. Maybe it won't have all the functions of the real sonos player, but if I can browse the library and manage the queue, I'll be pretty damn happy. Previously this was a chrome app, and I had a good 70k users on the chrome store.
You can find the latest .deb on the release page. You can doubleclick it on Ubuntu to install it via the Software Center, alternatively run
sudo dpkg -i sonos-controller-unofficial-amd64.deb
You will need node.js for this.
First, initialize the project:
npm install
Second, start the electron app in develop mode:
npm run develop
Building a deb:
npm run dist
This might require some additional binaries, like graphicsMagick
and
icnsutils
, which you can install via apt
You can install with snap. Currently you need to pass the --dangerous
. Once you have downloaded the snap run:
snap install sonos-controller-unofficial_0.1.3_amd64.snap --dangerous
You will need to whitelist these if you run Ubuntu firewall for example:
- TCP 1400 outgoing
- TCP 3400 incoming
- UDP 1900 outgoing
- UDP 1905 incoming
-
I ported nearly all of https://github.com/bencevans/node-sonos/ so that it worked in chrome, and made minor modifications. Also made it into an ES6 code base where it was easy to do.
-
The web interface markup and css is poached from https://github.com/jishi/node-sonos-web-controller/
Please refer to the above projects' licenses (MIT), where they apply.