Skip to main content

Extron SIS Control

Driver for any Extron Electronics device that speaks Simple Instruction Set (SIS) over TCP/Telnet — the lingua franca of Extron commercial AV. One driver, one product family, broad coverage:

  • Matrix switchers — DTP CrossPoint, XTP CrossPoint, MAV Plus, IN1604, IN1606, IN1808.
  • Presentation switchers — SMP / SMD recorders, ShareLink, ISS, etc.
  • Audio amplifiers — XPA Ultra, MPA series.
  • Control processors — IP-Link / IPCP Pro (when used as a SIS endpoint rather than a programming target).

Most Extron products since ~2008 ship with the same core SIS routing, volume, and mute verbs. Product-specific commands are sent through the send passthrough.

Prerequisites

  • Telnet enabled on the device. This driver connects over plain Telnet (TCP) — it does not speak SSH. Most products ship with Telnet on by default, but firmware-hardened sites sometimes disable it in favor of SSH-only (port 22023). If Telnet is off the driver cannot connect at all — re-enable Telnet (port 23) before integrating. Pointing the driver at the SSH port (22023) will not work.
  • A static IP or DHCP reservation. The device IP is shown on the front-panel LCD on most products, and via Extron Toolbelt or GlobalViewer.
  • If a Local (Administrator or User) password is set on the device, note the password. Default ships with no password.

Setup

  1. In Extron Toolbelt, confirm IP Setup → Telnet is enabled and the Telnet Port is 23. The driver speaks plain Telnet only; the SSH port (22023) is not supported, so if Telnet was turned off, re-enable it.
  2. In GEM admin → Devices, add a new device with driver extron_sis.
  3. Required: ip. Optional but recommended: port (default 23), password (only if device has Local password protection), input_count and output_count (default 8/8 — set to match the physical matrix), and volume_scale (default 100; XPA-series amps use 255).
  4. On connect the driver:
    • Detects and answers a Password: prompt if present.
    • Enables verbose mode 3 (Esc 3 CV) so front-panel and external route changes echo to the IP session.
    • Pulls model (1I) and firmware (Q) for telemetry.
    • Polls every output once for its current tie (route) and volume. Mute state is not polled — it updates only when a mute command is sent or the device echoes a mute change under verbose mode.
  5. Create one GEM zone per output you want to address; zone.address = output number as a string ("1", "2", ...).

Attributes

Device

AttributeTypeRequiredDescription
ipstringyesLAN IP of the Extron device.
portintnoTelnet port. Default 23. Plain Telnet only — the SSH port (22023) is not supported.
passwordstring (secure)noLocal password if device has one.
input_countintnoNumber of matrix inputs. Default 8.
output_countintnoNumber of matrix outputs. Default 8.
volume_scaleintnoDevice-side volume max. 100 (%) by default; 255 for XPA-series amps.
status_intervalintnoPoll interval in ms. Default 30000.
modelstringautoPopulated from 1I (information response).
firmwarestringautoPopulated from Q response.

Zone

The driver publishes:

AttributeDescription
inputCurrently routed input (1..input_count).
volume0-100 scaled from the device volume_scale.
mute_stateon / off for audio output mute.

zone.source is reserved for the GEM av_source FK and must never be written by drivers — the physical input number goes in zone.input (GEM convention).

Commands

CommandArgsWhat it sends
route / set_sourceaddress, source<src>*<out>! (A/V tie)
route_videoaddress, source<src>*<out>% (video plane)
route_audioaddress, source<src>*<out>$ (audio plane)
tie_allsource<src>*! (one input to all outputs)
untieaddress0*<out>! (disconnect output)
set_volumeaddress, level (0-100)<scaled>V<out>
volume_up / volume_downaddress+V<out> / -V<out>
mute_on / mute_offaddress1Z<out> / 0Z<out>
mute_toggleaddressResolved inside the driver from the output's last-known mute_state (sends 0Z<out> / 1Z<out>). If GEM has not yet observed a mute state for that output, it defaults to muting.
get_zone_statusaddress<out>! plus V<out>.
get_outputsRefresh ties for all 1..output_count outputs.
get_info1I + Q to refresh model / firmware.
lock_front_panel / unlock_front_panelEsc 1X / Esc 0X.
sendrawEscape hatch — send a literal SIS command. The carriage-return terminator (\r) is appended automatically, so do not include a trailing CR in raw (e.g. send 1*2!, not 1*2!\r).

Zone address format

Output number as a plain string: "1", "2", ... up to the device's output count. AV zones bind to these zones via volume_device_id or source_device_id depending on whether the install treats the Extron as the volume target, the source switcher, or both.

Known limitations

  • The Extron product line is enormous. The driver implements the common SIS subset shared across matrix switchers, presentation switchers, and amplifiers. Product-specific verbs (display warm-up, EDID management, scaler test patterns, OSD control) are not covered — use the send passthrough.
  • Power state is not exposed as a command. Most matrices have no soft power; products that do (e.g., some XPA amps) accept the verbs through send.
  • IPCP Pro / IP-Link processors run user-written control scripts internally. SIS access from GEM coexists with those scripts and competes for state ownership — coordinate with the Extron programmer before integrating.
  • The driver assumes verbose mode 3 (tagged responses). If a third party resets verbose to 0, front-panel changes stop echoing and the driver becomes poll-only until reconnect. Send \x1B3CV via send to recover without bouncing the socket.
  • The bare-numeric response shape to a single-output query (<out>! returns just <input>) is ambiguous without context, so the driver does not map those bare replies back to a zone. Routing state is tracked only from the tagged verbose-mode-3 responses (Out<N> In<M> All), which parse cleanly. Practically: keep verbose 3 enabled (the driver sets it on connect) or zone routing state will not update — only the volume and mute echoes will.

Troubleshooting

SymptomCheck
device never connects (or the socket opens then fails immediately)Telnet is likely disabled on the device (SSH-only). This driver does not speak SSH — re-enable Telnet and use port 23. The SSH port 22023 will not work.
socket connects then drops a few seconds laterConcurrent Telnet sessions exceeded (typically 4). Disconnect Toolbelt / GlobalViewer sessions and retry.
Password: prompt loops in the logsWrong password attribute. The driver sends the same string for User and Administrator accounts — confirm on the device which it expects.
route commands echo but the matrix does not changeFront-panel lockout is engaged. Send unlock_front_panel (Esc 0X) or unlock via the web UI.
volume sliders move but device volume does not changevolume_scale mismatch. Modern Extron products use 0-100 (%); XPA-series amps use 0-255 raw.
no responses on the socket but stays connectedVerbose mode is off. Send \x1B3CV via the send command.
E10 / E13 errors in the logsE10 = invalid command, E13 = invalid value. The driver passes them through; usually means the product does not implement that SIS verb (use send with the product-specific equivalent).