The Integra Serial Control Protocol (ISCP) is capable of controlling a wide range of Integra and Onkyo stereo receivers. It can be used via serial cable or over an IPv4 network.

We can use the onkyo_eiscp_ruby gem to easily control Onkyo and Integra receivers over the network. The library doesn’t support serial, but your model likely supports IPv4 over ethernet.

Let’s start by installing the gem:

gem install onkyo_eiscp_ruby

I recommend loading the library in irb or pry (I use pry) so we can interact with the receiver:

gem install pry
pry

We of course have to load our gem, you can do it with this:

require 'eiscp'

Now we’ll use the gem to discover the receiver on our network and create a Receiver object for us to manupulate:

rec = EISCP::Receiver.new

If you have more than one Receiver on your network, you can pass a hostname to the constructor:

rec = EISCP::Receiver.new '10.0.0.123'

Now that we have our Receiver object, let’s connect and send a command to get the power status of the receiver:

rec.connect
rec.system_power 'query'

Let’s put the receiver on standby:

rec.system_power 'standby'

# or turn it back on
rec.system_power 'on'

You can see all commands and their accepted values for your model by using the included command-line utility onkyo.rb. If you have more than one receiver on your broadcast domain, you’ll get the commands compatible with whichever receiver responds first.

# The list is long, pipe it to `less`
onkyo.rb --list | less

Check out the eiscp gem on github and submit a PR!