Earlier this week I started a quest to include my Sonos speakers in my Connected Home in order to control them and action music with my Amazon Echo. I found a “wow” solution for DLNA control using JRiver Media Center and a powerful Alexa skill called House Band. What was missing was a way to summon and play my cloud based streaming stations using Alexa’s voice control. Last night I found a great solution in the Yonomi App (available for iOS and Android) that just this week added Alexa integration.
I’ve got a bunch of streaming stations configured in Sonos and all are added to my Sonos favorites. I’ve got Pandora Radio fav’s, Amazon Prime Stations, Tune In Radio, plus some of my own local playlists.
Yonomi works using routines that you can set up based on time and/or location, but you don’t need to make routines dependent on those criteria, you can just set up a routine that you can summon on demand, and once you hook up via the Smarthome menu on the Echo App, Alexa can TURN ON (routine name). Magic.
I’ve got all kinds of “things” provisioned in the Echo App. Insteon modules, Hue Lights, etc. Here’s a short video where I turn on a lamp and then start a Pandora Station that plays ABBA radio using a Yonomi routine called “Fun Stuff” to my Living Room Sonos:
Here’s how I did it.
1. I downloaded the Yonomi app and set up and account and then ran Discovery and it found my Sonos Speakers. I connected Yonomi to Alexa.
2. I created a new routine without a location or time based trigger that sent my Favorite:Abba Radio (Pandora Station) to my Living Room Sonos and named it “Fun Stuff”. (You want to avoid using names that might trigger Amazon Music to play directly on the Echo, which is why I didn’t name it Abba Radio.
3. I selected Favorites in the Yonomi App and added Fun Stuff
4. I opened the Echo app from a computer (http://echo.amazon.com) and navigated to Smarthome and ran Discovery. Yonomi, the Sonos Speakers, and the Routines were discovered. Note: every time you add a new routine you will need to return to the Echo App and run discovery, the routines are not added automatically; think of them as devices that need to be discovered every time a new one is added).
I can now tell Alexa to Turn on Fun Stuff. Boom, the Sonos speaker starts playing Abba Radio.
Bonus! I get a notification on my Apple Watch showing what routine is being run.
I’m REALLY liking this – and I’ve just gotten started. I’ve got Yonomi for streaming station Alexa voice control and House Band that can actually search my local collection and put together on the fly playlists by artist, album, etc. Can it get any better than this?
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.