Amazon Echo controller



Show first post
This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

139 replies

I managed to get Ryan and Jishi's Echo controller working (start at http://ryangraciano.com/post/124770680942/controlling-sonos-with-amazon-echo#disqus_thread if you are trying to figure out where to start). I wouldn't call the setup easy, but it's probably doable for a determined person who is moderately comfortable with tech stuff.

I love Sonos so much more with Echo controlling it that I've already ordered more speakers. Sonos developers, I hope you're pursuing this - you guys are going to sell a lot of hardware when people see what a Sonos-Echo integration looks like, but most people aren't going to be willing to go the do-it-yourself route that it requires at the moment.
Add me to the list that would LOVE to see this functionality. I have multiple Sonos devices and have suggested (sold) Sonos to over a dozen friends and family members. Many of them are asking me about Echo now and I cannot make a recommendation w/o knowing that this may be an option. Would HATE to see Sonos lose market share to Echo.
Userlevel 6
Badge +8
In the near term integration with Echo would be good. Sonos will not have the NLP processing power Amazon has any time soon
.
Sonos definitely needs a voice controller, call it the "Sonos Vox" and charge $149.95. Design it so you can set it on a coffee table and the user can change volume, play favorites, and change tracks with their voice


There, I did the tough part, now go make the product so I can buy it!


I agree with this "sort of". A VOX related addition would be nice, but needs to have more than one room in mind. For example, I have 4 Play 3's, a playbar on my TV (with play 1's and sub) and 2 connect amps powering my back yard speakers. Being in one room of a 3,000 sq Ft house wouldn't provide much benefit. I could technically use my Xbox One to control everything from the living room if I make my playbar the primary and then Groove Music, but that only solves one room, not the whole house... Whatever SonoS does now, it has to be epic because a lot of other players in the market are doing the same thing, if not more.
I've got the integration working like described, for those who are interested:

https://youtu.be/nQ5h1jPsqjI

It's working very smooth, all of the Amazon Echo native commands can be used.

Can you package up an app and sell it. I want to be able to just buy a piece of software and or hardware and have my Sonos work with my Amazon Echo.



Why dont you get Echofund money (100 million dollars!!) and get amazon to fund your integration as a extension/app ????? i would buy it!
Just received my Echo today and the second thing I thought was "I need to have this kind of control for my Sonos" - either as a Sonos Native product or via Echo.
My first thought was more childish: ask the Echo "what's a henway"


agree with using Echo as a controller - would be very handy -
I've got the integration working like described, for those who are interested:

https://youtu.be/nQ5h1jPsqjI

It's working very smooth, all of the Amazon Echo native commands can be used.

Can you package up an app and sell it. I want to be able to just buy a piece of software and or hardware and have my Sonos work with my Amazon Echo.
I have Sonos, the Echo, IFTTT, SmartThings, Wink, Hue, and a myriad of devices covering the in between.

I really debated whether to add Sonos which was my most recent purchase (a Playbar, (2) Play:3's, and (2) Play:1's). My initial plan was to instead buy the Definitive Technology W Studio because of the DTS PlayFi system. My guess is that Sonos will stick with a closed system whereas DTS PlayFi is open and they're working on adding more partners beyond Polk and DT who have multi-room systems available with PlayFi today. 

I do wish Sonos had gone a different route, toward licensing their mesh framework or whatever combination of things needs to happen, but that isn't the case. My 45-day Best Buy return policy is nearing, I plan to heading out today and pick up the DT W Studio to do a side-by-side comparison in terms of sound quality. Sonos is a bit more established with regard to their IFTTT integration, etc, but I believe DTS PlayFi might be the better choice in the long run (for me) if I want a system that's likely to have more integration options.
I've got the integration working like described, for those who are interested:

https://youtu.be/nQ5h1jPsqjI

It's working very smooth, all of the Amazon Echo native commands can be used.
Sonos needs to get with it and get on board with Echo before they loose out on speaker marketshare with a Echo/some other speaker bundle.

Sonos is amazing but the control is very limiting.
I believe it's relatively easy to integrate Amazon Echo with Sonos.
With the solution described in my idea, you can use the Amazon Echo native play capabilities to control the music played on your Sonos speakers.

You can play, pause, or stop music, and you can control the volume.
Also you can ask what song is currently being played.

Read the whole description of my idea here:
http://www.echotalk.org/index.php/topic,155.0.html

The node http proxy employed by the other solution handles all of those sonos commands too (or, from a quick look, pretty much all of them); To use it with the amazon service you would just have to code them up on AWS + add the Alexa skill intents. I will check out that python system in more depth later on. I see how you can get the sonos zones to auto configure, but what I have found is that I either use the system with basically standard groupings (LR + DR + KITCHEN), Party mode, or it's custom depending what we're listening to and who's in the house (bathroom playing while I'm in the shower, wife in the bedroom, kids watching TV). I don't see how auto-configuring the system to try and anticipate what I want as I move through the house would be useful, at least not in my house. I have thought about using my Home Automation to trigger SONOS when doors open or motion sensors go off, and apart from some very specific cases, it doesn't work for me. (Specific cases: I have SONOS speak to me and tell me when the garage has opened/closed, or when an Alexa timer has sounded). If you have yours doing something cool and intelligent- that's sweet. But the first time I walked into the LR and the system killed the TV audio to play Phantogram my wife would kill me, and if it did that while my kids were watching Phineas and Ferb I would find my Echo tossed out the window. 😉 As for skipping the "Alexa ask XXX to YYY..."; this is how the Echo has been programmed to handle third party integrations- and there are a lot of them coming! I would get used to it ! 🙂 (I have also integrated SmartThings home automation and wrote my own API for NextBus to get bus arrivals near my house.- they all use the "ask" intents.)
I believe it's relatively easy to integrate Amazon Echo with Sonos.
With the solution described in my idea, you can use the Amazon Echo native play capabilities to control the music played on your Sonos speakers.

You can play, pause, or stop music, and you can control the volume.
Also you can ask what song is currently being played.

Read the whole description of my idea here:
http://www.echotalk.org/index.php/topic,155.0.html

Any home automation system, connected to sensors, knows where people are.

What (Sonos zones) to add and remove depends on variables:
- is a room of the house 'occupied' by people?
- what's the time of the day? (not playing during the night in the bedroom)
- who's in the house?
- ...

This is decided by a 'Sonos Operator' based on SoCo.
SoCo can be used to easily join and unjoin zones to groups. Also, it can be used to play mp3's or services. Combined with gTTS it can be used to play a text to speech message, in all the rooms of the house.
I believe it's relatively easy to integrate Amazon Echo with Sonos.
With the solution described in my idea, you can use the Amazon Echo native play capabilities to control the music played on your Sonos speakers.

You can play, pause, or stop music, and you can control the volume.
Also you can ask what song is currently being played.

Read the whole description of my idea here:
http://www.echotalk.org/index.php/topic,155.0.html

You have something track individuals throughout the house? Maybe a better question is how are you deciding what to add and remove as people move through the house?
I believe it's relatively easy to integrate Amazon Echo with Sonos.
With the solution described in my idea, you can use the Amazon Echo native play capabilities to control the music played on your Sonos speakers.

You can play, pause, or stop music, and you can control the volume.
Also you can ask what song is currently being played.

Read the whole description of my idea here:
http://www.echotalk.org/index.php/topic,155.0.html

You're right, the system you're pointing at works with "Alexa, ask Sonos to ...".
This extra step is small, but I still would prefer to avoid it.

Gaining access to other services than local files is easy in my idea too. The Sonos speakers are playing what the Echo is playing. This can be a local file or a service.

I found one 'API' pointing to what the Echo is playing, but I have to dig into it further:
https://github.com/camalot/Amazon-Echo-Api

Currently I already am using a "Sonos Operator" managing all of my Sonos speakers. Groups of speakers are formed based on the location of persons in rooms by joining / unjoining Sonos zones to groups, automatically. This is based on the SoCo python implementation: https://github.com/SoCo/SoCo
I believe it's relatively easy to integrate Amazon Echo with Sonos.
With the solution described in my idea, you can use the Amazon Echo native play capabilities to control the music played on your Sonos speakers.

You can play, pause, or stop music, and you can control the volume.
Also you can ask what song is currently being played.

Read the whole description of my idea here:
http://www.echotalk.org/index.php/topic,155.0.html

With the system I posted you say "Alexa ask sonos to play..." or "ask sonos to volume up" or "ask sonos to next". All the functionality you are suggesting is available or easily coded. You could even code it to request the name of the song/band/album/Playlist. It's really not that hard, certainly on par with what you have suggested. Furthermore, you gain all of the other services beyond local files (Pandora, Spotify, songza, stitcher). Also, I have been delving into the Echo, and I'm not sure that there is an api available to figure out what the Echo is doing. Did you find one? The hiccup with sonos is the configuration. Ultimately we want "sonos play this from this service on these speakers" ; that's a lot of possibilities to handle without error. Lastly, though I am impressed with the Echo sound, I have 5 zones in my house, and one of them uses the sonos TV bar + surround. Echo is a long way off from that functionality even if you discount sound quality.
Userlevel 1
I have been running an integration for about a week. You need to set up a file with presets (play this playlist in these rooms at this volume) but it works great... "Alexa Ask SONOS To Play Rock" and this will play a playlist named Rock from the SONOS favorites. You can add playlists with different names by adding them to the preset file.

Volume UP/Down and PAUSE are implemented, though not resume as of yet...

Setup is a little technical for those unfamiliar with it, but it worked perfectly for me.

NOTE: This requires a program called node.js to be running on a PC/MAC/Linux machine on your network (SONOS will not listen directly to the internet nor the Echo device, so you need to run this java program to listen for the commands from Amazon, answer the Echo and then control SONOS). That part is implied in the instructions, but everything else is walked through.

https://github.com/rgraciano/echo-sonos

Also: To have that script start on boot on Windows as a service, I used the "qckwinsvc" package from this page:
http://stackoverflow.com/questions/20...

NOTE: Plain English playlist names work well, and DO NOT capitalize the name of the playlist, the JAVA program will not match a capitalized playlist name with the parsed name it receives from the Echo (which will be lower-case).

Bravo! Thank you -- I I will work on getting this going... Really though, your effort shows that it can be (relatively easily) done as a proof of concept. It sounds like there is room for improvement by Sonos (eg having the bridge act as an intermediary with Amazon, ability to define location name of the speaker, ability to play things other than playlists -- eg Pandora -- , not worrying about the case sensitivity of the playlists etc) but they should all be relatively low hanging fruit. The fact that consumers are getting it going on a rudimentary basis should underscore the appetite in Sonos' customer base for this solution. I hope someone from Sonos is reading this thread and at least posts that it's on the roadmap.
I believe it's relatively easy to integrate Amazon Echo with Sonos.
With the solution described in my idea, you can use the Amazon Echo native play capabilities to control the music played on your Sonos speakers.

You can play, pause, or stop music, and you can control the volume.
Also you can ask what song is currently being played.

Read the whole description of my idea here:
http://www.echotalk.org/index.php/topic,155.0.html

I've seen your post, but I believe the solution I'm describing offers a lot more functionality:

- Now you can just say: "Alexa, play Madonna"
- Or: Alexa, next"
- Or: "Alexa, volume up"
- Or: "Alexa, what is the name of this song?"

To sum up, you cannot use any of the native play capabilities.

To set it up initially, your solution might be easier, but it does not provide the same user experience.

In the end it's all about user experience, otherwise we could just play music on the Amazon Echo and forget about Sonos.
I believe it's relatively easy to integrate Amazon Echo with Sonos.
With the solution described in my idea, you can use the Amazon Echo native play capabilities to control the music played on your Sonos speakers.

You can play, pause, or stop music, and you can control the volume.
Also you can ask what song is currently being played.

Read the whole description of my idea here:
http://www.echotalk.org/index.php/topic,155.0.html

You're trying too hard! Look at my post above, someone has already written an echo integration. The 3 parts: 1) an Alexa skill that defines the structure of a voice command 2) an Amazon Web Service to receive the data from the Skill and call a URL running on your home (sonos) network 3) a simple program running on your network that receives the calls from AWS and translates them to a sonos command on your network. I have this working. It could use some more fine control, but it works fine.
I believe it's relatively easy to integrate Amazon Echo with Sonos.
With the solution described in my idea, you can use the Amazon Echo native play capabilities to control the music played on your Sonos speakers.

You can play, pause, or stop music, and you can control the volume.
Also you can ask what song is currently being played.

Read the whole description of my idea here:
http://www.echotalk.org/index.php/topic,155.0.html
I would sell my SONOS and ECHO if someone came out with the features of both connected. I think most would. Hopefully someone will figure this out soon. I also think Sonos should integrate a Intercom Feature that allows me to speak to another room.
SONOS would need a fundamental change; It's currently "self-contained" in that the only information flowing into it from the internet are the music streams. Those are "pulled" down. In order for the Echo to command SONOS, it needs to be able to "push" commands. This requires either some advanced technical know-how on the part of the user (something SONOS clearly shies away from) or for them to run a trusted cloud service that can accept the commands from Echo and relay them to your home. Needless to say, that second option is a big headache and clearly something that SONOS has tried to avoid. If you look at another comment I made on this thread, I am running a SONOS integration with Echo. However, it requires that you run a third party piece of SW on the same network as your SONOS and open your network up to receive the Echo commands. So it's possible, it's just not simple. FYI, the echo sounds great- for a little speaker sitting on your desk.
I would buy Sonus if it supported Echo. Im looking to do whole home audio but want it to integrate with Echo.
I have been running an integration for about a week. You need to set up a file with presets (play this playlist in these rooms at this volume) but it works great... "Alexa Ask SONOS To Play Rock" and this will play a playlist named Rock from the SONOS favorites. You can add playlists with different names by adding them to the preset file.

Volume UP/Down and PAUSE are implemented, though not resume as of yet...

Setup is a little technical for those unfamiliar with it, but it worked perfectly for me.

NOTE: This requires a program called node.js to be running on a PC/MAC/Linux machine on your network (SONOS will not listen directly to the internet nor the Echo device, so you need to run this java program to listen for the commands from Amazon, answer the Echo and then control SONOS). That part is implied in the instructions, but everything else is walked through.

https://github.com/rgraciano/echo-sonos

Also: To have that script start on boot on Windows as a service, I used the "qckwinsvc" package from this page:
http://stackoverflow.com/questions/20...

NOTE: Plain English playlist names work well, and DO NOT capitalize the name of the playlist, the JAVA program will not match a capitalized playlist name with the parsed name it receives from the Echo (which will be lower-case).

Thanks so much Jed! I may try to attempt this!
I have been running an integration for about a week. You need to set up a file with presets (play this playlist in these rooms at this volume) but it works great... "Alexa Ask SONOS To Play Rock" and this will play a playlist named Rock from the SONOS favorites. You can add playlists with different names by adding them to the preset file.

Volume UP/Down and PAUSE are implemented, though not resume as of yet...

Setup is a little technical for those unfamiliar with it, but it worked perfectly for me.

NOTE: This requires a program called node.js to be running on a PC/MAC/Linux machine on your network (SONOS will not listen directly to the internet nor the Echo device, so you need to run this java program to listen for the commands from Amazon, answer the Echo and then control SONOS). That part is implied in the instructions, but everything else is walked through.

https://github.com/rgraciano/echo-sonos

Also: To have that script start on boot on Windows as a service, I used the "qckwinsvc" package from this page:
http://stackoverflow.com/questions/20...

NOTE: Plain English playlist names work well, and DO NOT capitalize the name of the playlist, the JAVA program will not match a capitalized playlist name with the parsed name it receives from the Echo (which will be lower-case).

Great info! Thanks.
I have been running an integration for about a week. You need to set up a file with presets (play this playlist in these rooms at this volume) but it works great... "Alexa Ask SONOS To Play Rock" and this will play a playlist named Rock from the SONOS favorites. You can add playlists with different names by adding them to the preset file.

Volume UP/Down and PAUSE are implemented, though not resume as of yet...

Setup is a little technical for those unfamiliar with it, but it worked perfectly for me.

NOTE: This requires a program called node.js to be running on a PC/MAC/Linux machine on your network (SONOS will not listen directly to the internet nor the Echo device, so you need to run this java program to listen for the commands from Amazon, answer the Echo and then control SONOS). That part is implied in the instructions, but everything else is walked through.

https://github.com/rgraciano/echo-sonos

Also: To have that script start on boot on Windows as a service, I used the "qckwinsvc" package from this page:
http://stackoverflow.com/questions/20...

NOTE: Plain English playlist names work well, and DO NOT capitalize the name of the playlist, the JAVA program will not match a capitalized playlist name with the parsed name it receives from the Echo (which will be lower-case).