[Release] Yamaha Network Receivers Basic Integration

Thanks Codahq for your kind reply and for the suggestion. I will work and update you soon.

Thanks again

Is there a way to save a scene with a predetermined input? In other words, if I want the tuner to come on, I would like to capture a scene with that input enabled and the volume preset. I have created scenes with the driver but the input doesn't seem to capture or have an option to. Hope this is possible because it would sure be nice to change inputs with voice commands. "Alexa, turn on Roku" would be super slick if I was on the couch watching cable. Or am I going about this all wrong?

Hubitat doesn't have an OOB attribute for input yet.

https://docs.hubitat.com/index.php?title=Driver_Capability_List

Even if they did their scene may not capture it. What I do instead is create a virtual switch and then trigger a rule to run from that.

For example:

Then my rule looks like this:

In words, when the virtual switch turns on the main zone on the Theater Yamaha turns on (along with the projector). After 2 seconds the source is switched to source1. You can configure the sources in the driver. There are six commands for sources. Once those are configured you can use Rule Machine's custom action to call any custom command on a driver.

I think that might be the best way to do it for now.

2 Likes

Will give it a try! Thank you!

In need of some guidance regarding Rule Machine 4 and setting up inputs via a virtual switch. I kind of understand what @codahq is saying above, but was hoping someone has done this in version 4 and can walk me through it.

I have created a virtual switch called Movie Box. I have an android tv device and want to be able to have Alexa switch to that input on the Yamaha.

Set up a new rule called "Switch Yamaha to Movie Box"

Set trigger to Switches and assigned it to the virtual switch "Movie Box" and Switch Turns to "on". At this point, I believe I am done with triggers?

So next, RM4 wants to know what action to run. And I have no idea which action to select. So this is where I feel stupid.... I have no idea what to do next.

Under selecting actions for your rule you should see this list:

image

Choose "Set Mode or Variables, Run Custom Action"

Then it narrows the choice down to 3 choices (4 if you count the one you can't choose).


Choose "Run Custom Action"

For the capability of the device choose any of the capabilities that the driver supports. I usually support actuator because most devices support it and it's generic and it's easier than finding anything else.

Once you choose actuator you should be able to see the yamaha devices. Pick one and then the custom commands show up. Pick one of the source commands.

Works perfect! Thank you very much. Seems so simple now. I did have to add an action to turn the switch off after 10 seconds. (I now see I can do that in the virtual switch device too). It wasn't working initially and then I figured out the switch had to start from the off position.

Alexa.... turn on Movie Box. Works great. Thank you very much. Now on to the Tuner, Cable Box, etc... rinse and repeat...

Please note you can use the same rule and virtual switch like a scene for multiple actions. In my rule I control the receiver and projector.

Gnant: could you please share the setup? I would like to see as example. Thanks

[quote="titoinus, post:50, topic:9409"]
Do you mind to post screen shot as example? When I chose volumeup, what parameter do I need to type?

Volume up and volume down don't have parameters. Set volume and set level take int parameters from 0 to 100. If you go to the device you can see buttons for these commands. If you hover the mouse there is information about the parameters.

Thank you. I created two custom command for volume up and another custom command for volume down.

Now, I do not know what to do next and how to create a button controller using the same app. Any document to follow?

I created two custom command for volume up and another custom command for volume down.

Now, I do not know what to do next and how to create a button controller using the same app. Any document to follow? Can someone help me?

What are you trying to do? Give a bigger picture. You haven't explained anything yet really.

Hello to all:

I have been trying to utilize volume up and down for Yamaha Receiver A780. So, based on the Codahq’s post on the March 17, 2019, instead of creating virtual button, I was trying to create custom command for volume up and down, so that I can use with Alexa. But after following the first paragraph of his post, I am lost. I like to know what to do next. Bottom line is, I would like to turn volume up and down with Alexa for this Yamaha Receiver A780. I have installed the Yamaha driver developed by Codahq, that works fine but not for volume up and down.

How are you trying to utilize volume up and down? From a dashboard? In an automated way? Or you just want to control volume? If you just want to control volume you can go to the device and use the buttons on the device edit page.

That user was specifically trying to use button controller (because I'm assuming they had a button remote). That's why they used button controller.

What are you trying to do?

If you have a button remote then button controller is probably the right direction. However, button controller is completely different in version 1.6 compared to 3.0. Today the instructions would be different.

  • Install the button controller app.
  • Click the "Button Controllers" parent app
  • Click the "Create New Button Controller 3.0"
  • Give it a name
  • Choose a button controller device (choose the remote)
  • You can prefill or click "Add a button action" to do it manually.
  • Choose the action you want to use for volume. I'll choose single tap (pushed) button 1 in my example.
  • Click the button it created (the highlighted section above)
    image
  • Select "Run Custom Action or Custom Command, Polling" from the action type drop down.
  • Choose "Run Custom Action"
    image
  • For the capability choose actuator. This means that basically you want a device that is an actuator. When I created the device handler I made it so the receivers were actuators. Almost all devices that perform operations are actuators.
  • Select the actuator to perform the action on (choose the zone device you want to change volume on)
  • Select the custom command (volume up, volume down, setVolume)
  • If you choose volume up or down you don't have to pass a parameter. If you choose setVolume you have to pass a parameter (integer) between 0 and 100 (just like the device edit screen
    Then click "Done with the action" and keep clicking done until you are out of the button controller app. Test.

This process is outlined in the Hubitat documentation and I would guess numerous times here in the forum. If you have a question about built-in Hubitat apps in the future they are probably going to get fielded quicker in threads of their own in the support section of this forum.

Thank you for detailed instruction. I am planning to use Alexa to control the volume up and down. I am currently able to turn ON and OFF the receiver through Alexa, not the volume. This is the only wish list for me. Thanks

That's exactly why I wanted you to tell me what you were trying to do. Alexa doesn't and can't use button controllers to do anything. I didn't need to detail the button controller functionality.

The Alexa integration is something I don't use. I don't know how it works. If it is anything like the Google integration then Alexa should detect that the zone (not the receiver) supports setLevel. You should be able to say "Alexa, set the [device name] to [x] percent.

Hubitat has not implemented and Google/Alexa don't support multimedia type devices in the integration yet. For that reason you have to treat the receiver sort of like a dimmable bulb. The dimness of the bulb is the volume. That's why I wrote the driver to support setLevel and setVolume. The setLevel part was for the Google (and probably Alexa) integration.

Try the command and see if it works. If it doesn't then the Alexa integration is different than the Google integration. If it doesn't work then you'll have to figure out how to get Alexa and IFTTT together. Then you can make URL calls to Hubitat to volume up and volume down. I'm not explaining that here because I know I've seen it explained in other threads.

Thank you very much for the information. That's enough to carry out the project. Once done, I will post the result.

Thanks for taking the time to build this; it's working beautifully for me to:

  • Trigger my Yamaha Receiver to turn on, switch inputs and even set a specific Db when my Sonos Connect starts playing
  • Turn the receiver off when the Connect pauses or stops
  • Turn the receiver off when the Mode switches to Away

Thanks again!

1 Like