Whole Home Sonos Control using Amazon Echo Skill
I’ve always wanted voice control for my Sonos speakers, and the TL;DR version of my story is that thanks to a new Alexa Skill named House Band, I have succeeded. Here’s a short demo where I’ve used the intro to a track called Boats for Sale from a CD I own (so as not to violate any copyrights) to showcase this Skill. What’s really cool is that once Alexa starts playing music to my Sonos, I can use other Alexa functions without stopping the music (like asking for the weather as in the demo below). When I ask Alexa to ask House Band to play Boats for Sale, there is a short delay after acknowledgement because the software is actually SEARCHING my collection for this track.
How did I make this happen?
My Connected World includes a couple of Sonos Play 5 speakers, one in the Living Room and one in my Home Office. They are a couple of floors apart, but they cover 95% of my condo. The folks at Sonos haven’t announced any plans to enable Sonos with Amazon’s Echo and given their recent announcements and staff changes, I think it’s unlikely that this will ever happen. I’ve become spoiled with all the home automation Alexa voice control in the “Connected Home” Echo app, as I’ve got Insteon and Hue. (I’ve also got some Lutron gear, but that’s another story – they aren’t integrated with Echo either, but I’ve kludged up some IFTTT recipes to cover a few needs).
I went in search of a way to get Alexa to control my Sonos players, and while there are some super geeky node.js solutions out on Github, I discovered an Alexa Skill named House Band that was a dedicated voice controller for the JRiver Media Center App. I knew that JRiver MC included some DLNA functionality and wondered if I could tie all of this together. So, I downloaded the (Windows) trial version of the app (the app is available for other platforms as well). To take full advantage of seamless Sonos control, you’ll need a computer that runs 24/7 on the same network as your Sonos and if your router supports it, configure a reserved IP for this computer (or a static IP) so that Alexa can communicate with the JRiver MC software.
After downloading the app,installing it and allowing the Windows Firewall setting, I setup the port forwarding on my router to enable cloud functionality (needed for the House Ba nd Alexa Skill). During setup, a six digit access key is generated, which you will need when activating the House Band Alexa Skill, as shown in the image below (no, this is not MY access key). If you don’t save it when prompted, it will be available from the JRiver Media Center Tools, Options menu. Obviously, you will need to configure JR Media Center to point to your Music Library as part of initial setup. For purposes of using the Alexa House Band Skill, only local music content is supported (no cloud based music services).
Be sure to verify that MR Media Center is set to start with Windows from the Tools, Options menu (see image below).
To take full advantage of whole home Sonos with the House Band Alexa Skill, simply DLNA device names inside the JRiver MC app in order to be able to use short, meaningful device names for “Zones”. Windows DLNA discovery/JRiver MC uses long, technobabble names like Sonos: Play 5:Living Room Renderer. I right clicked and renamed to Living Room. In the screenshot below, I’m renaming my WDTVLiveHub (a different DLNA renderer) to Live Hub.
The DLNA protocol does not natively support linking devices for synchronized playback, but the JRiver Media Center has this functionality. Use your mouse to drag a player under Playing Now on top of the player you want to link and release your mouse. After doing this, My Living Room and Office Sonos Play 5’s were linked! You can unlink and “Play To” an individual “Zone” (and the House Band Alexa Skill includes the capability to change zones so once enabled, you’ll be able to do this by voice).
Here’s a demo of Alexa changing Zones using the House Band Alexa Skill. I’m sending one of my JRiver Playlists to a SONOS speaker in my Dining Room. The amazing House Band Alexa Skill works with JRiver Media Center and lets me send music to individual Zones. Each of my SONOS players is in an individual Zone right now and not linked.
It’s time to enable the House Band Alexa Skill in the Alexa App/web app. Go to the skills menu and search for House Band or use THIS LINK, and enter the 6 digit code to enable it. If your port forwarding is correctly setup and the firewall is set to allow communications with the app, you should get a confirmation.
Now it’s time to have some fun. A list of some of the voice commands recognized by the Alexa House Band Skill is available at http://yabb.jriver.com/interact/index.php?topic=15326.msg717359#msg717359 – and I suspect that this is just the beginning.
Let me know on Twitter @barbbowman if you have any questions.