I started playing yesterday with the new Yamaha BD-A1010 Blu-ray player. I want to control it via IP, although it has a back-panel IR input and an RS-232 port.
It took a few hours, and I was surprised to learn how robust a protocol this device uses.
Yamaha supports YNC and YNCA - Yamaha Network Control and YNCAlias. The Alias command set is very easy to use: short, straight-forward commands that are sent to a device to control power, input, volume, mute, and many other essential functions like surround mode, sleep, zone control, etc.
YNC is XML based and the documentation is suited to complex control systems, with lots of feedback for metadata, volume level, input and power status, etc.
It appears, though, that via IP the BD-A1010 supports only YNC. I'm not interested in controlling it via RS-232 since is has an input jack for IR control; it does have a published RS-232 command set that is the same as the BD-A1000.
At first I thought I could just send the XML strings to my device, and although they were long in themselves (~140 characters to turn power on/off or open the tray), I learned that the XML strings are just the data load to a full-fledged HTTP POST command. So, another 100 or so characters in front later, I have some command strings that work.
Of course, that's just a start too, because you need all the overhead of IP packet headers before you get to the HTTP that then delivers the XML. I have extensive IT experience, but I'm not a web developer, so it's still a challenge. It is perfectly clear now why RTI has no module for this device that was just released last month. Not sure they ever will, either.
What they do have (well, kind of) is a socket driver which I am about to test with.
Developing the HTTP and XML strings would not have been possible without the following tools:[Link: hw-group.com]
[thanks, Jim Stolz!]http://www.wireshark.org/
[thanks, Scott Edge!]
Of course, I had to spend a lot of time reading Yamaha's YNC excel spreadsheets from the Yamaha PAB. You have to turn on macro support in their function tree spreadsheet to use the 'Ether' button - that puts the XML string into the clipboard once you highlight the fields (use CTL) to indicate the command you're looking for. Also of great use are the 'PUT' and 'GET' text files - they list many pre-built XML strings.
I used WireShark to observe the interaction between my web control of an RX-A3010 to confirm that the HTTP POST structure precedes the XML command. Once I saw that, the Yamaha excel doc became clearer. I then used notepad to assemble the HTTP POST + XML structure, and tested them with Hercules.
Next step: generate some commands in RTI using their RTI forum-only (privileged membership: you have to be approved, uggh!) unsupported socket driver.
Maybe in a few years this will get easier, but in case anyone was wondering, you CAN control the BD-A1010 through IP. I've powered it up and down and opened and closed the tray.
Luckily, RTI has two-way IP drivers for the RX-An010 AVR models, but it's a far cry from what I expected. Sure, you can issue commands and get variables into text boxes, but they only have 'page wizards' for the K4; nothing at all in pages for the T2-C+, which is what I'm working with. No translation in Integration Designer from K4 to anything else, unless it's another K4. Did get some iPod metadata into a panel on the T2-C+, but it's tedious even with their driver at my disposal. Will check that forum for more templates for the T2-C+, but I'll be shocked if I find anything for the BD-A1010.
If I get something working with the RTI socket driver to the BD-A1010, I'll try to post it.
Good luck to all messing with this stuff.