[RELEASE] Yamaha Network Receiver Basic Integration [DEPRECATED]

Simple SmartApp and Device Type to provide integration for a Yamaha Network Receiver with the following features… and now with MusicCast support!

  • Zone Status (on/off)
  • Zone Source
  • Zone Source Control
  • Zone Volume Control
  • NOTE: volume control will mimic the volume levels of the Yamaha receiver using a range of -80…16; if you want to use a range of 1…100, you will need to swap 3 lines in the device type code
  • Zone Mute (on/off)
  • Zone Party Mode (on/off)

** Update 03/12/2021 **

  • The short story is that this integration is NO LONGER BEING MAINTAINED; please feel free to clone the repo and carry it forward!
  • The long story is that ever since ST rolled out the new app and basically broke support for tons of integrations (including this one), I waited, waited and tried many times to find a good enough solution for all of us to enjoy. Unfortunately that never came and I decided earlier this year to explore other home automation options… and I found one that fits the bill perfectly… Home Assistant. The system is stable, flexible and growing in the way all of us had hoped ST would. The great news about Home Assistant is that there are tons of integrations available, including support for this one: Yamaha Network Receivers - Home Assistant. For those of you who are worried about your Z-Wave/Zigbee devices, what I have done is continue to use the ST Hub as the Z-Wave/Zigbee bridge and use the Home Assistant - SmartThings integration to control everything. I can’t tell you how happy I have been with the Home Assistant platform, capabilities, community, everything… it’s pretty amazing. If you’re like me and frustrated with the current status of ST, give it a look… you won’t be disappointed. It’s been a lot of fun!

Update 04/09/2017


  1. Create a new SmartApp and use the code from: smartthings/yamaha-receiver.groovy at master · redloro/smartthings · GitHub
  • Create a new Device Handler and use the code from: smartthings/yamaha-zone.groovy at master · redloro/smartthings · GitHub
  • Zone Sources and Source Naming: if you want to change the number of sources or names for the sources on the tiles, search and replace Source 1, Source 2, Source 3, Source 4, Source 5, or Source 6 with the desired name (there should be 2 replacements for each input source).
  • Add the Yamaha Network Receiver SmartApp from the SmartThings marketplace
  • Configure the SmartApp
  • SmartThings Hub: REQUIRED
  • Yamaha Receiver Name: REQUIRED unique name for your Yamaha Network Receiver (UPDATE 02/25/17: added support for multiple receivers)
  • Yamaha Receiver IP: REQUIRED to connect to the Yamaha Network Receiver
  • Yamaha Receiver Zones: REQUIRED zones that your Yamaha Network Receiver is capable of supporting (UPDATE 11/28/16: added support for Zone_B)
  • Install will setup the SmartApp and create Devices for each zone
  • Configure your Devices/Zones
  • Open the Yamaha: Zone Device
  • Tap the gear icon in the top right to edit the device
  • Customize the Zone Sources to configure available Input Sources; supported sources are device specific but generally include the following:
  • Done!

Oh Snap. I will have to give this a go with my Yamaha.

Working well here on two yamaha receivers. Thankd

This works for me. How hard would it be to add in functionality to change the source?

Shouldn’t be hard… what were you thinking, something that would cycle through all inputs or just buttons that let you select a source??

I think buttons to select the source would be more appropriate. Do you have documentation to the API? I couldn’t find it to save my life.

Bunch of stuff online from past projects: Google

Here’s a good one: g33k's blog: Yamaha Network Control

Updated the Yamaha Zone Device Type to include source control… check it out and let me know if you have any questions. If you’ve already configured the Yamaha SmartApp, you will need to load the new Device Type, delete and then reinstall the SmartApp.

1 Like

This is awesome, thank you.

I’d like to change the source labels and, if possible, set up some different ones. Can you point me in the direction to solve the latter? For example, I would like to be able to select sources ‘Audio 1’ and ‘Audio 2’ on my Yamaha.


Yup… updated the installation steps above…

1 Like

Thank you!

In the market for a new receiver, definitely interested in getting one with ST control. Am i looking for a specific models or the year it was produced. Or any yamaha receiver with net connection?

Thanks for any info.

Okay, please bear with me. This is the first time I’ve tried to modify code.

I actually changed the source names in the tiles section of the handler to the names as I have them defined in my receiver (eg. ‘Blu-ray’ for HDMI1 …).

standardTile(“0”, “device.source0”, decoration: “flat”, width: 2, height: 2) {
state(“off”, label:“Blu-ray”, action:“source0”, icon:“https://raw.githubusercontent.com/redloro/smartthings/master/images/indicator-dot-gray.png”, backgroundColor:"#ffffff")
state(“on”, label:“Blu-ray”, action:“source0”, icon:“https://raw.githubusercontent.com/redloro/smartthings/master/images/indicator-dot-green.png”, backgroundColor:"#ffffff")

So that’s the first and second occurrences of the source in the code and this way the tiles show the names as I know them. Then for the third occurrence I put the actual source name …

def installed() {
state.sources = [‘HDMI1’, ‘HDMI2’, ‘HDMI3’, ‘HDMI4’, ‘AUDIO1’, ‘AUDI02’]

But, when I hit the “Blu-ray” tile it’s still switching to AV1. AV1 is not even listed in my version of the code.

I did try to remove and re-add the SmartApp but I get an unexpected error on the remove.

This plugin should work with any Yamaha receiver that has a network connection. The Yamaha network protocol doc has a list of the supported receivers but it’s basically those that have a net connection.

Just FYI… I’m personally running this against a 5 year old and brand new receiver with zero issues.


Best would be to do this:

  1. Revert back to previous version of device type
  2. Uninstall SmartApp…by launching SmartApp on phone, scrolling down and tapping uninstall
  3. Update device type code to the latest provided including your changes
  4. Install/setup SmartApp on phone

Let me know how that goes

That did it. I’m not sure I needed to revert the DH first. Initially I could not delete the SmartApp. It was giving me an unexpected error. I tried to delete the Receiver ‘Thing’ and it reminded me I had hooked it to several other SmartApps. Once I removed the Thing from those apps I was able remove your app and start over. All good now.

Really appreciate your help.

Now I’d like to find out how to only show valid sources for my Zone 2. Presently the same tiles show regardless of Zone. But it’s still great. I can now turn the receiver on and off with Alexa.

Ok - just updated the device type and moved the source definitions to the device preferences section. You should now be able to set unique sources per zone… but the number of sources is fixed between zones… ie. if you want to show 6 sources, then 6 sources will show for each zone. Also the actual tile labels will be the same across zones, even though they can control different sources. If I get some time, may look into fixing this, but that’s how it works for now.

Wow, thanks for that. I wasn’t expecting an update.

Have a great day.

This is awesome, but struggling to get it to work with the second zone. I have a TSR5790 and I suspect it has something to do with the fact it is referred to as “Zone B” Any ideas?