
The Paradox PAI template connects Paradox alarm panels — Spectra SP, Magellan MG and Digiplex EVO — to TapHome over MQTT through PAI, the Paradox Alarm Interface. PAI is an open-source bridge, not a Paradox product. It runs on a small computer next to the panel (for example a Raspberry Pi, a NAS or a Home Assistant host), talks to the panel over its serial port or an IP150 module, and publishes the state of the panel to an MQTT broker. TapHome reads those messages and sends arming commands back. Paradox does not publish the protocol PAI uses.
The template shows the state of one partition and arms or disarms it, shows four zones with their warnings, and switches one PGM output. For Digiplex EVO panels with the PRT3 module there is a separate template that uses the official protocol of Paradox and needs no computer: Paradox Digiplex EVO via PRT3 (TCP).
Community template — not yet tested with TapHome on a real panel. The template was generated in the TapHome portal from the PAI documentation and tested only against a simulated PAI and panel on a local TapHome Core 2025.2, not on a real Paradox panel. Verify it on your installation before you rely on it for security; feedback from the field is welcome. Download the XML on this page, or get it from the TapHome portal: Paradox via PAI — community template, and import it as a new module.
Security: anyone who can publish to the broker can disarm the alarm. PAI arms and disarms the panel without the user code of the panel. Turn on a username and password on the MQTT broker (the broker built into TapHome supports it) and enter them in PAI and in this template.
Supported panels
| Family | Models | Notes |
|---|---|---|
| Spectra SP | SP4000, SP5500, SP6000, SP7000, SP65 | On the “+” models (SP5500+, SP6000+, SP7000+) the serial port is locked for devices of other manufacturers. Paradox sells an unlock code, or connect PAI through an IP150 |
| Magellan MG | MG5000, MG5050, MG5050+, MG5075 | MG5050+ has the locked serial port as well. MG6250 is only experimental in PAI |
| Digiplex EVO | EVO48, EVO96, EVO192, EVOHD | EVO firmware 7.50 and newer encrypts the serial port; PAI 3.8 supports it with the PC password. EVO has no Sleep arming |
Hardware connection
PAI connects to the panel in one of these ways:
- Serial port of the panel — with a USB-to-TTL adapter to the computer running PAI, or with an ESP32 serial bridge on the local network.
- IP150 module on the local network. An IP150 accepts one client at a time: while PAI is connected, the Paradox apps Insite Gold and BlueEye cannot connect through the same module. An IP150+ with firmware 6.x and the IP180 do not allow local connections.
The computer with PAI and the TapHome Core have to reach the same MQTT broker — usually the broker built into the TapHome Core.
Configuration
MQTT broker in TapHome
Turn on the MQTT Broker in TapHome and set a username and password — see MQTT Broker. PAI and this template log in to the broker with them.
PAI
In the PAI configuration, point MQTT to the broker TapHome uses. For the broker built into TapHome this is the IP address of the TapHome Core — the name taphome.mqtt.broker.local works only inside the Core, not for PAI:
| |
MQTT_USE_NUMERIC_STATES may stay at its default (False); the template reads both True/False and 1/0.
Keys of the partition, zones and PGM
PAI names each partition, zone and PGM by its label in the panel, with spaces and special characters replaced by _ (for example Front door → Front_door). Read the keys from the broker after PAI starts, for example:
| |
| |
The part after partitions/, zones/ and outputs/ is the key. Keys are case-sensitive.
Import parameters
| Import parameter | Description | Default |
|---|---|---|
| MQTT broker address | taphome.mqtt.broker.local for the broker built into TapHome, or the address of another broker | taphome.mqtt.broker.local |
| MQTT broker port | Port of the broker | 1883 |
| MQTT broker username, password | The broker account | (empty) |
| PAI base topic | MQTT_BASE_TOPIC of PAI | paradox |
| Partition key | Key of the partition | Area_1 |
| Zone 1–4 keys | Keys of four zones | Zone_1 … Zone_4 |
| PGM output key | Key of one PGM output | PGM_1 |
For more partitions or zones, import the template again with other keys and delete the devices you do not need.
Device capabilities
Partition
Shows the state of the partition and arms or disarms it.
| State | PAI current_state | When selected in TapHome |
|---|---|---|
| Disarmed | disarmed | sends disarm |
| Armed | armed_away | sends arm |
| Armed Stay | armed_home | sends arm_stay |
| Armed Sleep | armed_night | sends arm_sleep (SP and MG only) |
| Arming | arming (exit delay) | sends nothing |
| Alarm | triggered | sends nothing |
Commands are published to paradox/control/partitions/<key> without the retain flag, as PAI requires. Arming and Alarm are states reported by the panel and never send a command. When the TapHome Core starts, the partition takes its state from the retained PAI message and sends nothing.
Zones 1–4
Each zone shows whether it is open or closed. Warnings show when the zone is in alarm, tampered or bypassed, or when a wireless zone has a low battery. Each warning stays until PAI reports the state as cleared.
PGM output
Switches one PGM output of the panel on or off and shows its state. Whether a PGM can be switched depends on the panel and on how the installer programmed it. When the TapHome Core starts, the PGM takes its state from PAI and is not switched.
Module
The module shows an error when PAI reports itself offline (paradox/interface/availability), for example when PAI lost the connection to the panel or stopped.
Without PAI
A PGM output of the panel wired to a TapHome input (armed, alarm) and a TapHome relay wired to a keyswitch zone of the panel work with every Paradox panel, with fewer states and no zone details.
Troubleshooting
No states in TapHome
Check that PAI runs and publishes (mosquitto_sub … -t 'paradox/#'), that the base topic and the keys match exactly, and that MQTT_RETAIN is on in PAI.
Arming does nothing
Check that PAI and TapHome use the same broker, and read paradox/interface/command_status for the answer of PAI. On EVO, Armed Sleep is not available.
Module error “PAI reports offline”
PAI lost the panel or stopped; see the PAI log.
PAI does not connect to the panel
On SP5500+, SP6000+, SP7000+ and MG5050+ the serial port is locked — ask Paradox for the unlock code, or connect through an IP150. While PAI is connected through an IP150, close Insite Gold and BlueEye. An IP150+ with firmware 6.x or an IP180 does not allow PAI to connect locally.
