Aiphone IX / IXG Intercoms
Aiphone IX-Series and IXG-Series IP intercom stations (door stations, master stations, tenant stations) via the on-station CGI integration interface. The driver drives door-release relay outputs, initiates and cancels calls between stations, and reads basic system info.
Each Aiphone IX station is its own HTTP endpoint — there is no system-wide controller — so a fifty-station system means fifty GEM device rows. The wiring is light: this driver only touches the CGI control surface. SIP audio between stations is handled by the IX system itself.
Prerequisites
- Aiphone IX or IXG firmware 6.00 or newer. Older firmware lacks CGI integration entirely; the integration manual you want is the modern "Network Direct" / CGI document, not the legacy IX-2 SIF.
- CGI Integration enabled on the station via the Aiphone IX Support Tool, with an HTTP username and password assigned. This is a separate credential from the station-admin login.
- Network reach from the GEM controller to each station's HTTP port (default 80).
Setup
- Open the IX Support Tool and load the system file. For each station you want GEM to reach, navigate to Function Settings → CGI and:
- Set CGI Integration =
Enable. - Set the CGI Username and CGI Password.
- Save and upload the configuration to the station.
- Set CGI Integration =
- Reboot the station so the new CGI account takes effect.
- In GEM, create a device row in System → Devices with driver
aiphone_ix. - Set the required attributes (see table below) and save. The driver issues a
system.cgiGET to confirm digest auth. - For door stations: create one zone per relay output. Set zone
addressto the relay number —1for the primary door release,2for any secondary output. - For master / tenant stations used as call sources: create one zone per remote station you want to dial, with
address= the remote station's Station Number as configured in the IX Support Tool's Address Book.
Required attributes
| Attribute | Description |
|---|---|
ip | LAN IP of this Aiphone IX station. |
username | The CGI username configured in IX Support Tool. NOT the station admin login. |
password | The CGI password configured in IX Support Tool. Stored encrypted. |
Optional attributes
| Attribute | Default | Description |
|---|---|---|
port | 80 | HTTP port on the station. |
protocol | http | http or https. Most IX stations expose CGI over HTTP only. |
station_number | — | Optional. The station's own Station Number, surfaced for visibility. |
relay_pulse_ms | 3000 | Default door-release pulse length when door_release is issued without an explicit duration. |
request_timeout | 8000 | Per-request timeout in ms. |
Zone address format
The zone address is interpreted by command:
door_release/set_output→ relay number on this station, as a string."1"is the primary output on a single-relay door station.initiate_call→ the remote station's Station Number (must already be in this station's Address Book).
Commands
| Command | Args | Notes |
|---|---|---|
get_system_info | — | GET /cgi-bin/system.cgi. Returns firmware, model, station number. |
door_release | address, duration | Pulse the relay closed. address = relay number. duration = ms (defaults to relay_pulse_ms). Driver auto-opens after the pulse. |
set_output | address, state | Set a relay output directly (1 = closed, 0 = open). For latching outputs. |
initiate_call | address | Initiate a call from this station to the remote Station Number. |
cancel_call | — | Cancel any in-progress call on this station. |
get_call_status | — | Read current call state. Marked TODO — the response schema has not been verified against every firmware revision; returns not yet implemented until validated against a real station. |
Authentication
Aiphone IX uses HTTP Digest authentication. The driver passes credentials with sendImmediately: false so the base generic_http driver handles the standard 401 → re-auth round-trip automatically. Plain Basic auth will not work.
Known limitations
- Inbound events are not handled. Aiphone IX pushes button-press, call-incoming, and contact-input events as SIP
NOTIFYand HTTP POST callbacks. Subscribing to those is a future enhancement; today this driver is outbound-only. If you need door-bell-press automation in the meantime, wire the door station's contact input through a separate physical relay device. - Per-firmware drift. Some less-common CGI commands changed wire format between minor firmware revisions. The commands marked TODO in
getCommands()reflect that; they will be flushed out as we get hardware to verify against. - No SIP / audio. This driver does not place RTP audio paths; the IX stations handle that themselves over SIP. Use master-station / tenant-station hardware for the audio side and let this driver handle door release and call initiation.
- One device per station. There is no aggregator. Plan for a device row per station.
Troubleshooting
| Symptom | Check |
|---|---|
unauthorized (status 401) after a known-good password | CGI Integration is set to Disable, or the configuration was not uploaded after change, or the station was not rebooted. The station-admin login does not work for CGI. |
| Door relay does not fire | Confirm the station hardware actually has the relay (master and tenant stations do not). Confirm Output Number matches the wired relay terminal. |
| Connection refused | Some firmware binds CGI to LAN1 only. Verify which interface the station's management IP is on. |
initiate_call returns 200 but nothing happens | Verify the destination Station Number matches an entry in this station's Address Book — the station silently ignores calls to unknown numbers. |