Help get this topic noticed by sharing it on Twitter, Facebook, or email.

iRule and Yamaha Receiver

I've been at this for several days. It looks like tons of people have had issues with Yamaha Receivers being controlled either over IP or by RS232. I sent an email to iRule to ask for help, but thought I'd post here as well.

Problem - Can't control my Yamaha RX-V3900 over IP

First Question - Network or HTTP gateway?

Based on my searches some of the receivers have used network and others have used HTTP. I've been able to connect and show a green status using both.

Network Details I used:
IP address - 192.168.20.xx
Port: 80
TCP

HTTP Details I used:
IP address - 192.168.20.xx
Port: 80
POST

When using network I can get green status and green comms arrows.
When using HTTP I can get green status but red comms arrows. However, the power button will work when using HTTP but not Network. Which makes me think HTTP is correct.

Second Question - Which are the correct IP commands?

I'm currently using "Yamaha AVR HTTP Control - Zone 1" from the iRule device list. This seemed to the one ppl had the best success with, but not me. I have went so far as to run a header program, monitoring the traffic between my web based receiver application and computer.

The device list has this as a volume up command:

YamahaRemoteControl/ctrl?Up

The header shows this:

< YAMAHA_AV cmd="PUT">< Main_Zone>< Vol>< Lvl>< Val>-320< /Val>< Exp>1< /Exp>< Unit>dB< /Unit>< /Lvl>< /Vol>< /Main_Zone>< /YAMAHA_AV>

which is correct or how does translate?

And Finally, I know a lot of folks have trouble with the Entrance commands to make sure the system stays connected. There are no KEEP ALIVE commands in the iRule device list that is recommend. Should I be using the GET commands instead?

Thanks in advance
1 person has
this problem
+1
Reply
  • 1
    First Question - Network or HTTP gateway?

    HTTP POST method works for me, i installed RXV479.

    Second Question - Which are the correct IP commands?
    YamahaRemoteControl/ctrl?Up works for me
    i created my own command too
    YamahaRemoteControl/ctrl?-2001dB (VOLUME SET -20dB)
    works as well.

    i hope this helps
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly sad, anxious, confused, frustrated indifferent, undecided, unconcerned

  • 1
    Have you adjusted the MAC Filter in Advanced Settings? You need to turn it off or register your MAC address, according to the manual.

    I saw a reference in the User Manual to RS-232 control, but nothing about IP control. You may want to contact Yamaha directly and verify that IP control is possible for your model.

    It would be very helpful if you can get protocol documentation from Yamaha. Then you can check the commands in the iRule Devices, and confirm that the Device you have has the correct commands for your model. You could also create your own Device with your own commands in it. It's more work, but it can be done. Also, if some commands are missing, you can add them in to existing Devices. I have added numerous commands to my Marantz.

    If you wind up going RS-232, you will need a Global Cache iTach IP2SL, or an iTach Flex with a Serial Cable. There are some parameters to set up, but RS-232 control is usually rock steady, and can also provide feedback to iRule.

    Good Luck!

    Mike
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly sad, anxious, confused, frustrated indifferent, undecided, unconcerned

  • Mike/HJ

    Thank you guys for your responses. I also received an email response from one of the support guys at iRule that helped validate some of my thoughts and helped me find the IP control documents.

    Short story - I have the four primary commands working now (power on/off, vol up/down). Big win after staying up all night.

    Here's what I now know. The Yamaha RX-V3900 and Z-7 are different than all other receivers during that generation and follow completely different IP/RS232 commands. So this is why the "AVR HTTP" devices in iRule will not work. The exception here was the power on/off commands which to work across all types of receivers it appears. I've shared my device in progress on the community so others can benefit. It's called "Yamaha RX-V3900 HTTP Control"

    Mike I followed your advice and was finally able to find the Yamaha protocol documentation. But that was only after understanding what to search for - Yamaha calls them their "Ethernet Spec" and "Function Tree". In total there are four excel spreadsheets that cover both IP and RS232. Many many dead links but I finally found them.

    Couple of key things for others future problem solving:

    Connection Type
    The RX-V3900 (and probably Z7) will always show positive connections to both HTTP and Network Gateways, but ONLY HTTP is the correct one for sending commands. Thanks HJ!

    Gateway: HTTP
    Port: 80
    Method: POST
    WOL: OFF

    Keep Alive?
    Unlike many of the other yamaha receiver's the RX-V3900 does NOT need a KEEP ALIVE command setup on an entrance repeat. The receiver is equipped with a "MediaRenderer" that actively communicates with whatever is connected to it.

    Receiver Settings
    Mike you're correct you do need to set the receiver to accept commands. There are two settings.
    1. Turn OFF the Mac Address setting
    2. Turn ON the network standby setting

    Example Commands

    Here are the four commands I have so far that work with the RX-V3900 and according to the documentation should work with the Z7.

    Power On
    YamahaRemoteControl/ctrl?<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV>

    Power Off
    YamahaRemoteControl/ctrl?<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>Standby</Power></Power_Control></Main_Zone></YAMAHA_AV>

    Volume Up
    YamahaRemoteControl/ctrl?<YAMAHA_AV cmd="PUT"> <Main_Zone><Vol><Up_Down>Up</Up_Down></Vol> </Main_Zone> </YAMAHA_AV>

    Volume Down
    YamahaRemoteControl/ctrl?<YAMAHA_AV cmd="PUT"> <Main_Zone><Vol><Up_Down>Down</Up_Down></Vol> </Main_Zone> </YAMAHA_AV>

    I still have a long ways to go but it's a start. I'll keep updating the new device as I validate commands. Next major step is pulling information from the receiver for status updates.

    Thanks again!
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. indifferent, undecided, unconcerned sad, anxious, confused, frustrated kidding, amused, unsure, silly happy, confident, thankful, excited

  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly sad, anxious, confused, frustrated indifferent, undecided, unconcerned

  • Hi Preston,

    I also found the correct Yamaha Documentation last night. Somehow you are supposed to use the Function Tree to "build" any command. I played with this for a while last night, but couldn't get it to work. One of the documents had instructions on how to use the tree, but I had difficulty following them. I got to the point where the Tree wants to open a text file, but couldn't get any further. You may be able to pick data out of the Function Tree and edit the 4 commands you have to make more.

    I know from the documentation that feedback will be a GET command, not a PUT.

    If you go to this site, there is a link to download a zipped file of the Yamaha documentation. I found it pretty hard to follow. It would have been much easier if Yamaha just included a list of commands, and not the frickin' Function Tree.

    http://www.promixis.com/forums/showth...

    The commands use xml, which is similar to html. For each beginning, there will be a ending. They are like sections. In the documentation you will see the commands spread over several lines. This is for legibility for humans, Like your 4 commands, html/xml can be written all in one long line.

    If I make any more headway, I'll let you know.

    Mike
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. indifferent, undecided, unconcerned sad, anxious, confused, frustrated kidding, amused, unsure, silly happy, confident, thankful, excited

  • I have created a command for you to test:

    YamahaRemoteControl/ctrl?<YAMAHA_AV cmd="PUT"><Main_Zone><Input><Input_Sel>CBL/SAT</Input_Sel></Input></Main_Zone></YAMAHA_AV>

    I took 'YamahaRemoteControl/ctrl?' from your commands, cut off the first line of the Tree output, made it all one line, and pasted it after the first part. It looks quite similar to your commands, so maybe it is good. If you copy the command, delete the and parts in the front and back, those are for formatting in iRule.

    Mike
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly sad, anxious, confused, frustrated indifferent, undecided, unconcerned

  • Here is another command to test:

    YamahaRemoteControl/ctrl?<YAMAHA_AV cmd="PUT"><Main_Zone><Input><Input_Sel>DVR</Input_Sel></Input></Main_Zone></YAMAHA_AV>

    Mike
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly sad, anxious, confused, frustrated indifferent, undecided, unconcerned

  • 1
    This is how to do your own commands. Click pics to enlarge and Back to return.


    1. Open the Tree Functions.

    2. Click a lot of the Minus Signs on the left to reduce the clutter.

    3. Click the 'Put' button.

    4. Click the Lowest Level Reference Node above the Value. In this example, it is cell D693, INPUT_SEL.

    5. Hold down CTRL and click the Value, cell T702, 'BD/HD DVD'.

    6. Release CTRL.

    7. Press 'Ether' button.

    8. Press 'Packet' button.




    Find and open the file that was created. It will start with PUT_ETHER and have the Nodes to get to the Value. Note that BD/HD DVD is in the command.


    Copy the first part of the command into the file.


    Copy everything original to the file except the first line. Paste it after the first part of the command.


    Remove the extra spaces and line feeds from the command. Here is the new command.


    Hope this works for you. Let me know how it goes.

    Mike
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. indifferent, undecided, unconcerned sad, anxious, confused, frustrated kidding, amused, unsure, silly happy, confident, thankful, excited

  • Mike,

    Dude. You're Awesome. The function tree thing was incredibly confusing at first. As I'm sure you saw as well, the document is written by non native English speakers and/or translated from Japanese. I brute forced my way through making a few commands but your instruction list above is incredible and filled in a few of the gaps I had working on commands. Thanks so much!

    It isn't a problem, but more of a curiosity of how the iRule software functions. The iRule software does something funny when you put in the commands. One way the commands will work, the other way they will not. The correct way seems to be to select the "gear icon" on the data box and input the command, but to NOT hit enter. If I hit enter, the software truncates the command - I assume trying to interpret the IP string - and the command will not work.

    This is what the data window should look like:


    If I hit enter, this happens:


    The real command never comes back and you're stuck with the "interpreted" version which will not function the receiver.

    I have not yet found a way to prevent this other that simpling being super careful and never touching the device command sub menus once they work properly.

    Thanks a ton. I'll be working on GET commands soon - I'm curious what all I will be able to do. Based on the function tree I might be able to do some neat things.

    Thanks!
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. indifferent, undecided, unconcerned sad, anxious, confused, frustrated kidding, amused, unsure, silly happy, confident, thankful, excited

  • Preston,

    You are very close! The 2nd picture in your post is almost what you want. Don't click the gear icon, it is for variables, and is not what you want.

    In the last picture in my last post, the command is the ENTIRE line that is circled. Enter all of it into the Data property. Don't worry that it is too big to see all of it. You can drag the left column real wide if you want to see all of it. If the command has red squiggles under it, press the Enter key.

    That's it! Drag the command from the list in the right window, drop it on a button, and test it! If the command doesn't work, check the data property very carefully for typos.

    Mike
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly sad, anxious, confused, frustrated indifferent, undecided, unconcerned

  • Mike,

    This did work for me. Now I'm working on feedbacks. Not quite as straight forward but I'll get there.

    Thanks again!
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly sad, anxious, confused, frustrated indifferent, undecided, unconcerned

  • The way Yamaha does its feedbacks, you can set the prefix to <abc> and the suffix to </abc>, and you should get exactly what you want. In the value level, put * as the target, and you can replace what the Yamaha sends with whatever you want.

    Starts With and Ends With apply to every feedback from the Device. Be sure to "connect" the Feedback to the Device, or nothing will work!

    Most receivers send feedback automatically when the receive a command, so you normally don't have to poll for feedbacks, unless you have more than one remote or some other system that also controls things. You do polling by putting queries in a repeating Entrance. If you poll too fast, you can bog the system down. Start with 2 or 3 seconds and play with it.

    You will probably want to create Entrances and query for feedbacks when you load a page. This will show the correct values before any buttons are pushed.

    I like to make the feedbacks visible on the page initially, so I know they are working. I also like to put labels on the page to display $variable$ values. It helps with design and debugging. You can delete them or move them out of visible range once things are working.

    Once your feedbacks are working, you can use them to control your button appearance, like green when power is on and red when it is off.

    Goog Luck!

    Mike
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. indifferent, undecided, unconcerned sad, anxious, confused, frustrated kidding, amused, unsure, silly happy, confident, thankful, excited