PSeitz / yamaha-nodejs

A node module to control your yamaha receiver
MIT License
123 stars 32 forks source link

How to figure out the RC-Codes? #15

Closed ZaubererMD closed 7 years ago

ZaubererMD commented 7 years ago

In the simpleCommands.js there is a function sendRCode which in theory allows me to send codes to the receiver which are then processed as if the corresponding button on the remote was pressed. There are various formats presented in the comments and I already figured out which one is the right for my receiver. But how do I figure out the codes now? I tried 7C80 (which is presented as an example in the comments to simulate the power button) but the receiver responded with an error. I then tested 5EA1CE30 which is what I recorded with lirc a while ago for the button HDMI6 (still have all the codes for lirc in a file) and the receiver no longer responded with an error, but it also didn't do nothing at all. The response looked ok though (RC="0"). So the format lirc is using seems to be correct, but still those codes are not 100% correct.

This is the command I send to the receiver as a test which should simulate a press of the HDMI6 button: <YAMAHA_AV cmd="PUT"><System><Misc><Remote_Signal><Receive><Code>5EA1CE30</Code></Receive></Remote_Signal></Misc></System></YAMAHA_AV>

The response is: <YAMAHA_AV rsp="PUT" RC="0"><System><Misc><Remote_Signal><Receive></Receive></Remote_Signal></Misc></System></YAMAHA_AV>

I already searched google for a reference sheet for my receiver since the "RX AX10 VX71 Series Function Tree.xls" explicitly states that these codes are provided seperately from that file.

There are some header infos in the lirc remote file, maybe I need to add some of this as well? I attached the lirc remote file so you can have a look at it: Yamaha.txt

Edit: The Receiver is a Yamaha RX-V477

PSeitz commented 7 years ago

Hi,

I never used this method, it's from a pull request. Maybe @soef can help you?

It looks like there is a zone parameter missing in the method. In general I would use the specific methods, e.g. like setMainInputTo("HDMI6")

ZaubererMD commented 7 years ago

I want to use this to control devices like the FireTV Stick which are connected via HDMI. In general these devices receive button presses like up, down, left right etc. from the receivers remote because the receivers sends them to the device via hdmi cable. This would allow me to control a wide range of devices over network which do not have a network interface themselves (the FireTV Stick has one, but e.g. my BluRay Player does not).

Edit: This command apparently does not require a zone parameter since it just performs the same action as it would if the button on the remote was pressed. So this is not linked to any zone.

PSeitz commented 7 years ago

Ah okay, do you know if the yamaha receiver forwards requests from the webinterface to hdmi cec at all?

ZaubererMD commented 7 years ago

No, but right now I am trying to just execute commands on the receiver itself and it is not working. If I get that working I could try to issue commands that should be sent via HDMI CEC and see if it works.

soef commented 7 years ago

Hello, I think that command doesn't work with a yamaha receiver. In the past I also tryed many thinks without success. I think that command only work with a yamaha blueray player.

But, have a look at this product: Broadlink RM Mini3. There are a lot of source code modules to use this RC-Sender in your home automation.

PSeitz commented 7 years ago

@soef so it should be safe to remove the method?

I use the harmony hub to control ir devices like my tv, but the interface allows only starting and stoping activities. Although the company promises it will extend the api .... since 2 years now

ZaubererMD commented 7 years ago

All IR related things can also be done with the pi via an IR LED and lirc. I had that working like a year ago but it requires the RPi to have a clear line of sight to the devices you want to control and quality of the IR LEDs can vary. I guess I'm gonna set this up again if that's the only way. Thanks anyway!