Skip to main content

Onkyo / Integra / Pioneer Receiver

Onkyo, Integra, and late-model Pioneer AV receivers are controlled over eISCP — Onkyo's network control protocol, in which each short ISCP text command (for example !1PWR01) is wrapped in a 16-byte binary header and sent over TCP, by default on port 60128. This driver talks to the receiver's main zone.

A receiver added with this driver does two things the moment it connects: it reads the receiver's live state (power, volume, input, and mute) every few seconds, and it lets you set the master volume. Power on/off, mute on/off, and input selection are not shipped as ready-made commands — the protocol codes for them are standard and well known, and you add them as a few command rows in a couple of minutes. That section is below, with the exact codes to paste in.

Onkyo, Integra, or Pioneer?

All three families that use eISCP share the same wire protocol, so this one driver covers them. The display name in the device list is Onkyo / Integra / Pioneer Receiver. Some Pioneer Elite models advertise eISCP but reject input (SLI) codes that work on the Onkyo siblings — if input switching misbehaves on a Pioneer, confirm the codes against that model's service manual.

What's controlled

Out of the box, with no extra setup:

  • Live status polling every 5 seconds — power state, master volume, selected input, and mute state are read back from the receiver and reflected in GEM.
  • Master volume — set an absolute level; GEM converts it to the hex value eISCP expects.

After you add the command rows described under Adding power, mute, and input commands below:

  • Power on / off (standby)
  • Mute on / off (and a mute toggle)
  • Input selection by eISCP input code

This driver covers the main zone only. Zone 2 / Zone 3 control is not exposed.

Prerequisites

  • The receiver must be on the same LAN as GEM (wired Ethernet or Wi-Fi) and reachable.
  • Network Standby must be enabled on the receiver. Without it, the unit closes its eISCP socket the instant it powers off, so GEM loses control after the first power-down. Enable it at Setup → Hardware → Power Management → Network Standby.
  • Only one eISCP client at a time. The receiver accepts a single network-control session; the Onkyo Controller mobile app (or any other controller) will steal the connection from GEM. Close those apps once GEM is the controller.

Setup

  1. Give the receiver a static IP or a DHCP reservation so its address never moves.
  2. On the receiver, enable Network Standby (Setup → Hardware → Power Management → Network Standby).
  3. In GEM, open Devices, add a device, and choose the Onkyo / Integra / Pioneer Receiver driver.
  4. Set Receiver IP. eISCP Port defaults to 60128 — leave it unless the unit was re-mapped.
  5. Save. On connect, GEM begins polling power, volume, input, and mute every 5 seconds and reflects them on the device.

The Status Poll Interval (ms) field (default 5000) is on the device's advanced settings if you need to slow the polling down.

This driver does not create a control zone of its own — it is a single, main-zone device. To get a room-level volume slider, link it to an AV zone, as below.

Adding power, mute, and input commands

The driver ships the volume setter and the four status queries. The power, mute, and input setters are not pre-loaded, but eISCP makes them trivial to add. Open Commands, select the command set GEM created for this receiver (it is named after the driver), and add each row below — type the Name exactly as shown, paste the Template, and for set_input add an argument named input.

NameTemplateArgsWhat it does
power_on!1PWR01Power the main zone on.
power_off!1PWR00Put the main zone in standby.
mute_on!1AMT01Mute audio.
mute_off!1AMT00Unmute.
mute_toggle!1AMTTGNative eISCP mute toggle (optional — see note).
set_input!1SLI[input]inputSelect an input by code (see the Input codes table below).

You type the ISCP body only (the !1... text). GEM wraps it in the eISCP binary header and appends the carriage return automatically — the same way the built-in volume command works.

Mute toggle two ways

A room mute button works without the mute_toggle row: when an AV zone's mute is toggled and the receiver has mute_on and mute_off, GEM flips mute using the last-known mute state it polled. Adding the native !1AMTTG row is optional and lets the receiver do the flip itself.

Linking to an AV zone

The receiver feeds volume and mute to an AV zone rather than appearing as its own controllable zone:

  1. Open AV Zones and edit (or create) the zone for the room the receiver serves.
  2. Set the Volume Device field to this Onkyo receiver.
  3. Save. From then on the zone's volume control drives the receiver, and whenever the receiver reports a new volume or mute state on its 5-second poll, GEM mirrors it onto that zone's slider and mute indicator.

Volume is sent as a raw receiver step: a slider value of 50 becomes eISCP step 50 (hex 32). The receiver's own maximum applies — if a model caps at step 80, sliding past it just clamps at the receiver. If volume readings look doubled or oddly high, the unit is likely in the half-step 0–200 volume mode; switch it at Setup → Audio Adjust → Volume Setup.

Powering on and switching inputs from a source change

Picking an input is a device command, not an AV source change — choosing a room's source on a touchpanel does not, by itself, retune the receiver. To make a source selection power the receiver on and switch it to the right input, wire those commands into the source's on-macro:

  1. Add the power_on and set_input command rows above if you have not already.
  2. Open AV Sources and edit the source for that room.
  3. In the source's on-macro, add steps that send power_on to the receiver and set_input with the input code for the physical connection that source is wired to (for example, a cable box on HDMI labeled CBL/SAT → input code 01).

From then on, selecting that source powers the receiver and switches its input in one action.

Input codes

The set_input command's input argument is an eISCP SLI code — a two-character code that identifies a physical input. The common, stable codes are below. Codes vary by model and generation, so confirm against your receiver's eISCP/service documentation; a rejected code leaves the input unchanged.

CodeTypical input
00STB / DVR (VIDEO1)
01CBL / SAT (VIDEO2)
02GAME (VIDEO3)
03AUX (VIDEO4)
05PC (VIDEO6)
10BD / DVD
11Streaming Box
12TV
22PHONO
23CD
24FM
25AM
26TUNER
2BNETWORK
2EBluetooth

To discover the exact code your receiver uses for an input, select that input on the unit's own remote and watch the device log: the receiver emits an !1SLI<code> reply, and that <code> is what you pass to set_input.

Attributes

Device — required

AttributeTypeDescription
ipstringReceiver LAN IP.

Device — optional

AttributeTypeDefaultDescription
portint60128eISCP port.
status_intervalint5000Status poll interval, in milliseconds.

As the receiver reports its state, the driver auto-populates these read-only state attributes on the device — they reflect what the unit is doing, they are not values you set by hand:

AttributeTypeMeaning
power_statestringon / off, from !1PWR.
volumeintCurrent master volume step, from !1MVL.
inputstringCurrent input code, from !1SLI.
mute_statestringon / off, from !1AMT.

Commands

These ship with the driver:

CommandSendsNotes
volume!1MVL + levelSet master volume. Pass the level as the volume (or level) argument; GEM converts it to the hex pair the receiver expects.
get_power!1PWRQSTNQuery power state.
get_volume!1MVLQSTNQuery master volume.
get_input!1SLIQSTNQuery selected input.
get_mute!1AMTQSTNQuery mute state.

The four get_* queries are what the 5-second status poll runs; you do not normally call them by hand. The power, mute, and input setters are the rows you add under Adding power, mute, and input commands above.

Troubleshooting

SymptomCheck
No response when the receiver is offEnable Network Standby (Setup → Hardware → Power Management → Network Standby). Without it the eISCP socket closes in standby and GEM cannot wake the unit.
Connection drops at randomDisconnect the Onkyo Controller mobile app (and any other controller). The receiver allows only one eISCP client at a time.
Volume changes report odd or doubled valuesThe receiver is likely in the 0–200 half-step volume mode — switch it at Setup → Audio Adjust → Volume Setup.
Power / mute / input buttons do nothingThose setters are not shipped — add the power_on, power_off, mute_on, mute_off, and set_input rows from the table above.
An input pick is rejectedInput codes differ by model. Select the input on the receiver, watch the !1SLI<code> reply in the device log, and use that code.
Nothing connects at allA generic TCP terminal cannot drive this protocol — eISCP needs the 16-byte binary header GEM adds, so test only through GEM. Confirm IP, that port 60128 is reachable, and that the receiver is on the same LAN.

See also

  • AV Zones — set this receiver as a zone's Volume Device.
  • AV Sources — where a source's on-macro powers the receiver and switches its input.
  • Commands — adding the power, mute, and input command rows.
  • Denon Receiver and Marantz Receiver — other network AV receivers that ship a full command set out of the box.