Sony Projector (IP Control)
Sony home-cinema projectors — the VPL-VW and VPL-HW series — are controlled over the wired
LAN using Sony's ADCP / PJ Talk IP-control protocol. GEM connects to the projector on TCP
port 53595 and drives power and HDMI input selection while polling the projector every few
seconds for its current power state, active input, and any error the projector reports.
This driver controls a single projector as a device. It does not create a control zone of its own — you call its commands directly, from a button, or (most commonly) from the On/Off macros of the AV zone that serves the room. See "Using the projector in an AV zone" below.
What's controlled
- Power on and off.
- Input selection — dedicated commands for HDMI 1 and HDMI 2, plus a raw pass-through command for any other source (HDBaseT, DVI, component, etc.).
- Live status polling — every 5 seconds GEM asks the projector for its power state and its active input, and records the result on the device. Because these are stored on the device, they are also available as attribute-change triggers and show live on any control that subscribes to the device.
- Error reporting — when the projector rejects a command or reports a fault, GEM stores the
code on the device's
errorattribute and clears it again once the projector reports no error.
Prerequisites
- A network-capable Sony VPL-VW / VPL-HW projector reachable on the LAN.
- IP control (ADCP) enabled in the projector menu — typically under Network → IP Control (wording varies by model and firmware).
- ADCP authentication set to "None." This driver connects without an authentication step and does not implement Sony's digest-style PJ Talk password exchange. If the projector's IP control is password-protected, the connection is refused and commands never take effect.
- TCP port
53595reachable between GEM and the projector. Most VPL-VW / VPL-HW models use this port by default.
Setup
- On the projector, open the menu and enable Network → IP Control (ADCP), and confirm the
control port — the default is
53595. - Set ADCP authentication to None (some menus phrase this as a "No password" mode).
- Give the projector a static IP, or a DHCP reservation so its address never moves.
- In GEM, open Devices, click Add Device, and choose the Sony Projector (IP Control) driver.
- Set the Projector IP Address field. TCP Port defaults to
53595— leave it unless your projector or network was re-mapped. - Pick the AV subsystem and the projector device type (GEM pre-selects the projector device type for this driver), then save.
On connect, GEM begins polling the projector every 5 seconds for power (power_status ?) and
input (input ?), so the device's live state appears within a few seconds of a successful
connection.
Selecting inputs
The two most common inputs have dedicated commands — hdmi_1 and hdmi_2 — which select HDMI
1 and HDMI 2 respectively. Use these in macros or on a button.
For any other source, use the passthrough command and put the raw ADCP input string in the
command argument. For example, a command value of input "hdbaset1" selects the HDBaseT
input. The projector reports these source names back to GEM, and GEM recognizes the following:
hdmi1, hdmi2, video1, svideo1, rgb1, rgb2, dvi1, network, usb_a, usb_b,
hdbaset1, option1, web_content.
The value GEM stores on the input attribute is the projector's reported source, with one
adjustment: HDMI sources are normalized from hdmi1 / hdmi2 to hdmi_1 / hdmi_2. All
other inputs are stored exactly as the projector reports them (hdbaset1, video1, and so on).
If you build an attribute-change trigger on input, match hdmi_1 — not hdmi1.
Using the projector in an AV zone
A projector is the video side of a room. GEM does not bind it to an AV zone the way it binds an amplifier or receiver (those attach as the zone's Volume Device for audio). Instead, drive the projector's power and input from the room's macros:
- Open AV Zones and edit (or create) the zone for the theater or display room. The zone's audio device — the receiver or amp — goes in the Volume Device field; the projector is separate.
- Add the projector's
power_oncommand (and the right input command, e.g.hdmi_1) to the zone's On macro, andpower_offto the Off macro, so powering the room on raises the projector and selects the correct input. (Per-source input switches belong in the source macros under AV Sources — e.g. a Blu-ray source's on-macro selects the projector's HDMI input.)
You can also call any of the projector's commands directly from the Commands screen or from any macro.
Attributes
Device — required
| Attribute | Type | Description |
|---|---|---|
ip | string | Projector LAN IP address. |
Device — optional
| Attribute | Type | Default | Description |
|---|---|---|---|
port | int | 53595 | ADCP TCP port. Most VPL-VW / VPL-HW models default to this. |
status_interval | int | 5000 | How often GEM polls the projector for power and input, in milliseconds. Minimum 1000. |
Device — runtime (set by the driver)
These are written by GEM from the projector's replies, so they are readable on the device and usable as attribute-change triggers. You do not set them by hand.
| Attribute | Values | Description |
|---|---|---|
power_state | on / off | Current power. The projector's standby reply is recorded as off. |
input | e.g. hdmi_1, hdmi_2, hdbaset1, video1 | Active input (see the note under Selecting inputs for the HDMI naming). |
error | e.g. busy, cmd | Last error the projector reported, with the err_ prefix removed. Cleared when the projector reports no error. |
This is a single-device driver: it does not use a zone Address and exposes no zone-level attributes.
Commands
| Command | Sends | Notes |
|---|---|---|
power_on | power "on" | Turn the projector on. |
power_off | power "off" | Turn the projector off (standby). |
hdmi_1 | input "hdmi1" | Select the HDMI 1 input. |
hdmi_2 | input "hdmi2" | Select the HDMI 2 input. |
get_power | power_status ? | Query the power state. |
get_input | input ? | Query the active input. |
passthrough | (raw) | Send any raw ADCP command string, supplied in the command argument — e.g. input "hdbaset1". |
keypress | (raw) | Send a raw ADCP string, supplied in the key argument. |
After connecting, GEM issues power_status ? and input ? on its own every 5 seconds, so you
normally do not need to call the get_* commands by hand.
Known limitations
- Power reads as on or off only. GEM records the projector's
on,off, andstandbyreplies; standby is stored asoff. Transitional warm-up and cool-down states the projector reports while the lamp/laser ramps are not decoded, so during those seconds the last-known reading does not change. - Only HDMI 1 and HDMI 2 have dedicated commands. Every other input (HDBaseT, DVI,
component, computer, USB, network, web content) is reached through the
passthroughcommand with a rawinput "…"string — there is no per-input friendly command for them. - No lamp/laser hours, picture mode, brightness, or geometry control. This driver covers power, input selection, and status/error readback. Other ADCP features are not exposed as commands.
- No authentication. The driver requires the projector's ADCP authentication to be set to None; password-protected IP control is not supported.
Troubleshooting
| Symptom | Check |
|---|---|
| Connection refused | IP control (ADCP) is disabled on the projector, or ADCP authentication is enabled. Enable IP control and set authentication to None. |
The error attribute repeatedly shows a code | Read the code: cmd means the projector rejected the command as unknown — most often the wrong control port, or a command the model doesn't support; busy means the projector is still warming up and not yet accepting commands. |
A passthrough input command does nothing | Confirm the raw string exactly matches the projector's ADCP syntax, including the quotes — e.g. input "hdbaset1", not input hdbaset1. |
| GEM shows the projector offline | Confirm the IP address (set a DHCP reservation so it does not move), that the projector is on the same reachable network, and that TCP port 53595 is not blocked between GEM and the projector. |
| Power reading seems stuck for a few seconds after on/off | Expected — the warm-up / cool-down transitional states are not decoded; the reading updates once the projector reports steady on or standby. |
See also
- AV Zones — set the room's audio device as the Volume Device, and call the projector's power/input commands from the zone's On/Off macros.
- AV Sources — where a per-source input-switch macro lives.
- Devices — adding and editing devices.
- Commands — running a device command directly.
- Attributes — reading the projector's live
power_state/input/errorvalues and triggering on them. - Macros — driving the projector from automation.