TapHome

Paradox Digiplex EVO prin PRT3 (TCP)

Packet Parser → TCP
Trimis de
Ultima actualizare: 11. 2026

Necesită gateway extern

Paradox PRT3 (APR-PRT3) printer and home automation module, or BUS2SER, with an RS-232-to-Ethernet converter — pagina produsului

Paradox Digiplex EVO prin PRT3 (TCP)

Șablonul Paradox EVO PRT3 conectează o centrală de alarmă Paradox Digiplex EVO la TapHome prin modulul PRT3 și protocolul ASCII oficial Paradox. PRT3 este conectat la magistrala combus a centralei și oferă protocolul pe portul său serial cu 9 pini. Un convertor RS-232–Ethernet face acest port accesibil în rețeaua locală, iar TapHome se conectează la convertor prin TCP — nu este nevoie de un computer între ele.

Șablonul afișează starea de armare a unei partiții și o armează sau o dezarmează cu un cod de utilizator, afișează patru zone cu avertizările lor și un PGM virtual și afișează o eroare când PRT3 pierde legătura cu centrala.

PRT3 funcționează ca interfață de automatizare a locuinței doar cu centralele Digiplex EVO. Pentru centralele Spectra SP și Magellan MG folosiți șablonul comunității Centrale de alarmă Paradox prin PAI (MQTT).

Șablon al comunității — încă netestat cu TapHome pe o centrală reală. Șablonul a fost scris după manualul oficial al protocolului ASCII Paradox (ASCII-EP01) și a fost testat doar cu un PRT3 simulat pe un TapHome Core 2025.2 local, nu cu o centrală Digiplex EVO reală cu un PRT3 și un convertor reale. Verificați-l pe instalația dumneavoastră înainte de a vă baza pe el pentru securitate; experiența din teren este binevenită. Descărcați fișierul XML de pe această pagină sau din portalul TapHome: Paradox EVO prin PRT3 — șablon al comunității, și importați-l ca modul nou.

Securitate: codul de utilizator este stocat în TapHome și circulă necriptat. PRT3 armează și dezarmează doar cu un cod de utilizator, iar șablonul trimite acest cod cu fiecare comandă de armare și dezarmare. Codul este stocat în configurația TapHome și circulă necriptat prin rețeaua locală între TapHome Core și convertor. Creați în centrală un utilizator separat pentru TapHome, limitat la partițiile pe care le controlează TapHome, și folosiți codul acestuia — niciodată codul master.

Centrale suportate

CentralăCerință
Digiplex EVO48, EVO96, EVO192, EVOHDPRT3 (sau BUS2SER) în modul de automatizare a locuinței, cu protocolul ASCII
DGP-848versiunea 4.11 sau mai nouă
DGP-NE96versiunea 1.60 sau mai nouă

Centralele Spectra SP și Magellan MG nu au o interfață oficială de automatizare a locuinței — vedeți Centrale de alarmă Paradox prin PAI (MQTT).

Conexiune hardware

  • PRT3 la centrală: conectați cele patru borne ale PRT3 (roșu, negru, verde, galben) la bornele magistralei combus a centralei.
  • Convertor la PRT3: conectați partea RS-232 a convertorului la portul serial cu 9 pini al PRT3 — nu la portul paralel și nici la portul USB.
  • Convertor în rețea: setați convertorul în modul server TCP cu o adresă IP fixă și un port TCP. TapHome se conectează la el ca client TCP și ține conexiunea deschisă.

Parametrii seriali sunt 8N1 (8 biți de date, fără paritate, 1 bit de stop). Convertorul trebuie să folosească exact aceeași viteză ca PRT3 — la o altă viteză TapHome nu primește nimic.

Configurare

Modul de automatizare a locuinței al PRT3

Programați PRT3 de la o tastatură a centralei:

  1. Țineți apăsat [0] și introduceți codul de instalator.
  2. Introduceți secțiunea [4003] la centralele EVO sau [953] la centralele DGP-848.
  3. Introduceți numărul de serie de 8 cifre al PRT3.
  4. Introduceți secțiunea [016] (opțiunile portului serial) și setați:
OpțiuneSetareSemnificație
[1]PORNITPort serial activat
[4]PORNITAutomatizarea locuinței (nu raportarea evenimentelor)
[5] și [6]OPRIT și OPRITProtocol ASCII (nu C-Bus)
[2] și [3]conform manualului PRT3Viteză: 2400, 9600, 19200 sau 57600 bps — setați aceeași viteză pe convertor

PRT3 se poate programa și cu software-ul WinLoad (versiunea 2.62 sau mai nouă) sau cu funcția de transmitere către module (module broadcast) a centralei.

PGM virtual

PGM-ul virtual al șablonului este un PGM virtual al PRT3, nu o ieșire PGM fizică a centralei. Programați-l în PRT3 cu evenimentele centralei care îl pornesc și îl opresc (secțiunile [100] până la [399], zece secțiuni pentru fiecare PGM virtual), astfel încât PRT3 să trimită starea lui către TapHome.

Utilizator pentru TapHome

Creați în centrală un utilizator separat pentru TapHome, dați-i acces doar la partițiile pe care TapHome le armează și le dezarmează și introduceți codul lui (4 până la 6 cifre) la import. Șablonul trimite acest cod cu fiecare comandă de armare și dezarmare, de aceea parametrul nu trebuie să rămână gol.

Parametri de import

Parametru de importDescriereImplicit
Adresa IP a convertoruluiAdresa IP a convertorului RS-232–Ethernet în modul server TCP192.168.1.100
Portul TCP al convertoruluiPortul TCP al convertorului4001
Numărul partițieiPartiția în centrală, trei cifre (001 până la 008)001
Numerele zonelor 1–4Zonele în centrală, trei cifre (001 până la 192)001 … 004
Numărul PGM-ului virtualPGM-ul virtual al PRT3, două cifre (01 până la 30)01
Cod de utilizatorCodul utilizatorului centralei creat pentru TapHome(gol)

Pentru alte partiții sau zone importați din nou șablonul cu alte numere și ștergeți dispozitivele de care nu aveți nevoie. Fiecare import deschide propria conexiune TCP, așa că verificați dacă convertorul acceptă mai mult de una.

Funcțiile dispozitivelor

Partiție

Afișează starea partiției și o armează sau o dezarmează.

StareCând o selectați în TapHome
Dezarmatdezarmează partiția cu codul de utilizator
Armatarmează partiția
Armat Forcearmează forțat partiția (Force)
Armat Stayarmează partiția în modul Stay
Armat Instantarmează partiția în modul Instant
Alarmănu trimite nimic — starea doar afișează o alarmă raportată de centrală

După fiecare comandă șablonul cere din nou starea partiției. Dispozitivul Partiție afișează o avertizare când centrala a refuzat ultima comandă de armare sau dezarmare (de obicei un cod de utilizator greșit), când partiția are un defect și când o alarmă este în memorie. La pornirea TapHome Core șablonul nu trimite nicio comandă de armare sau dezarmare — partiția preia starea din următorul răspuns al centralei.

Zonele 1–4

Fiecare zonă arată dacă este închisă sau deschisă; o zonă sabotată și o zonă cu defect al buclei de incendiu contează ca neînchise. Avertizările apar când zona este în alarmă, în alarmă de incendiu, sabotată, are un defect al buclei de incendiu, a pierdut supravegherea sau are bateria descărcată. Fiecare avertizare rămâne până când centrala raportează zona ca fiind în regulă.

PGM virtual

Afișează starea unui PGM virtual al PRT3. Starea se schimbă doar când PRT3 raportează o schimbare; protocolul nu are o interogare pentru starea unui PGM virtual, așa că după o pornire a TapHome Core dispozitivul nu are valoare până la următoarea schimbare. TapHome nu comută PGM-ul virtual.

Modul

Șablonul cere starea partiției și a celor patru zone la fiecare 5 secunde. Modulul afișează o eroare când PRT3 raportează că a pierdut comunicarea cu centrala și o șterge când comunicarea revine. Când convertorul nu este accesibil, TapHome afișează eroarea obișnuită de conexiune a modulului.

Ce nu are șablonul

  • Panică și resetarea detectoarelor de fum — omise intenționat: panica de urgență, medicală și de incendiu ar declanșa o raportare reală de alarmă.
  • Ocolirea zonelor și comanda directă a ieșirilor PGM fizice — PRT3 nu le suportă.
  • Numele zonelor și partițiilor — șablonul folosește doar numere.
  • Intrările virtuale și tastele funcționale ale PRT3.

Depanare

Nicio valoare în TapHome

Verificați dacă convertorul este accesibil la adresa IP și portul din import, dacă convertorul și PRT3 folosesc aceeași viteză și dacă secțiunea [016] are opțiunile [1] și [4] PORNIT și opțiunile [5] și [6] OPRIT.

Armarea sau dezarmarea nu face nimic

O avertizare pe dispozitivul Partiție că centrala a refuzat comanda înseamnă un cod de utilizator greșit sau un utilizator fără acces la partiție. Verificați în centrală codul utilizatorului TapHome și partițiile lui.

Eroare de modul despre comunicarea cu centrala

PRT3 a pierdut legătura combus cu centrala. Verificați cablarea celor patru borne combus.

O zonă afișează o stare greșită

Verificați dacă numărul zonei din import este numărul zonei în centrală, întotdeauna cu trei cifre (zona 5 este 005).

Dispozitive disponibile

Paradox PRT3 Modul
Variabile personalizate
AreaNum (string)Numărul partiției în centrală, trei cifre (001 până la 008)
Enter the area number with three digits (area 1 = 001) as the import parameter Area number.
Zone1Num (string)Numărul zonei 1 în centrală, trei cifre (001 până la 192)
Zone2Num (string)Numărul zonei 2 în centrală, trei cifre (001 până la 192)
Zone3Num (string)Numărul zonei 3 în centrală, trei cifre (001 până la 192)
Zone4Num (string)Numărul zonei 4 în centrală, trei cifre (001 până la 192)
PgmNum (string)Numărul PGM-ului virtual programat în PRT3, două cifre (01 până la 30)
Program the virtual PGM in the PRT3 (activation and deactivation event) and enter its number with two digits (01) as the import parameter Virtual PGM number.
UserCode (string)Codul unui utilizator separat al centralei creat pentru TapHome (4 până la 6 cifre), nu codul master; este trimis necriptat cu fiecare comandă de armare și dezarmare
Create a separate user in the panel for TapHome, limited to the areas TapHome controls, and enter its code as the import parameter User code. Do not use the master code.

Paradox PRT3

Citire (modul)
# Poll the area and the four zones; every command ends with CR (framing)
SENDDATA("RA" + AreaNum);
SENDDATA("RZ" + Zone1Num);
SENDDATA("RZ" + Zone2Num);
SENDDATA("RZ" + Zone3Num);
SENDDATA("RZ" + Zone4Num);
Ascultător
VAR msg := TOSTRING(RECEIVEDBYTES);
IF INDEXOF(msg, "COMM&fail") = 0
    CommFail := 1;
END
IF INDEXOF(msg, "COMM&ok") = 0
    CommFail := 0;
END
IF CommFail = 1
    ADDERROR(1, "PRT3 reports COMM&fail: no communication between the PRT3 module and the panel");
END
Partiție Comutator cu mai multe valori

Starea unei partiții a centralei și armarea sau dezarmarea ei cu codul de utilizator; Alarmă este doar afișată și nu trimite nimic

enum ascii
Valori / Stări: Dezarmat · Armat · Armat Force · Armat Stay · Armat Instant · Alarmă

Partiție

Citirea stării comutatorului
RETURN(Mu);
Scrierea stării comutatorului
# Alarm (5) is reported by the panel and is never a command
IF Mu = 0
    SENDDATA("AD" + AreaNum + UserCode);
ELSEIF Mu = 1
    SENDDATA("AA" + AreaNum + "A" + UserCode);
ELSEIF Mu = 2
    SENDDATA("AA" + AreaNum + "F" + UserCode);
ELSEIF Mu = 3
    SENDDATA("AA" + AreaNum + "S" + UserCode);
ELSEIF Mu = 4
    SENDDATA("AA" + AreaNum + "I" + UserCode);
END
IF Mu < 5
    SENDDATA("RA" + AreaNum);
END
Ascultător
VAR msg := TOSTRING(RECEIVEDBYTES);
# Area status: RA<nnn> + state (D, A, F, S, I) + M T N P A S, each O when OK
IF INDEXOF(msg, "RA" + AreaNum) = 0 AND LENGTH(msg) >= 12
    VAR st := GETAT(RECEIVEDBYTES, 5);
    IF GETAT(RECEIVEDBYTES, 10) = 65
        Mu := 5;
    ELSEIF st = 68
        Mu := 0;
    ELSEIF st = 65
        Mu := 1;
    ELSEIF st = 70
        Mu := 2;
    ELSEIF st = 83
        Mu := 3;
    ELSEIF st = 73
        Mu := 4;
    END
    AreaMemory := IF(GETAT(RECEIVEDBYTES, 6) = 77, 1, 0);
    AreaTrouble := IF(GETAT(RECEIVEDBYTES, 7) = 84, 1, 0);
END
# Answer to an arming or disarming command of this area
IF INDEXOF(msg, "AA" + AreaNum) = 0 OR INDEXOF(msg, "AD" + AreaNum) = 0
    CodeFailed := IF(INDEXOF(msg, "&fail") > 0, 1, 0);
END
IF CodeFailed = 1
    ADDWARNING(1, "The panel refused the last arming or disarming command (&fail): check the user code");
END
IF AreaTrouble = 1
    ADDWARNING(2, "Trouble in the area");
END
IF AreaMemory = 1
    ADDWARNING(3, "Alarm in memory");
END
Zona 1 Contact reed Doar citire

Starea unei zone a centralei (închisă sau deschisă), cu avertizări pentru alarmă, alarmă de incendiu, sabotaj, defect al buclei de incendiu, pierderea supravegherii și baterie descărcată

boolean ascii
Variabilă: ZoneNum — Numărul zonei în centrală, trei cifre (001 până la 192)

Zona 1

Citire
RETURN(Rc);
Ascultător
VAR msg := TOSTRING(RECEIVEDBYTES);
# Zone status: RZ<nnn> + C, O, T, F + A F S L, each O when OK
IF INDEXOF(msg, "RZ" + ZoneNum) = 0 AND LENGTH(msg) >= 10
    VAR st := GETAT(RECEIVEDBYTES, 5);
    Rc := IF(st = 67, 0, 1);
    ZTamper := IF(st = 84, 1, 0);
    ZFireLoop := IF(st = 70, 1, 0);
    ZAlarm := IF(GETAT(RECEIVEDBYTES, 6) = 65, 1, 0);
    ZFire := IF(GETAT(RECEIVEDBYTES, 7) = 70, 1, 0);
    ZSupervision := IF(GETAT(RECEIVEDBYTES, 8) = 83, 1, 0);
    ZBattery := IF(GETAT(RECEIVEDBYTES, 9) = 76, 1, 0);
END
# Warnings are rebuilt from the stored zone state on every message
IF ZAlarm = 1
    ADDWARNING(1, "Zone in alarm");
END
IF ZFire = 1
    ADDWARNING(2, "Fire alarm");
END
IF ZTamper = 1
    ADDWARNING(3, "Zone tampered");
END
IF ZFireLoop = 1
    ADDWARNING(4, "Fire loop trouble");
END
IF ZSupervision = 1
    ADDWARNING(5, "Supervision lost");
END
IF ZBattery = 1
    ADDWARNING(6, "Low battery");
END
Zona 2 Contact reed Doar citire

Starea unei zone a centralei (închisă sau deschisă), cu avertizări pentru alarmă, alarmă de incendiu, sabotaj, defect al buclei de incendiu, pierderea supravegherii și baterie descărcată

boolean ascii
Variabilă: ZoneNum — Numărul zonei în centrală, trei cifre (001 până la 192)

Zona 2

Citire
RETURN(Rc);
Ascultător
VAR msg := TOSTRING(RECEIVEDBYTES);
# Zone status: RZ<nnn> + C, O, T, F + A F S L, each O when OK
IF INDEXOF(msg, "RZ" + ZoneNum) = 0 AND LENGTH(msg) >= 10
    VAR st := GETAT(RECEIVEDBYTES, 5);
    Rc := IF(st = 67, 0, 1);
    ZTamper := IF(st = 84, 1, 0);
    ZFireLoop := IF(st = 70, 1, 0);
    ZAlarm := IF(GETAT(RECEIVEDBYTES, 6) = 65, 1, 0);
    ZFire := IF(GETAT(RECEIVEDBYTES, 7) = 70, 1, 0);
    ZSupervision := IF(GETAT(RECEIVEDBYTES, 8) = 83, 1, 0);
    ZBattery := IF(GETAT(RECEIVEDBYTES, 9) = 76, 1, 0);
END
# Warnings are rebuilt from the stored zone state on every message
IF ZAlarm = 1
    ADDWARNING(1, "Zone in alarm");
END
IF ZFire = 1
    ADDWARNING(2, "Fire alarm");
END
IF ZTamper = 1
    ADDWARNING(3, "Zone tampered");
END
IF ZFireLoop = 1
    ADDWARNING(4, "Fire loop trouble");
END
IF ZSupervision = 1
    ADDWARNING(5, "Supervision lost");
END
IF ZBattery = 1
    ADDWARNING(6, "Low battery");
END
Zona 3 Contact reed Doar citire

Starea unei zone a centralei (închisă sau deschisă), cu avertizări pentru alarmă, alarmă de incendiu, sabotaj, defect al buclei de incendiu, pierderea supravegherii și baterie descărcată

boolean ascii
Variabilă: ZoneNum — Numărul zonei în centrală, trei cifre (001 până la 192)

Zona 3

Citire
RETURN(Rc);
Ascultător
VAR msg := TOSTRING(RECEIVEDBYTES);
# Zone status: RZ<nnn> + C, O, T, F + A F S L, each O when OK
IF INDEXOF(msg, "RZ" + ZoneNum) = 0 AND LENGTH(msg) >= 10
    VAR st := GETAT(RECEIVEDBYTES, 5);
    Rc := IF(st = 67, 0, 1);
    ZTamper := IF(st = 84, 1, 0);
    ZFireLoop := IF(st = 70, 1, 0);
    ZAlarm := IF(GETAT(RECEIVEDBYTES, 6) = 65, 1, 0);
    ZFire := IF(GETAT(RECEIVEDBYTES, 7) = 70, 1, 0);
    ZSupervision := IF(GETAT(RECEIVEDBYTES, 8) = 83, 1, 0);
    ZBattery := IF(GETAT(RECEIVEDBYTES, 9) = 76, 1, 0);
END
# Warnings are rebuilt from the stored zone state on every message
IF ZAlarm = 1
    ADDWARNING(1, "Zone in alarm");
END
IF ZFire = 1
    ADDWARNING(2, "Fire alarm");
END
IF ZTamper = 1
    ADDWARNING(3, "Zone tampered");
END
IF ZFireLoop = 1
    ADDWARNING(4, "Fire loop trouble");
END
IF ZSupervision = 1
    ADDWARNING(5, "Supervision lost");
END
IF ZBattery = 1
    ADDWARNING(6, "Low battery");
END
Zona 4 Contact reed Doar citire

Starea unei zone a centralei (închisă sau deschisă), cu avertizări pentru alarmă, alarmă de incendiu, sabotaj, defect al buclei de incendiu, pierderea supravegherii și baterie descărcată

boolean ascii
Variabilă: ZoneNum — Numărul zonei în centrală, trei cifre (001 până la 192)

Zona 4

Citire
RETURN(Rc);
Ascultător
VAR msg := TOSTRING(RECEIVEDBYTES);
# Zone status: RZ<nnn> + C, O, T, F + A F S L, each O when OK
IF INDEXOF(msg, "RZ" + ZoneNum) = 0 AND LENGTH(msg) >= 10
    VAR st := GETAT(RECEIVEDBYTES, 5);
    Rc := IF(st = 67, 0, 1);
    ZTamper := IF(st = 84, 1, 0);
    ZFireLoop := IF(st = 70, 1, 0);
    ZAlarm := IF(GETAT(RECEIVEDBYTES, 6) = 65, 1, 0);
    ZFire := IF(GETAT(RECEIVEDBYTES, 7) = 70, 1, 0);
    ZSupervision := IF(GETAT(RECEIVEDBYTES, 8) = 83, 1, 0);
    ZBattery := IF(GETAT(RECEIVEDBYTES, 9) = 76, 1, 0);
END
# Warnings are rebuilt from the stored zone state on every message
IF ZAlarm = 1
    ADDWARNING(1, "Zone in alarm");
END
IF ZFire = 1
    ADDWARNING(2, "Fire alarm");
END
IF ZTamper = 1
    ADDWARNING(3, "Zone tampered");
END
IF ZFireLoop = 1
    ADDWARNING(4, "Fire loop trouble");
END
IF ZSupervision = 1
    ADDWARNING(5, "Supervision lost");
END
IF ZBattery = 1
    ADDWARNING(6, "Low battery");
END
PGM virtual Contact reed Doar citire

Starea unui PGM virtual al PRT3, pornit și oprit de evenimentele centralei programate pentru el; doar raportează către TapHome

boolean ascii

PGM virtual

Citire
RETURN(Rc);
Ascultător
VAR msg := TOSTRING(RECEIVEDBYTES);
IF INDEXOF(msg, "PGM" + PgmNum + "ON") = 0
    Rc := 1;
END
IF INDEXOF(msg, "PGM" + PgmNum + "OFF") = 0
    Rc := 0;
END
Conexiune: Packet Parser → TCP
Îmbunătățiri posibile (8)
  • Emergency, medical and fire panic — Left out on purpose: a panic command triggers a real alarm report.
  • Smoke detector reset — Left out on purpose.
  • Virtual inputs 1–16 — TapHome could open and close virtual inputs of the PRT3 to trigger actions in the panel; not in the template.
  • Zone, area and user labels — The panel returns 16-character labels; the template uses numbers only.
  • Utility keys — Utility key commands of the PRT3, not in the template.
  • System events — The PRT3 sends live events (zone open, arming, alarm); the template reads states by polling every 5 s instead.
  • Zone bypass and direct control of physical PGM outputs — The PRT3 ASCII protocol has no command for either.
  • More areas and zones — The template has one area, four zones and one virtual PGM. Import it again with other numbers for more; the converter usually accepts one TCP client, so check whether it allows a second connection.

Surse

  • Paradox APR-PRT3 Printer Module — ASCII Protocol Programming Instructions (ASCII-EP01)

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Comunitate — neverificat

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal