- What is it?
A flexible web based controller for the Sonos Digital Music System.
The download contains two parts:
- Server software - runs on any system that supports Perl, tested on Windows XP, OS X, and Linux
- Browser software - runs inside of any web browser, tested on everything from Firefox to a T-Mobile Sidekick II cellphone
- Included User Interfaces:
There are several different interfaces included. Click on the links for screenshots.
- /isonos - Wonderful iTunes influenced UI by Xiao Yu. - Available in 0.52 or later
- /simple - The original UI, doesn't use any Javascript, DHTML, or
AJAX, instead it is currently "Old-School" and uses just frames.
This of course means it has quirks, but it will work on almost ANY browser.
- /simplejs - Same as simple, however AJAX style backend. Makes updates faster.
- /blue - A Blue UI with some graphics, AJAX style backend.
- /mobile.html - Works on cellphones, no frames, no nothing
- /status.html - Simple status page
- /status.xml - Simple status page in xml
- /nonos - User contributed UI
- /iSonosStub.js - Instructions for converting any iTunes Konfabulator widget to support Sonos
- Included Plugins:
There are several different plugins included. Click on the links for screenshots.
- /AlarmClock and Edit - A powerful multi alarm clock
- /MusicLog - Log all the songs played
- /LastFM - Beta LastFM submission integration
- /AutoReindex - Automatically reindex music library
- /Podcasts - Experimental plugin that plays podcasts without downloading
- /MagicSong, Edit, Demo - Add fake songs that perform tasks, such as play Podcasts without downloading or put Sonos to sleep
- /LinkSets and Edit - Simple interface to quickly go to various zone link scenerios
- /Nanny and Edit - Monitor zones for bad volume and more (in the future)
- AIM Bot - Interact with Sonos thru AIM or AOL.
- Why should I run it?
- Free text search! Find songs quickly.
- Need Sonos controller for a cellphone, pda, ...
- Ability to use iTunes Konfabulator widgets with Sonos
- Learn a little about Perl, Javascript & UPnP
- Plugins!
- How does it work?
A perl script runs and emulates a HTTP server and acts as an UPnP Control Point.
The HTTP server portion handles all the requests from the UI, while the UPnP Control Point
portion talks to the Sonos boxes.
This design was used so Apache or another web server isn't required.
UPnP requires that a piece of software is always running to listen for UPnP Events, which
is why traditional CGI software can't be used.
It assumes all Sonos boxes that respond are on the same Sonos Network, which should
be true for most users.
- Where do I get it?
sonosweb-0.72.tar.gz Windows Installer: sonosweb-0.72.exe
Change History
Previous Versions
- Can you make it do this? It doesn't work! Help!
Send mail to sonos@purple.org or post to the Sonos Forums, with questions or suggestions. Please look at the known issues below first.
- Known Issues
- Same network as Sonos - The sonos.pl script must be run on a machine that is on the same network as the Sonos boxes.
For exampe don't run it at work to control home boxes, however the web browser software can be used anywhere.
- Multiple Ethernet Interfaces - Currently doesn't support running on a machine with multiple active interfaces - Fixed in 0.49
- XP Firewall - perl & sonosweb must be added to the allowed firewall applications, usually Windows will prompt to add it automatically.
- Linux Firewall - The following ports must be opened to the local network
- tcp 8001 - The web browser software uses this port, opening to the internet allows anyone to control too
- tcp 8058 - UPnP subscription port
- udp 8008 - UPnP ssdp search port
- udp 1900 - UPnP ssdp port
- Will it run on Windows or OS X?
Yes. For Windows you can download the installer above, and then you don't need to install Perl seperately.
However for OS X or if you want to do development you will want to install ActiveState Perl.
(They even have downloads for UNIX if you don't have perl installed.)
- Download the sonosweb.tar.gz file above
- Uncompress the sonosweb.tar.gz archive, if using WinZip make sure "Use folder names" IS checked
- Goto http://www.activestate.com/Products/ActivePerl/
- Download ActivePerl 5.8.7.815 or newer (click the "ActivePerl Free Distribution" link and follow instructions)
- Install ActivePerl
- After installing ActivePerl, on Windows:
- Open a new shell (Start Menu -> Run -> "cmd")
- In the shell run the "ppm" command
- At the ppm command prompt type "install HTML-Template"
- Once it has finished type "quit"
- Change into the sonos directory that was extracted above
- Type "perl sonos.pl"
- After installing ActivePerl, on OS X:
- Open a new terminal window
- At the prompt run the "/usr/local/ActivePerl-5.8/bin/ppm" command
- At the ppm command prompt type "install HTML-Template"
- Once it has finished type "quit"
- Change into the sonos directory that was extracted above
- Type "/usr/local/ActivePerl-5.8/bin/perl sonos.pl"
- Now using a browser on the same machine, goto http://localhost:8001
- To use from a different machine find the machine's IP address using the ipconfig or ifconfig command, use that ip instead of localhost above
- All done - Please let me know if this works/doesn't work for you.
- Other Sonos Projects:
- TODO:
- Group Volume Control
- Add more features to the Nanny Plugin
- Need Logo & Catchy Name!
- Need better UI and images
- Become a Zone
- Donations:
Please don't feel obligated, folks keep bugging me to add a Donate button.
- Web Hosting:
I've been really happy with