TapHome

Paradox riasztóközpontok PAI-on keresztül (MQTT)

Packet Parser → MQTT
Beküldő
Utoljára frissítve: 11. 2026

Külső átjáró szükséges

PAI (Paradox Alarm Interface, open-source MQTT bridge) — termékoldal

Paradox riasztóközpontok PAI-on keresztül (MQTT)

A Paradox PAI sablon a Paradox riasztóközpontokat — Spectra SP, Magellan MG és Digiplex EVO — MQTT-n keresztül kapcsolja a TapHome-hoz a PAI, azaz a Paradox Alarm Interface segítségével. A PAI nyílt forráskódú híd, nem a Paradox terméke. Egy kis számítógépen fut a központ mellett (például Raspberry Pi, NAS vagy Home Assistantot futtató gép), a központtal annak soros portján vagy egy IP150 modulon keresztül kommunikál, és a központ állapotát egy MQTT brókerre publikálja. A TapHome ezeket az üzeneteket olvassa, és élesítési parancsokat küld vissza. A PAI által használt protokollt a Paradox nem teszi közzé.

A sablon egy partíció állapotát mutatja, és a partíciót élesíti vagy hatástalanítja, négy zónát mutat a figyelmeztetéseikkel, és egy PGM kimenetet kapcsol. A PRT3 modullal felszerelt Digiplex EVO központokhoz külön sablon van, amely a Paradox hivatalos protokollját használja, és nem kell hozzá számítógép: Paradox Digiplex EVO PRT3-on keresztül (TCP).

Közösségi sablon — valódi központon a TapHome-mal még nincs tesztelve. A sablon a TapHome portálon készült a PAI dokumentációjából, és csak szimulált PAI-jal és központtal tesztelték egy helyi TapHome Core 2025.2-n, valódi Paradox központtal nem. Ellenőrizd a saját telepítéseden, mielőtt a biztonság terén rá támaszkodnál; a gyakorlati tapasztalatokat szívesen fogadjuk. Az XML-t letöltheted ezen az oldalon vagy a TapHome portálon: Paradox PAI-on keresztül — közösségi sablon, és importáld új modulként.

Biztonság: aki a brókerre publikálhat, az hatástalaníthatja a riasztót. A PAI a központot a felhasználói kód nélkül élesíti és hatástalanítja. Kapcsold be az MQTT brókeren a felhasználónevet és a jelszót (a TapHome beépített brókere ezt támogatja), és add meg őket a PAI-ban és ebben a sablonban is.

Támogatott központok

SorozatModellekMegjegyzés
Spectra SPSP4000, SP5500, SP6000, SP7000, SP65A „+” modelleken (SP5500+, SP6000+, SP7000+) a soros port más gyártók eszközei számára zárolva van. A Paradox feloldókódot árul, vagy csatlakoztasd a PAI-t IP150-en keresztül
Magellan MGMG5000, MG5050, MG5050+, MG5075Az MG5050+ soros portja is zárolt. Az MG6250 a PAI-ban csak kísérleti
Digiplex EVOEVO48, EVO96, EVO192, EVOHDAz EVO 7.50-es és újabb firmware titkosítja a soros portot; a PAI 3.8 ezt a PC-jelszóval kezeli. Az EVO-n nincs Sleep élesítés

Hardveres csatlakozás

A PAI az alábbi módok egyikén csatlakozik a központhoz:

  • A központ soros portja — USB–TTL átalakítóval a PAI-t futtató számítógéphez, vagy ESP32 soros híddal a helyi hálózaton.
  • IP150 modul a helyi hálózaton. Az IP150 egyszerre csak egy klienst fogad: amíg a PAI csatlakozik, a Paradox Insite Gold és BlueEye alkalmazásai nem tudnak ugyanazon a modulon keresztül csatlakozni. Az IP150+ 6.x firmware-rel és az IP180 nem engedi a helyi csatlakozást.

A PAI-t futtató számítógépnek és a TapHome Core-nak ugyanazt az MQTT brókert kell elérnie — általában a TapHome Core beépített brókerét.

Konfiguráció

MQTT bróker a TapHome-ban

Kapcsold be a TapHome-ban az MQTT Broker szolgáltatást, és állíts be felhasználónevet és jelszót — lásd MQTT Broker. A PAI és ez a sablon ezekkel jelentkezik be a brókerre.

PAI

A PAI konfigurációjában irányítsd az MQTT-t arra a brókerre, amelyet a TapHome használ. A TapHome beépített brókere esetén ez a TapHome Core IP-címe — a taphome.mqtt.broker.local név csak a Core-on belül működik, a PAI számára nem:

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

Az MQTT_USE_NUMERIC_STATES maradhat az alapértéken (False); a sablon a True/False és az 1/0 értékeket is olvassa.

A partíció, a zónák és a PGM kulcsai

A PAI minden partíciót, zónát és PGM-et a központban megadott neve alapján nevez el, a szóközöket és a különleges karaktereket _ jelre cseréli (például Front door → Front_door). A kulcsokat a PAI indulása után olvasd ki a brókerről, például:

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

A partitions/, zones/ és outputs/ utáni rész a kulcs. A kulcsok megkülönböztetik a kis- és nagybetűket.

Importálási paraméterek

Importálási paraméterLeírásAlapérték
MQTT bróker címetaphome.mqtt.broker.local a TapHome beépített brókeréhez, vagy egy másik bróker címetaphome.mqtt.broker.local
MQTT bróker portjaA bróker portja1883
MQTT bróker felhasználóneve és jelszavaA bróker fiókja(üres)
PAI alaptémaA PAI MQTT_BASE_TOPIC értékeparadox
Partíció kulcsaA partíció kulcsaArea_1
1–4. zóna kulcsaNégy zóna kulcsaZone_1 … Zone_4
PGM kimenet kulcsaEgy PGM kimenet kulcsaPGM_1

További partíciókhoz vagy zónákhoz importáld újra a sablont más kulcsokkal, és töröld a felesleges eszközöket.

Az eszközök funkciói

Partíció

Mutatja a partíció állapotát, és élesíti vagy hatástalanítja.

ÁllapotPAI current_stateKiválasztáskor a TapHome-ban
Hatástalanítvadisarmeddisarm parancsot küld
Élesítvearmed_awayarm parancsot küld
Élesítve Stayarmed_homearm_stay parancsot küld
Élesítve Sleeparmed_nightarm_sleep parancsot küld (csak SP és MG)
Élesítésarming (kilépési késleltetés)nem küld semmit
Riasztástriggerednem küld semmit

A parancsok a paradox/control/partitions/<key> témába retain jelző nélkül kerülnek, ahogy a PAI megköveteli. Az Élesítés és a Riasztás a központ által jelentett állapot, és soha nem küld parancsot. A TapHome Core indulásakor a partíció az állapotát a PAI megőrzött (retained) üzenetéből veszi át, és nem küld semmit.

1–4. zóna

Minden zóna mutatja, hogy nyitott vagy zárt. Figyelmeztetés jelenik meg, ha a zóna riasztásban van, szabotálták vagy ki van iktatva, illetve ha egy vezeték nélküli zóna eleme gyenge. Minden figyelmeztetés addig marad, amíg a PAI nem jelenti, hogy az állapot megszűnt.

PGM kimenet

A központ egy PGM kimenetét kapcsolja be vagy ki, és mutatja az állapotát. Hogy a PGM kapcsolható-e, az a központtól és attól függ, hogyan programozta a telepítő. A TapHome Core indulásakor a PGM az állapotát a PAI-tól veszi át, és nem kapcsol.

Modul

A modul hibát mutat, ha a PAI offline állapotot jelent (paradox/interface/availability), például ha a PAI elvesztette a kapcsolatot a központtal, vagy leállt.

PAI nélkül

A központ TapHome bemenetre kötött PGM kimenete (élesítve, riasztás) és a központ kulcsos kapcsoló zónájára kötött TapHome relé minden Paradox központtal működik, kevesebb állapottal és zónarészletek nélkül.

Hibaelhárítás

Nincs állapot a TapHome-ban

Ellenőrizd, hogy a PAI fut és publikál-e (mosquitto_sub … -t 'paradox/#'), hogy az alaptéma és a kulcsok pontosan egyeznek-e, és hogy a PAI-ban be van-e kapcsolva az MQTT_RETAIN.

Az élesítés nem csinál semmit

Ellenőrizd, hogy a PAI és a TapHome ugyanazt a brókert használja-e, és olvasd el a PAI válaszát a paradox/interface/command_status témában. EVO-n az Élesítve Sleep nem érhető el.

„PAI reports offline” modulhiba

A PAI elvesztette a központot, vagy leállt; nézd meg a PAI naplóját.

A PAI nem csatlakozik a központhoz

Az SP5500+, SP6000+, SP7000+ és MG5050+ központokon a soros port zárolt — kérj feloldókódot a Paradoxtól, vagy csatlakozz IP150-en keresztül. Amíg a PAI IP150-en keresztül csatlakozik, zárd be az Insite Gold és a BlueEye alkalmazást. Az IP150+ 6.x firmware-rel és az IP180 nem engedi a PAI helyi csatlakozását.

Elérhető eszközök

Paradox PAI MQTT híd Modul
Egyéni változók
baseTopic (string)A PAI alaptémája (MQTT_BASE_TOPIC a PAI konfigurációjában), alapértelmezés: paradox
Enter the same value as MQTT_BASE_TOPIC in the PAI configuration as the import parameter PAI base topic.

Paradox PAI MQTT Bridge

Figyelő
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
Partíció Többértékű kapcsoló

A központ egy partíciójának állapota, élesítése és hatástalanítása; az Élesítés és a Riasztás csak megjelenik, nem küld semmit

enum string
Értékek / Állapotok: Hatástalanítva · Élesítve · Élesítve Stay · Élesítve Sleep · Élesítés · Riasztás
Változó: partitionKey — A partíció kulcsa, ahogy a PAI a paradox/states/partitions/<kulcs> témában közzéteszi, például Area_1

Partíció

Kapcsoló állapot olvasása
RETURN(Mu);
Kapcsoló állapot írása
# 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
Figyelő
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
Zóna 1 Reed kontaktus Csak olvasható

A központ egy zónájának állapota (nyitott vagy zárt), figyelmeztetéssel riasztásra, szabotázsra, vezeték nélküli zóna gyenge elemére és kiiktatásra

boolean
Változó: zoneKey — A zóna kulcsa, ahogy a PAI a paradox/states/zones/<kulcs> témában közzéteszi, például Front_door

Zóna 1

Olvasás
RETURN(Rc);
Figyelő
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
Zóna 2 Reed kontaktus Csak olvasható

A központ egy zónájának állapota (nyitott vagy zárt), figyelmeztetéssel riasztásra, szabotázsra, vezeték nélküli zóna gyenge elemére és kiiktatásra

boolean
Változó: zoneKey — A zóna kulcsa, ahogy a PAI a paradox/states/zones/<kulcs> témában közzéteszi, például Front_door

Zóna 2

Olvasás
RETURN(Rc);
Figyelő
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
Zóna 3 Reed kontaktus Csak olvasható

A központ egy zónájának állapota (nyitott vagy zárt), figyelmeztetéssel riasztásra, szabotázsra, vezeték nélküli zóna gyenge elemére és kiiktatásra

boolean
Változó: zoneKey — A zóna kulcsa, ahogy a PAI a paradox/states/zones/<kulcs> témában közzéteszi, például Front_door

Zóna 3

Olvasás
RETURN(Rc);
Figyelő
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
Zóna 4 Reed kontaktus Csak olvasható

A központ egy zónájának állapota (nyitott vagy zárt), figyelmeztetéssel riasztásra, szabotázsra, vezeték nélküli zóna gyenge elemére és kiiktatásra

boolean
Változó: zoneKey — A zóna kulcsa, ahogy a PAI a paradox/states/zones/<kulcs> témában közzéteszi, például Front_door

Zóna 4

Olvasás
RETURN(Rc);
Figyelő
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 kimenet Kapcsoló

A központ egy programozható kimenetét (PGM) kapcsolja be vagy ki, és mutatja az állapotát

boolean
Értékek / Állapotok: ON · OFF
Változó: outputKey — A PGM kimenet kulcsa, ahogy a PAI a paradox/states/outputs/<kulcs> témában közzéteszi

PGM kimenet

Kapcsoló állapot olvasása
RETURN(St);
Kapcsoló állapot írása
MQTTPUBLISH(baseTopic + "/control/outputs/" + outputKey, IF(St = 1, "on", "off"));
Figyelő
IF RECEIVEDMSG.TOPIC = baseTopic + "/states/outputs/" + outputKey + "/on"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);
    St := IF(payload = "True" OR payload = "1", 1, 0);
END
Kapcsolat: Packet Parser → MQTT
Lehetséges fejlesztések (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.

Források

  • 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

Talált problémát ezzel az eszközsablonnal?

Írja meg, mi nem működik, mi hiányzik, vagy hogyan kellene a sablonnak viselkednie. Visszajelzése segít, hogy a katalógus pontos maradjon.

Közösség — felülvizsgálatlan

Használni szeretnéd ezt a TapHome Core-odban?

Nyisd meg ezt a sablont az ügyfélportálon, hogy alkalmazd az otthonaid egyikére, vagy készíts egy módosítást és küldd vissza a katalógusba.

Megnyitás a portálon