TapHome

Paradox alarmne centrale preko PAI (MQTT)

Packet Parser → MQTT
Autor
Posljednje ažuriranje: 11. 2026

Potreban je vanjski pristupnik (gateway)

PAI (Paradox Alarm Interface, open-source MQTT bridge) — stranica proizvoda

Paradox alarmne centrale preko PAI (MQTT)

Predložak Paradox PAI povezuje Paradox alarmne centrale — Spectra SP, Magellan MG i Digiplex EVO — s TapHome preko MQTT-a pomoću PAI-ja, Paradox Alarm Interface. PAI je open-source most, a ne proizvod tvrtke Paradox. Radi na malom računalu pokraj centrale (na primjer Raspberry Pi, NAS ili računalo s Home Assistantom), s centralom komunicira preko njezina serijskog priključka ili modula IP150 i objavljuje stanje centrale na MQTT broker. TapHome čita te poruke i šalje natrag naredbe za aktiviranje. Protokol koji PAI koristi Paradox ne objavljuje.

Predložak prikazuje stanje jedne particije te je aktivira ili deaktivira, prikazuje četiri zone s njihovim upozorenjima i uključuje jedan PGM izlaz. Za centrale Digiplex EVO s modulom PRT3 postoji zaseban predložak koji koristi službeni protokol tvrtke Paradox i ne treba računalo: Paradox Digiplex EVO preko PRT3 (TCP).

Predložak zajednice — još nije testiran s TapHome na stvarnoj centrali. Predložak je izrađen u portalu TapHome iz dokumentacije PAI-ja i testiran je samo sa simulatorom PAI-ja i centrale na lokalnom TapHome Core 2025.2, a ne sa stvarnom Paradox centralom. Provjerite ga na svojoj instalaciji prije nego što se na njega oslonite za sigurnost; iskustva s terena su dobrodošla. XML preuzmite na ovoj stranici ili u portalu TapHome: Paradox preko PAI-ja — predložak zajednice, i uvezite ga kao novi modul.

Sigurnost: tko može objavljivati na broker, može deaktivirati alarm. PAI aktivira i deaktivira centralu bez korisničkog koda centrale. Uključite na MQTT brokeru korisničko ime i lozinku (ugrađeni broker TapHome to podržava) i unesite ih u PAI i u ovaj predložak.

Podržane centrale

SerijaModeliNapomene
Spectra SPSP4000, SP5500, SP6000, SP7000, SP65Na modelima „+” (SP5500+, SP6000+, SP7000+) serijski priključak je zaključan za uređaje drugih proizvođača. Paradox prodaje kod za otključavanje, ili PAI povežite preko IP150
Magellan MGMG5000, MG5050, MG5050+, MG5075I MG5050+ ima zaključan serijski priključak. MG6250 je u PAI-ju samo eksperimentalno podržan
Digiplex EVOEVO48, EVO96, EVO192, EVOHDFirmware EVO 7.50 i noviji šifrira serijski priključak; PAI 3.8 to podržava uz lozinku za PC. EVO nema aktiviranje Sleep

Hardversko spajanje

PAI se s centralom povezuje na jedan od ovih načina:

  • Serijski priključak centrale — pretvaračem USB na TTL prema računalu s PAI-jem ili serijskim mostom ESP32 u lokalnoj mreži.
  • Modul IP150 u lokalnoj mreži. IP150 istodobno prima samo jednog klijenta: dok je PAI povezan, aplikacije tvrtke Paradox Insite Gold i BlueEye ne mogu se povezati preko istog modula. IP150+ s firmwareom 6.x i IP180 ne dopuštaju lokalno povezivanje.

Računalo s PAI-jem i TapHome Core moraju doseći isti MQTT broker — obično broker ugrađen u TapHome Core.

Konfiguracija

MQTT broker u TapHome

Uključite MQTT Broker u TapHome i postavite korisničko ime i lozinku — pogledajte MQTT Broker. PAI i ovaj predložak njima se prijavljuju na broker.

PAI

U konfiguraciji PAI-ja usmjerite MQTT na broker koji koristi TapHome. Za broker ugrađen u TapHome to je IP adresa TapHome Core — naziv taphome.mqtt.broker.local radi samo unutar Corea, ne i za PAI:

1
2
3
4
5
6
7
MQTT_ENABLE: true
MQTT_HOST: 192.168.1.10        # IP address of the TapHome Core with the built-in broker
MQTT_PORT: 1883
MQTT_USERNAME: pai
MQTT_PASSWORD: 'replace-me'
MQTT_BASE_TOPIC: paradox
MQTT_RETAIN: true              # default: the broker keeps the last state for TapHome

MQTT_USE_NUMERIC_STATES može ostati na zadanoj vrijednosti (False); predložak čita i True/False i 1/0.

Ključevi particije, zona i PGM-a

PAI svaku particiju, zonu i PGM imenuje prema njezinu nazivu u centrali, a razmake i posebne znakove zamjenjuje znakom _ (na primjer Front door → Front_door). Ključeve pročitajte s brokera nakon pokretanja PAI-ja, na primjer:

1
mosquitto_sub -h 192.168.1.10 -u pai -P 'replace-me' -t 'paradox/states/#' -v
1
2
3
paradox/states/partitions/Area_1/current_state disarmed
paradox/states/zones/Front_door/open False
paradox/states/outputs/Gate/on False

Dio iza partitions/, zones/ i outputs/ je ključ. Ključevi razlikuju velika i mala slova.

Parametri uvoza

Parametar uvozaOpisZadano
Adresa MQTT brokerataphome.mqtt.broker.local za broker ugrađen u TapHome ili adresa drugog brokerataphome.mqtt.broker.local
Port MQTT brokeraPort brokera1883
Korisničko ime i lozinka MQTT brokeraRačun na brokeru(prazno)
Osnovna tema PAI-jaMQTT_BASE_TOPIC u PAI-juparadox
Ključ particijeKljuč particijeArea_1
Ključevi zona 1–4Ključevi četiriju zonaZone_1 … Zone_4
Ključ PGM izlazaKljuč jednog PGM izlazaPGM_1

Za dodatne particije ili zone ponovno uvezite predložak s drugim ključevima i izbrišite uređaje koji vam nisu potrebni.

Mogućnosti uređaja

Particija

Prikazuje stanje particije te je aktivira ili deaktivira.

StanjePAI current_stateKada se odabere u TapHome
Deaktivirandisarmedšalje disarm
Aktiviranarmed_awayšalje arm
Aktiviran Stayarmed_homešalje arm_stay
Aktiviran Sleeparmed_nightšalje arm_sleep (samo SP i MG)
Aktiviranjearming (izlazna odgoda)ne šalje ništa
Alarmtriggeredne šalje ništa

Naredbe se objavljuju na paradox/control/partitions/<key> bez oznake retain, kako PAI zahtijeva. Aktiviranje i Alarm su stanja koja javlja centrala i nikada ne šalju naredbu. Pri pokretanju TapHome Corea particija preuzima stanje iz zadržane (retained) poruke PAI-ja i ništa ne šalje.

Zone 1–4

Svaka zona prikazuje je li otvorena ili zatvorena. Upozorenja se prikazuju kada je zona u alarmu, sabotirana ili premoštena, ili kada bežična zona ima slabu bateriju. Svako upozorenje ostaje dok PAI ne javi da je stanje prestalo.

PGM izlaz

Uključuje i isključuje jedan PGM izlaz centrale i prikazuje njegovo stanje. Može li se PGM uključivati ovisi o centrali i o tome kako ga je instalater programirao. Pri pokretanju TapHome Corea PGM preuzima stanje iz PAI-ja i ne uključuje se.

Modul

Modul prikazuje grešku kada PAI javi da je offline (paradox/interface/availability), na primjer kada je PAI izgubio vezu s centralom ili se zaustavio.

Bez PAI-ja

PGM izlaz centrale spojen na ulaz TapHome (aktivirano, alarm) i relej TapHome spojen na zonu centrale s ključnom sklopkom rade sa svakom Paradox centralom, uz manje stanja i bez pojedinosti o zonama.

Rješavanje problema

TapHome ne prikazuje stanja

Provjerite radi li PAI i objavljuje li (mosquitto_sub … -t 'paradox/#'), odgovaraju li osnovna tema i ključevi točno te je li u PAI-ju uključen MQTT_RETAIN.

Aktiviranje ne radi ništa

Provjerite koriste li PAI i TapHome isti broker te u paradox/interface/command_status pročitajte odgovor PAI-ja. Na EVO aktiviranje Sleep nije dostupno.

Greška modula „PAI reports offline”

PAI je izgubio centralu ili se zaustavio; pogledajte zapisnik PAI-ja.

PAI se ne povezuje s centralom

Na SP5500+, SP6000+, SP7000+ i MG5050+ serijski priključak je zaključan — zatražite od tvrtke Paradox kod za otključavanje ili se povežite preko IP150. Dok je PAI povezan preko IP150, zatvorite Insite Gold i BlueEye. IP150+ s firmwareom 6.x i IP180 ne dopuštaju PAI-ju lokalno povezivanje.

Dostupni uređaji

Paradox PAI MQTT most Modul
Prilagođene varijable
baseTopic (string)Osnovna tema PAI-ja (MQTT_BASE_TOPIC u konfiguraciji PAI-ja), zadano paradox
Enter the same value as MQTT_BASE_TOPIC in the PAI configuration as the import parameter PAI base topic.

Paradox PAI MQTT Bridge

Listener
IF RECEIVEDMSG.TOPIC = baseTopic + "/interface/availability"
    paiStatus := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
# PAI publishes availability as a retained message: offline = PAI lost the panel or stopped
IF paiStatus = "offline"
    ADDERROR(1, "PAI reports offline - no updates from the alarm panel. Check PAI and its connection to the panel.");
END
Particija Prekidač s više vrijednosti

Stanje jedne particije centrale te njezino aktiviranje ili deaktiviranje; Aktiviranje i Alarm samo se prikazuju i ništa ne šalju

enum string
Vrijednosti / stanja: Deaktiviran · Aktiviran · Aktiviran Stay · Aktiviran Sleep · Aktiviranje · Alarm
Varijabla: partitionKey — Ključ particije kako ga PAI objavljuje u paradox/states/partitions/<ključ>, na primjer Area_1

Particija

Čitanje stanja sklopke
RETURN(Mu);
Zapis stanja sklopke
# Only the four commands are sent. Arming and Alarm are states reported by the panel, never commands.
VAR cmd := SWITCH(Mu, 0, "disarm", 1, "arm", 2, "arm_stay", 3, "arm_sleep", "");
IF cmd != ""
    MQTTPUBLISH(baseTopic + "/control/partitions/" + partitionKey, cmd);
END
Listener
IF RECEIVEDMSG.TOPIC = baseTopic + "/states/partitions/" + partitionKey + "/current_state"
    VAR state := TOSTRING(RECEIVEDMSG.PAYLOAD);
    # PAI current_state: disarmed, arming (exit delay), armed_away, armed_home (stay), armed_night (sleep), triggered
    IF state = "disarmed"
        Mu := 0;
    ELSEIF state = "armed_away"
        Mu := 1;
    ELSEIF state = "armed_home"
        Mu := 2;
    ELSEIF state = "armed_night"
        Mu := 3;
    ELSEIF state = "arming"
        Mu := 4;
    ELSEIF state = "triggered"
        Mu := 5;
    END
END
Zona 1 Magnetski kontakt Samo za čitanje

Stanje zone centrale (otvorena ili zatvorena) s upozorenjima na alarm, sabotažu, slabu bateriju bežične zone i premošćenje

boolean
Varijabla: zoneKey — Ključ zone kako ga PAI objavljuje u paradox/states/zones/<ključ>, na primjer Front_door

Zona 1

Čitanje
RETURN(Rc);
Listener
VAR prefix := baseTopic + "/states/zones/" + zoneKey + "/";
VAR topic := RECEIVEDMSG.TOPIC;
IF INDEXOF(topic, prefix) = 0
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);
    VAR isOn := IF(payload = "True" OR payload = "1", 1, 0);
    IF topic = prefix + "open"
        Rc := isOn;
    ELSEIF topic = prefix + "tamper"
        zoneTamper := isOn;
    ELSEIF topic = prefix + "rf_low_battery_trouble"
        zoneLowBattery := isOn;
    ELSEIF topic = prefix + "bypassed"
        zoneBypassed := isOn;
    ELSEIF topic = prefix + "alarm"
        zoneAlarm := isOn;
    END
END
# Warnings are rebuilt from the stored zone states on every message, so they stay until the panel clears them
IF zoneAlarm = 1
    ADDWARNING(1, "Zone in alarm");
END
IF zoneTamper = 1
    ADDWARNING(2, "Zone tampered");
END
IF zoneLowBattery = 1
    ADDWARNING(3, "Wireless zone: low battery");
END
IF zoneBypassed = 1
    ADDWARNING(4, "Zone bypassed");
END
Zona 2 Magnetski kontakt Samo za čitanje

Stanje zone centrale (otvorena ili zatvorena) s upozorenjima na alarm, sabotažu, slabu bateriju bežične zone i premošćenje

boolean
Varijabla: zoneKey — Ključ zone kako ga PAI objavljuje u paradox/states/zones/<ključ>, na primjer Front_door

Zona 2

Čitanje
RETURN(Rc);
Listener
VAR prefix := baseTopic + "/states/zones/" + zoneKey + "/";
VAR topic := RECEIVEDMSG.TOPIC;
IF INDEXOF(topic, prefix) = 0
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);
    VAR isOn := IF(payload = "True" OR payload = "1", 1, 0);
    IF topic = prefix + "open"
        Rc := isOn;
    ELSEIF topic = prefix + "tamper"
        zoneTamper := isOn;
    ELSEIF topic = prefix + "rf_low_battery_trouble"
        zoneLowBattery := isOn;
    ELSEIF topic = prefix + "bypassed"
        zoneBypassed := isOn;
    ELSEIF topic = prefix + "alarm"
        zoneAlarm := isOn;
    END
END
# Warnings are rebuilt from the stored zone states on every message, so they stay until the panel clears them
IF zoneAlarm = 1
    ADDWARNING(1, "Zone in alarm");
END
IF zoneTamper = 1
    ADDWARNING(2, "Zone tampered");
END
IF zoneLowBattery = 1
    ADDWARNING(3, "Wireless zone: low battery");
END
IF zoneBypassed = 1
    ADDWARNING(4, "Zone bypassed");
END
Zona 3 Magnetski kontakt Samo za čitanje

Stanje zone centrale (otvorena ili zatvorena) s upozorenjima na alarm, sabotažu, slabu bateriju bežične zone i premošćenje

boolean
Varijabla: zoneKey — Ključ zone kako ga PAI objavljuje u paradox/states/zones/<ključ>, na primjer Front_door

Zona 3

Čitanje
RETURN(Rc);
Listener
VAR prefix := baseTopic + "/states/zones/" + zoneKey + "/";
VAR topic := RECEIVEDMSG.TOPIC;
IF INDEXOF(topic, prefix) = 0
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);
    VAR isOn := IF(payload = "True" OR payload = "1", 1, 0);
    IF topic = prefix + "open"
        Rc := isOn;
    ELSEIF topic = prefix + "tamper"
        zoneTamper := isOn;
    ELSEIF topic = prefix + "rf_low_battery_trouble"
        zoneLowBattery := isOn;
    ELSEIF topic = prefix + "bypassed"
        zoneBypassed := isOn;
    ELSEIF topic = prefix + "alarm"
        zoneAlarm := isOn;
    END
END
# Warnings are rebuilt from the stored zone states on every message, so they stay until the panel clears them
IF zoneAlarm = 1
    ADDWARNING(1, "Zone in alarm");
END
IF zoneTamper = 1
    ADDWARNING(2, "Zone tampered");
END
IF zoneLowBattery = 1
    ADDWARNING(3, "Wireless zone: low battery");
END
IF zoneBypassed = 1
    ADDWARNING(4, "Zone bypassed");
END
Zona 4 Magnetski kontakt Samo za čitanje

Stanje zone centrale (otvorena ili zatvorena) s upozorenjima na alarm, sabotažu, slabu bateriju bežične zone i premošćenje

boolean
Varijabla: zoneKey — Ključ zone kako ga PAI objavljuje u paradox/states/zones/<ključ>, na primjer Front_door

Zona 4

Čitanje
RETURN(Rc);
Listener
VAR prefix := baseTopic + "/states/zones/" + zoneKey + "/";
VAR topic := RECEIVEDMSG.TOPIC;
IF INDEXOF(topic, prefix) = 0
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);
    VAR isOn := IF(payload = "True" OR payload = "1", 1, 0);
    IF topic = prefix + "open"
        Rc := isOn;
    ELSEIF topic = prefix + "tamper"
        zoneTamper := isOn;
    ELSEIF topic = prefix + "rf_low_battery_trouble"
        zoneLowBattery := isOn;
    ELSEIF topic = prefix + "bypassed"
        zoneBypassed := isOn;
    ELSEIF topic = prefix + "alarm"
        zoneAlarm := isOn;
    END
END
# Warnings are rebuilt from the stored zone states on every message, so they stay until the panel clears them
IF zoneAlarm = 1
    ADDWARNING(1, "Zone in alarm");
END
IF zoneTamper = 1
    ADDWARNING(2, "Zone tampered");
END
IF zoneLowBattery = 1
    ADDWARNING(3, "Wireless zone: low battery");
END
IF zoneBypassed = 1
    ADDWARNING(4, "Zone bypassed");
END
PGM izlaz Sklopka

Uključuje i isključuje jedan programabilni izlaz (PGM) centrale i prikazuje njegovo stanje

boolean
Vrijednosti / stanja: ON · OFF
Varijabla: outputKey — Ključ PGM izlaza kako ga PAI objavljuje u paradox/states/outputs/<ključ>

PGM izlaz

Čitanje stanja sklopke
RETURN(St);
Zapis stanja sklopke
MQTTPUBLISH(baseTopic + "/control/outputs/" + outputKey, IF(St = 1, "on", "off"));
Listener
IF RECEIVEDMSG.TOPIC = baseTopic + "/states/outputs/" + outputKey + "/on"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);
    St := IF(payload = "True" OR payload = "1", 1, 0);
END
Povezivanje: Packet Parser → MQTT
Moguća poboljšanja (6)
  • Zone bypass control — The template shows the bypass state of a zone as a warning but does not bypass a zone.
  • Force arming and EVO instant arming — arm_instant exists on EVO panels only; EVO has no Sleep arming, so Armed Sleep does nothing there.
  • Panic alarms — Left out on purpose: a panic command triggers a real alarm report.
  • System trouble flags — Trouble flags of the panel that PAI publishes under states/system/troubles.
  • Event stream — Live panel events PAI publishes as JSON when MQTT_PUBLISH_RAW_EVENTS is on.
  • More partitions, zones and PGM outputs — The template has one partition, four zones and one PGM. Import it again with other keys for more.

Izvori

  • PAI — Paradox Alarm Interface, project README (version 3.8.1)
    github.com 2026-11-04
  • PAI wiki — MQTT Interface (topics, states, control commands)
    github.com 2026-11-04
  • PAI — example configuration pai.conf.example
  • PAI wiki — Compatibility (panels, firmware, connections)
    github.com 2026-11-04
  • PAI wiki — Connection methods (serial, IP150, ESP32 bridge)
    github.com 2026-11-04

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Zajednica · nije provjereno

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu