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.

You don’t need to know much Ruby to use the gem. It ships with a binary (onkyo.rb) that will allow you to run commands without writing any code.

Install the gem

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'

Find a receiver on the network

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

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'

Connect and control

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'

Where to find more info

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!