Alexa, SmartThings and Russound Home Audio?

echo

(Todd M) #1

I am looking for instructions/options for controlling my Russound whole-home audio with my voice through an Echo Dot. I have my Russound connected to the SmartThings hub and can control it with a SmartThings app on my phone (thanks to Redloro!). I can do all of that with the Russound app as well but not through Alexa with my voice. Russound has told me that they are working on some form of voice control but will not comment any further. Now I want to integrate an Alexa Dot to be able to select source, speaker(s) and adjust volume with my voice. I know that a few people here have this integration working. I just don’t want to have to re-invent the wheel. Please share you information with me if you have any of this process working. Thanks.


(Micheal ) #2

I am the author of Ask Alexa which allows integration between SmartThings devices and the Alexa. From your description it sounds like the hard part is done…integrating it in to SmartThings. How does it appear to SmartThings? As a switch, dimmer (variable device), or something else.

I can almost guarantee we can get this working if it isn’t already capably now. PM me or we can discuss here testing it and doing some integration if it doesn’t work off the bat.


(Todd M) #3

Micheal,
I agree that this process is probably much easier than I suspect and certainly may have already been developed. Please look here : [RELEASE] Russound Multi-Zone Controller Integration to see what I have completed so far. I don’t understand all of this process yet but I am learning! Thanks so much for your interest and help.


(Micheal ) #4

Ok…had a quick glance…This appears just like a speaker…which means you will be able to natively control it via Ask Alexa. I WAS going to remove this feature from Ask Alexa, but probably won’t now…

The current version has this support…simple follow the instructions here to get Ask Alexa installed and we can work together on any nuanced items that aren’t working for you: http://thingsthataresmart.wiki/index.php?title=Ask_Alexa


(Todd M) #5

I cannot get the Ask Alexa SmartApp to show up in Market Place>>>SmartApps>>>+MyApps. I went through your procedure twice. I have had a free AWS account for a long time. I do not know what type of account it is but it has been free since I set it up. I did set up a new Lambda account. Could that be the problem? I only went through the Ask Alexa Extension Code Installation once. I did have two separate Ask Alexa SmartApp listed in my SmartThings online account and I deleted one of them. Suggestions?


(Micheal ) #6

Ask Alexa will show up when you publish the code in your SmartThings IDE. If you have not published it, it will not show up. This has nothing to do with the AWS until a later step.

I would ensure that the IDE account you are working with is the same your SmartThings mobile app is logging into.

PM me if it still doesn’t work or if you run into issues.


(Todd M) #7

Michael,
Ok, I now have Ask Alexa and the Extensions installed and they appear in my SmartThings IDE account. What is my next step? I apologize, you may have to bottle-feed me at first so that I can get my Russound commands set up. Just to review what I am trying to do…
I have a Window 7 laptop with my entire music collection on it. I have Kodi installed on the laptop to manage that music collection. I have been using the Yatse app on my phone/pad to interface (wifi) with Kodi to select music/playlists and do playback control. I have been using the Russound app (wifi) on my phone/pad to turn on zones, select source and adjust volume. All very archaic as you can tell.
Now I want to be able to ask Alexa to turn on the kitchen speakers, select my music library, select my 80’s rock playlist and set the volume at 50%. Or simply, “Alexa, play my 80’s rock in the kitchen.” Can you please help me get this process started?


(Micheal ) #8

To be clear, you will only be able to control the speaker (play, mute, pause, volume up/down)…Each device implements music playback differently and the version of Ask Alexa you have can ONLY control music from Sonos speakers, and I am removing that functionality in the next release. Sonos speakers keep a cache of recently played songs in its memory and SmartThings’ integration allowed the smartapp to find, catalog and initiate commands to play these back. Unfortunately, this was unique to Sonos. A similar method could be implemented for your pieces, but let’s first make sure you can actually control them with Ask Alexa.

On the main screen, you will see a ‘connected speakers’ selection. See if the speaker/system show up there and if so, update your developer slots with the names of the speakers, then see if you can control them. Let me know and we can take this to PM to see what will be next.


(Steve Davies) #9

I can confirm that you can control the Russound via Alexa with your voice using Redloro’s handiwork. I had it setup tonight, renamed the speakers to something easy to remember such as “Kitchen Music” and Alexa will easily turn the zone on and off. I haven’t been successful in adjusting volume or sources with it yet though. Still looking for a list of commands…


(Micheal ) #10

Alexa directly, or Ask Alexa? If you are using Ask Alexa, that is good news! The commands to change the volume would be something like:

Alexa, tell SmartThings to set the {Speaker name} to 50%

or

Alexa, ask SmartThings to increase {Speaker name}

etc.


(Steve Davies) #11

I tried both with Alexa and Ask Alexa to set the speaker volume, both replied - Speaker doesn’t support that.
I have updated the device handler to include the capability “switch volume”


(Todd M) #12

Steve,
Awesome! I am very close to needing your help with this setup. Thank you and Michael. I will be in touch soon.


(Todd M) #13

Steve and Micheal,
Now I need to pick your brains and try to get the functionality out of Alexa that I desire. Micheal, will I be able to use Ask Alexa with my Russound once you remove the Sonos functionality?

I have the json node proxy running on a Windows 7 laptop (Kudos to Redloro! [[RELEASE] Russound Multi-Zone Controller Integration]
I am using the Kodi-Alexa skill [https://github.com/m0ngr31] to control Kodi.
I have Kodi running on the same laptop with my entire music collection (8,000 songs) on that same machine.

What are your commands to Alexa to play your 80’s playlist in the kitchen? I think my commands should go something like this…

“Alexa, turn on the kitchen speakers to 50% and set the source to My Music Library”
“Alexa, tell Kodi to play my 80’s playlist”

Thoughts, suggestions, knowledge, wisdom…


(Micheal ) #14

I have decided, mostly from your use case, not to remove the speaker control from the app. I will only be removing the actual Sonos-specific features. This is for the concept on Memory Slots and will only affect people with Sonos speakers. The real Sonos skill is better at playing specific music with those speakers.

Regarding your use case, if you can’t choose music from the SmartThings DTH then Ask Alexa won’t be able to do it. Ask Alexa is only interacting with the DTH, not the speaker itself.

That being said you may want to look at using Ask Alexa with WebCoRE and see if you can do something like this guy: http://thingsthataresmart.wiki/index.php?title=Using_Parameters_with_Ask_Alexa_and_webCoRE

Let me know if that helps at all.


(Todd M) #15

Michael,
Awesome! Thanks for not removing the speaker control from the Ask Alexa app. Your app works very well for me. The idea of using WebCoRE is exciting. I have seen it mentioned several times in various forums. Between Ask Alexa and Redloro’s Russound control I think that I can accomplish what I want to do with Alexa. I’ll probably get a good working process just in time for Russound to publish their own Alexa integration. I am sure I will have to pick your brain soon. Thanks again!


(Todd M) #16

Michael,
I have been studying your Ask Alexa. WOW! You really have a great product there. You have definitely put lots of time and effort into that. I am impressed. And I am just scratching the surface. I cannot wait to use more of it. I am SO CLOSE to solving my Alexa-Russound problem. But I need your insight. I am having trouble understanding the devices produced from Redloro’s ST app (“Kitchen”, “Porch”, “Workshop”, etc). I have asked for his help here but he admits he does not know much about Alexa and webCoRE. I can use his app on my phone to control everything on my Russound. I can turn zones (“Kitchen”, “Bathroom”, “Porch”, etc) on/off, I can select the source (source0 - source5) (“Radio”, “Music Server”, “Bluetooth”, etc). I can adjust volume, base, treble, turn all zones off, set “party mode” on/off. Here is where I am stuck. I can say “Alexa, turn on the Kitchen” and the kitchen zone speakers are turned on. I can say “Alexa, set the Kitchen volume to 50 percent” and the volume is set to 50 percent. Those things are easily controlled with just Ask Alexa, no webCoRE programming from me. If I say “Alexa turn on source one in the Kitchen” or “Alexa in the Kitchen turn on source one”, I get nothing. I have tried the command in several ways. Nothing. I cannot get Alexa to recognize and select a source. In webCoRE I can write a piston (brute force) that will turn on any of the sources (source0 - source5, ie. “Radio” - “Bluetooth”) and it works. My problem is what “If” statement do I use in the piston to know which source I requested to be turned on. I don’t know which variable to query. I imagine it would be something like :
If I say “Alexa turn on the radio in the Kitchen” then the piston code may look like this :

If source is “radio” then source0 (on)

or if I say “Alexa turn on my music server in the Bathroom” the the piston code may look like this :

If source is “music server” then source1 (on).

How can I determine which source was spoken so that I can put that in the “If” statement to turn that source on?

This is the final piece of my puzzle. I have everything else working. Once I determine how to select the source by voice I can implement my plan to completely control my whole-home audio (Russound) with Alexa and not have to use my phone/pad. As always, you help is greatly appreciated.


(Micheal ) #17

Todd,

Thanks…this has been a labor of love, and when I see people doing such creative things with my app that I never thought possible, it is refreshing to know that it has created a life on its own!

To be clear, I assume you are starting with “Alexa, Tell SmartThings…” Right? Unless you have setup the invocation name as “kitchen”. Is that the case?

As for your other question, they really depend on how you answered above. There are extra parameters tiy can send to WebCore, but they require a very specific setup.

Please clarify how you are doing all of this and we can work together to figure this out.


(Todd M) #18

I don’t have to say “tell Smartthings”. I just say the name of the device…“Alexa, turn the Kitchen on”, and it works. The Redloro ST skill adds devices to my ST app… Great Room, Kitchen, Master Bath, Master Shower, Porch, Workshop. I add those to Ask Alexa as speaker switches as you suggested from the very beginning of our dialog. Those were chosen by me and coded into the config.json file (as “zones”) used with Redloro’s work. Also included in that config.json file are my “source” names, Tuner, Music Server, Great Box, Master Box, Porch Box, Bluetooth. I did not set up any invocation names. Or, maybe those are my invocation names.

This is what I don’t understand. I can say “turn the kitchen on” and that works, as if Kitchen is a boolean variable. Then the command “Set the volume to 50 percent in the Kitchen”, I guess “volume” is an integer variable. So is “source” the variable that I need to set in my piston with Ask Alexa? Does the device in my ST app contain those variables? Not sure. It seems so. And if so, then why won’t “Set source to “Tuner”” work as easily as the “Set volume” command? I can set the source with my piston command by just hard coding source=source0 (on). But apparently Alexa does not recognize the word “source”. Or maybe “source” and “source0” (or source1, source2, source3…) are confusing Alexa. I just don’t understand the config.json language to see what I need here. If you have a moment, take a look at the RNET.JS file from Redloro’s Russound work and maybe glean some understanding that I am clearly missing. Here is my config.json file :

{
“port”: 8081,
“authCode”: “secret”,
“rnet”: {
“c-series”: true,
“serialPort”: “COM3”,
“sources”: [
“Tuner”,
“Music Server”,
“Great Box”,
“Master Box”,
“Porch Box”,
“Bluetooth”
],
“controllerConfig”: {
“type”: “discover”,
“controllers”: [
{
“controller”: 0,
“zones”: [
{
“zone”: 0,
“name”: “Great Room”
},
{
“zone”: 1,
“name”: “Kitchen”
},
{
“zone”: 2,
“name”: “Porch”
},
{
“zone”: 3,
“name”: “Master Bath”
},
{
“zone”: 4,
“name”: “Workshop”
},
{
“zone”: 5,
“name”: “Master Shower”
}
]
}
]
}
}


(Micheal ) #19

If you are not invoking Ask Alexa you are using the native SmartThings integration. These have no interaction with Ask Alexa.

Does that make sense? If you aren’t using Ask Alexa then you will have trouble passing variables.

Am I misunderstanding how you are using this?


(Todd M) #20

Ah, I see. I have been testing things since your last message. Just loading the devices (Kitchen, Porch, Workshop) with Redloro’s SmartApp does not allow me to control anything with Alexa. Which is what I would expect since his app is designed to control those things manually on your phone. Alexa does not even detect the devices. If I add the Ask Alexa SmartApp, same thing. I cannot control anything with Alexa. But if I add the SmartThings / Samsung Connect skill to the Alexa app then the devices are detected (Kitchen, Porch, Workshop…). And I can turn them on/off and adjust the volume. Simply saying “Alexa, turn on the Kitchen” turns those zone speakers on. Saying “Alexa, set the volume in the Kitchen to fifty percent” also sets the volume in the Kitchen to 50%. However, I cannot seem to affect any of the other things like loudness, source, party mode. So it appears that I HAVE to have the SmartThings / Samsung Connect skill loaded in the Alexa app to get on/off and volume control. Now what do I do? I feel like I just took a couple of steps backwards…