Last weekend I received my new receiver (hah, I’m a word artist!), it is an Onkyo TX-NR414. Here’s a picture of it in all its glory:
While this is not Onkyo’s top model, this model fits my needs perfectly. The ethernet interface with reasonably documented (propriety) protocol known as eISCP (ethernet Integra Serial Communication Protocol) is a big plus. I won’t bore you with all the other details about this unit, you can check them out here.
So after one day of random playing with this unit, I wanted to test the eISCP interface. After roughly one hour of coding, I was able to do the following:
- Switch the unit on and off (standby mode), in order to get power on to work I had to set the “network standby” option. More about this option later in this blog post.
- Change the input on the unit
- Change the master volume
So what does the protocol actually look like? Here is an block overview:
The first diagram is communication from the controller (in my case a Python script) to the device, and the other diagram displays the communication back from the unit to the controller. Yes, this is a truly two way protocol and it’s done damn right! I am amazed by the amount of status information being send back to my controller. Here’s a snippet of the status messages:
As you can see, everything displayed on the LCD display, is also send over the wire. For example the time remaining on a track. Here is the (uncleaned) test code I wrote:
Of course this code is based on my favored asynchronous network engine Twisted.
Standby power usage
I was a bit worried about this blog post Robert Hekkers wrote. Having the same amount of standby power usage would be a disaster for me, because my unit does not have a serial port to work around this issue. Luckily, Onkyo seem to have learned from the past. Here is a measurement of my unit in standby (done using the Greenwave PowerNode 🙂 ):
That’s 3 watts, acceptable power usage if you ask me. At least if you compare it to Robert’s 38(!!!) watts. Looks like Robert’s weblog has more impact than he might think 😉
Having done the basic testing, its now time to turn this test code in to an actual working HouseAgent plugin! This is really starting to get a routine for me. Buy a device, figure out its protocol and building a plugin.