[RELEASE] Russound Multi-Zone Controller Integration

Your config should be fine now; there is only one config for the ST Node Proxy service and all plugin params go into this one config file… and you can leave the “notify” stuff out as it’ll get automatically detected and saved once it’s running.

Shoot me an IM so that we can send you a script to help troubleshoot the issue.

PM sent. Thanks!

All, shout out to redloro here for really helping me and for building an awesome app! Much appreciated sir!

You’re welcome!! Glad that it’s finally working.

How difficult would it be to tie this into other ST events to act as a PA system? I’m mostly curious if there is a way of using the machine connected via rs232 itself as an audio source for things like door chime noises, intruder alert, or things of that nature. Both the Russound and Monoprice seem to have 12v triggers to do a PA override of all zones to play source from the source1 audio. I think the piece missing would be instructions being sent to the source audio to play a certain mp3 or wave depending on the event trigger, but otherwise the integration seems to mostly be there to do this?

Any thoughts on if this would be possible?

Edit: I should mention I have zero coding skills or knowledge, so apologies if this came off as a flippant question that’s actually quite involved.

I’m going to have a go at getting my Monoprice zone amp hooked up to my PI with this stuff installed - I have the 6 x 4 version of the amp, but the rs232 codes are mostly the same, so hopefully @tcjennings updates will work anyway. I’ve never really used Linux before so this should be fun!

Do I need my own github account, or will I just be downloading a zip, extracting, and then going from there?

Correct - would be relatively easy to write other Smartthings mods or update the existing app/device to support triggers based on what you want it to do. The plugin I wrote for the Honeywell/Ademco alarm system ([RELEASE] Honeywell / Ademco Vista 20P Integration) integrates with the SmartThings Home Monitor, allowing you to control the alarm system from the SmartThings main dashboard.

If you want it to act as a PA, I think the biggest task will be around controlling the input source. Ie. what source do you want to use and what do you want to do with it?

You can just download the zip, extract, configure and run it!

The biggest gap in my home right now (vs having an alarm installed like ADT or Vivent or whatever) is that my wife misses the door chime noise when the door or windows open/close sensors are triggered. As do I tbh! It was a nice audio cue, and as I have my phone on silent 99% of the time, using it as my alert source isn’t ideal. Since I have speakers throughout the house, I sort of thought perhaps this would be a solution (there doesn’t appear to be a good zwave or zigbee “chime” for this purpose). It might also be nice to just use it for alerts like “as a reminder, the door has been open for 5 minutes” or something. I guess possibilities are endless, but it’s a great central place to have sound come from. My idea would be using my raspberry pi as the source, and have a script trigger various audio files sitting in a folder on the pi (.wav files 1-100, if event x, play wav file 3.wav, etc). With the PA override function, this would also need some sort of 12v trigger I think.

Perhaps this is all ultimately overcomplicated for a simple door chime.

Also, apologies for all the dumb questions, but https://github.com/redloro/smartthings/blob/master/smartapps/russound-rnet.groovy gives me a 404 - any idea why?

Edit: duh. Just had to go to https://github.com/redloro/smartthings/tree/master/smartapps/redloro-smartthings first

It looks like your readme also contains instructions on installing node - would it be safe to say that I could read the readme, and starting from a very base raspbian install, it will walk me through installing all I need to install to get this running?

@morgin that’s correct… the readme is on Github and you should be able to follow it, step by step to get things setup.

You mean you’ve got zwave or wireless door/window sensors tied into ST and want something to chime when they open/close? Seems doable but may be overkill compared to using a wireless siren/chime. At a high level, would assume you need to do something along these lines;

  • Write SmartThings app to catch open sensor events
  • App would send command directly to ST Node Proxy and turn on a Zone, set Source and Volume
  • App would send command to Source to play the wav file (could build a plugin to Node Proxy to handle this)
  • App would send command to ST Node Proxy and turn off Zone
1 Like

Time to learn to code!

I have a slightly different setup, but have been working on a similar integration with multiple receivers, multiple zone and sources and ST. Thanks @redloro for the sample code for your Yamaha to get me started! The link to github above was not working for me, so I could not see how you created the devices. But, here is what I wanted to do. Like you, I have multiple zones and multiple sources. With an ITach device I have been able to turn on the correct recievers depending the zone I want to control. I also have several Amazon Echos I had added to the mix, which my ultimate goal was to not have to use the ST app at all, and just tell Alexa to do everything for each zone. I first focused on music in the zones, so I am able to say “Alexa turn kitchen music on”, “kitchen music volume”, etc. I’m very new to this, so everything is sort of hacked together just so I can learn the system, I am not a programmer at all.

In your opinion, how should I configure the devices? Would I have a device per zone+source? Or, can Echo somehow interface with the zone names and then control the sources somehow by name like you have in the app? I was thinking I would have to have a device named Kitchen Music and another Kitchen TV, Theater DVD, Theater Music, etc. Depending on the command, I would turn on the TV, switch the source in the room, etc. I’m guessing my one device handler would have quite a bit of logic in it to handle the scenarios.

Since I’m not a programmer, I’m not sure if I am going about this the right way. Thanks for any help or guidance. Hope all of the above makes sense.

@AHartong updated the links… a recent github update broke the links…

I haven’t played with Echo integration at all, but I do know that the Logitech Harmony supports SmartThing device switches… and can turn the switches on/off. If that’s the case with the Echo, then you would probably need to create a simple device of type switch that includes the specific zone+source combination. If the Echo supports more complex integration options, such as setting options, etc then you may be able to get away with having the Echo turn on a zone and then set the source… which is basically what the Russound Zone Device Type does: smartthings/russound-zone.groovy at master · redloro/smartthings · GitHub

Good luck!

1 Like

Thanks for the help with the sampler handler. I finally have a basic working setup with all of the devices named by zone+source or zone+scene. And, not sure if it is the best practice, but I have everything linked to one device handler to handle all of the a/v scenarios regardless of zone and device.

The issue I have is I only have the one ON() method (“kitchen music ON” vs “Theater music ON”), which then means I need to catch the calling parent device so I can then jump to the right method to perform the right device commands. Do you know the right way or how to do this?

I guess the alternative would be multiple handlers and then this would not be an issue, but I have not gotten far enoigh to know where I might run into issues based on the way I go here.

One more question, can you explain the zone(evt) method you have or point me to where I can read about what you are doing there?

You should be able to do all the device commands from your one ON() method… i.e. if you wanted to turn the Russound Zone ON and set the Source to 0, you would modify the on() method as follows:

def on() {
  sendCommand("/state/1")
  sendCommand("/source/0")
}

The zone(evt) method is called by the parent handler (SmartApp) to process events/status updates from the device. It’s only used to get state changes and update the device UI to show the current state. If you don’t care about that, you can ignore it.

Got it working, thanks!

@redloro and @tcjennings

Wanted to say thanks to both of you again. I have the 4 zone version of the Monoprice unit and it works with @tcjennings plugin for the 6 zone unit. I’ve just manually deleted the two devices that show up in smartthings for zones 5 and 6 that don’t actually exist - not sure if they’ll get re-added on a refresh but the only other solution i could come up with is to manually delete zones 5 and 6 in config.json and that seems to break everything. Any thoughts on where I might look to make sure it’s only pulling the 4 zones instead of forcing 6 devices to show in smartthings?

I also have a clarification question on how to set this up so it runs even on a reboot of my raspi. Do you do that by chance? I’ve been starting it by typing “npm start” in a terminal window from the node proxy folder. Is there a better way? I can’t figure out what to do with or how to use the “restart.me” file - your readme says something about typing “./restart.me” but I get a permission error when I do so. I don’t imagine I’ll need to restart very often, but if the power goes out it appears currently I need to ssh in through a terminal and type “npm start” again to get it going.

Edit: Two other questions:

  1. the mute icon currently shows in color when mute is off, and is greyed out when mute is on. Where should I be looking to flip that around? Lines 100-102 of the device handler code? (https://raw.githubusercontent.com/redloro/smartthings/master/images/mute-off.png seems to indicate this was likely an intentional design choice, so I assume I can just flip which icon shows for which state?)

  2. @tcjennings - I note your monoprice node plugin seems to have all the code in it for treble, bass, balance, etc. Was that done with an eye for future expansion in case you wanted to add those to the device handler? I assume the logic is that you change those settings so infrequently it maybe doesn’t make sense to include them in smartthings, but is it currently possible to do so?

how to set this up so it runs even on a reboot of my raps

If you’re running a current version of Raspian, you can drop this file into /etc/systemd/system directory and execute

touch /etc/default/smartthings-nodeproxy
systemctl daemon-reload
systemctl enable smartthings-nodeproxy

Before you do, you should change any paths in that file to reflect your environment.

Sure.

Yes, I wanted to make sure the plugin had complete coverage of the amp’s serial capabilities, but as you note those things are handled infrequently and in real-time so I didn’t feel it necessary to clutter the SmartThings app with them. You can access those settings over the API, though, so they can be added to the device handler or any other client of this software.

1 Like

@tcjennings one follow up dumb question - is there any way to copy that while logged in as the default pi user? I’m getting permission errors trying to do anything in /etc/systemd/system, and i assume i need to sudo my way in, but I’m not a command line guy when it comes to moving files around - any chance you have a thought on how to move this to a directory I might have access to (like my home directory) and how you would then move it to that folder using sudo?