Il Satel ETHM-1 Plus è un modulo di comunicazione Ethernet che collega le centrali di allarme Satel a una rete TCP/IP. TapHome comunica con il modulo tramite TCP utilizzando il protocollo di integrazione aperto Satel sulla porta 7094 (predefinita). Il modulo funge da gateway di rete tra TapHome e la centrale di allarme.
Il template fornisce il monitoraggio in sola lettura di fino a 128 zone di allarme. Ogni zona è mappata su un dispositivo contatto reed che segnala se la zona è violata (aperta) o normale (chiusa). Questo copre sensori porta/finestra, rilevatori di movimento e qualsiasi altro tipo di sensore assegnato alle zone nel sistema di allarme.
Collegamento hardware
Il modulo ETHM-1 Plus si collega alla centrale di allarme tramite il bus di comunicazione (linee dati e clock DTM e CKM) e alla rete locale tramite un cavo Ethernet standard (RJ-45, 100Base-TX).
Cablaggio alla centrale di allarme
Collega i terminali del modulo ETHM-1 Plus ai terminali della centrale di allarme come segue:
ETHM-1 Plus
INTEGRA / INTEGRA Plus
PERFECTA 64 M / VERSA
+12V
+KPD
KPD
COM
COM
COM
DTM
DTM
DTA
CKM
CKM
CLK
Per il collegamento del bus utilizza un cavo non schermato e non intrecciato. Se si utilizza un cavo a coppie intrecciate, i segnali CKM (clock) e DTM (dati) non devono essere trasmessi attraverso la stessa coppia intrecciata.
Indirizzo del modulo
Imposta l’indirizzo del modulo tramite i jumper ADDRESS sulla scheda:
INTEGRA 24 / INTEGRA 32: indirizzo da 0 a 3
Altre INTEGRA / INTEGRA Plus: indirizzo da 0 a 7
PERFECTA 64 M: indirizzo 6
VERSA: indirizzo 4 (nessuna tastiera con indirizzo 4 può essere collegata)
L’indirizzo deve essere diverso da qualsiasi altro dispositivo sul bus delle tastiere.
Connessione Ethernet
Collega il modulo alla rete locale tramite un cavo Ethernet standard (100Base-TX). Il modulo supporta DHCP per l’assegnazione automatica dell’IP o la configurazione manuale dell’IP statico.
Il modulo non deve essere collegato direttamente a una rete pubblica (MAN, WAN). Utilizza sempre un router o un modem xDSL. Installa il modulo nello stesso contenitore della centrale.
Configurazione
Abilitazione del protocollo di integrazione
Il protocollo di integrazione deve essere abilitato nel programma di installazione DLOADX prima che TapHome possa connettersi:
Apri il programma DLOADX (versione 1.22.000 o successiva)
Naviga su Struttura → Hardware → Tastiere
Seleziona il modulo ETHM-1 Plus
Nella sezione Integrazione, abilita la casella Integrazione
Disabilita la casella Integrazione crittografata — TapHome si connette tramite integrazione non crittografata
Annota il numero della Porta — il valore predefinito è 7094
Salva la configurazione nella centrale
L’integrazione crittografata non è supportata. L’opzione “Integrazione crittografata” deve rimanere disabilitata in DLOADX.
Configurazione di rete
L’indirizzo IP del modulo può essere trovato o configurato in DLOADX nella sezione Impostazioni di rete del modulo ETHM-1 Plus. Se DHCP è abilitato, l’IP viene assegnato automaticamente. L’IP corrente può essere letto anche dalla tastiera LCD utilizzando la funzione IP/MAC/IMEI/ID nel sottomenu TEST.
Assegna un indirizzo IP statico al modulo ETHM-1 Plus o crea una prenotazione DHCP. Un indirizzo IP che cambia interromperà la connessione TapHome.
Centrali di allarme compatibili
Il protocollo di integrazione richiede versioni firmware specifiche:
Centrale
Firmware minimo
INTEGRA Plus
1.06
INTEGRA
1.06
PERFECTA 64 M
Integrazione non supportata
VERSA
Integrazione non supportata
Il protocollo di integrazione è disponibile solo sulle centrali INTEGRA Plus e INTEGRA. Le centrali PERFECTA 64 M e VERSA supportano il modulo ETHM-1 Plus per la programmazione remota e l’accesso tramite app mobile, ma non supportano il protocollo di integrazione aperto utilizzato da TapHome.
Funzionalità del dispositivo
Monitoraggio zone
Il template monitora 128 zone di allarme come singoli dispositivi contatto reed. Ogni zona riporta uno stato booleano:
Violata (aperta) — il sensore della zona è stato attivato (porta aperta, movimento rilevato ecc.)
Normale (chiusa) — il sensore della zona è nello stato di riposo
Gli stati delle zone vengono ricevuti come una bitmask di 16 byte. TapHome invia un comando binario (0x00) e la centrale di allarme risponde con gli stati di violazione delle zone impacchettati come bit — zone 1–8 nel byte 1, zone 9–16 nel byte 2 e così via fino alle zone 121–128 nel byte 16.
Il numero effettivo di zone utilizzabili dipende dal modello della centrale di allarme:
Centrale
Zone massime
INTEGRA 24
24
INTEGRA 32
32
INTEGRA 64 / 64 Plus
64
INTEGRA 128 / 128 Plus
128
INTEGRA 256 Plus
128 (limite template)
Le zone oltre la capacità della centrale rimarranno nello stato normale (chiuso). Dopo aver importato il template, rinomina ogni dispositivo zona in TapHome in base alla sua funzione nel sistema di allarme (es. “Zona 1” → “Porta d’ingresso”, “Zona 2” → “Movimento soggiorno”).
Funzionalità aggiuntive
Il sistema di allarme Satel INTEGRA supporta anche l’inserimento/disinserimento delle partizioni, il controllo delle uscite (sirene, luci), gli stati di sabotaggio e allarme delle zone, la gestione dell’esclusione delle zone, la segnalazione dei guasti di sistema, l’accesso al registro eventi, il controllo delle tapparelle e la lettura dei sensori di temperatura wireless (ATD-100). Queste funzionalità sono disponibili tramite il protocollo di integrazione e potranno essere aggiunte in un futuro aggiornamento del template.
Risoluzione dei problemi
TapHome non riesce a connettersi al modulo
Verifica che l’opzione Integrazione sia abilitata in DLOADX e che Integrazione crittografata sia disabilitata
Conferma l’indirizzo IP e la porta corretti (predefinita 7094)
Verifica che nessun altro client (Home Assistant, openHAB, GUARDX) sia già connesso — solo un client può connettersi alla porta di integrazione alla volta
Controlla che il firmware della centrale INTEGRA sia versione 1.06 o successiva
Controlla il firmware del modulo ETHM-1 Plus — per l’integrazione si raccomanda la versione 2.00 o successiva
La connessione si interrompe dopo ~25 secondi
L’ETHM-1 Plus (firmware v2.03+) disconnette i client dopo 25 secondi di inattività. Assicurati che l’intervallo di polling di TapHome sia inferiore a 25 secondi.
Il modulo non è visibile in DLOADX
Verifica che l’indirizzo del modulo sia correttamente impostato tramite i jumper ADDRESS e non sia in conflitto con altri dispositivi sul bus
Controlla i collegamenti DTM, CKM, COM e +12V alla centrale
Verifica che il LED PWR/LOG sia acceso (alimentazione OK) e il LED BUS lampeggi (scambio dati attivo)
Indirizzo IP errato dopo il rinnovo DHCP
Se il modulo utilizza DHCP e il router assegna un nuovo IP, TapHome perderà la connettività. Imposta un IP statico in DLOADX o configura una prenotazione DHCP sul router.
Dopo 3 tentativi di connessione consecutivi falliti con una chiave errata, il modulo smette di rispondere per circa 20 minuti da quell’indirizzo IP. Attendi la scadenza del blocco o riavvia il modulo.
Dispositivi disponibili
Satel INTEGRAModulo
Satel
Lettura (modulo)
SENDDATA(BYTECOLLECTION("00"));
Zona 1Contatto reedSolo lettura
booleanbitmask
Zona 1
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x01) > 0;
END
Zona 2Contatto reedSolo lettura
booleanbitmask
Zona 2
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x02) > 0;
END
Zona 3Contatto reedSolo lettura
booleanbitmask
Zona 3
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x04) > 0;
END
Zona 4Contatto reedSolo lettura
booleanbitmask
Zona 4
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x08) > 0;
END
Zona 5Contatto reedSolo lettura
booleanbitmask
Zona 5
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x10) > 0;
END
Zona 6Contatto reedSolo lettura
booleanbitmask
Zona 6
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x20) > 0;
END
Zona 7Contatto reedSolo lettura
booleanbitmask
Zona 7
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x40) > 0;
END
Zona 8Contatto reedSolo lettura
booleanbitmask
Zona 8
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x80) > 0;
END
Zona 9Contatto reedSolo lettura
booleanbitmask
Zona 9
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x01) > 0;
END
Zona 10Contatto reedSolo lettura
booleanbitmask
Zona 10
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x02) > 0;
END
Zona 11Contatto reedSolo lettura
booleanbitmask
Zona 11
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x04) > 0;
END
Zona 12Contatto reedSolo lettura
booleanbitmask
Zona 12
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x08) > 0;
END
Zona 13Contatto reedSolo lettura
booleanbitmask
Zona 13
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x10) > 0;
END
Zona 14Contatto reedSolo lettura
booleanbitmask
Zona 14
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x20) > 0;
END
Zona 15Contatto reedSolo lettura
booleanbitmask
Zona 15
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x40) > 0;
END
Zona 16Contatto reedSolo lettura
booleanbitmask
Zona 16
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x80) > 0;
END
Zona 17Contatto reedSolo lettura
booleanbitmask
Zona 17
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x01) > 0;
END
Zona 18Contatto reedSolo lettura
booleanbitmask
Zona 18
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x02) > 0;
END
Zona 19Contatto reedSolo lettura
booleanbitmask
Zona 19
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x04) > 0;
END
Zona 20Contatto reedSolo lettura
booleanbitmask
Zona 20
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x08) > 0;
END
Zona 21Contatto reedSolo lettura
booleanbitmask
Zona 21
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x10) > 0;
END
Zona 22Contatto reedSolo lettura
booleanbitmask
Zona 22
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x20) > 0;
END
Zona 23Contatto reedSolo lettura
booleanbitmask
Zona 23
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x40) > 0;
END
Zona 24Contatto reedSolo lettura
booleanbitmask
Zona 24
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x80) > 0;
END
Zona 25Contatto reedSolo lettura
booleanbitmask
Zona 25
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x01) > 0;
END
Zona 26Contatto reedSolo lettura
booleanbitmask
Zona 26
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x02) > 0;
END
Zona 27Contatto reedSolo lettura
booleanbitmask
Zona 27
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x04) > 0;
END
Zona 28Contatto reedSolo lettura
booleanbitmask
Zona 28
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x08) > 0;
END
Zona 29Contatto reedSolo lettura
booleanbitmask
Zona 29
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x10) > 0;
END
Zona 30Contatto reedSolo lettura
booleanbitmask
Zona 30
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x20) > 0;
END
Zona 31Contatto reedSolo lettura
booleanbitmask
Zona 31
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x40) > 0;
END
Zona 32Contatto reedSolo lettura
booleanbitmask
Zona 32
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x80) > 0;
END
Zona 33Contatto reedSolo lettura
booleanbitmask
Zona 33
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x01) > 0;
END
Zona 34Contatto reedSolo lettura
booleanbitmask
Zona 34
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x02) > 0;
END
Zona 35Contatto reedSolo lettura
booleanbitmask
Zona 35
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x04) > 0;
END
Zona 36Contatto reedSolo lettura
booleanbitmask
Zona 36
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x08) > 0;
END
Zona 37Contatto reedSolo lettura
booleanbitmask
Zona 37
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x10) > 0;
END
Zona 38Contatto reedSolo lettura
booleanbitmask
Zona 38
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x20) > 0;
END
Zona 39Contatto reedSolo lettura
booleanbitmask
Zona 39
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x40) > 0;
END
Zona 40Contatto reedSolo lettura
booleanbitmask
Zona 40
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x80) > 0;
END
Zona 41Contatto reedSolo lettura
booleanbitmask
Zona 41
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x01) > 0;
END
Zona 42Contatto reedSolo lettura
booleanbitmask
Zona 42
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x02) > 0;
END
Zona 43Contatto reedSolo lettura
booleanbitmask
Zona 43
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x04) > 0;
END
Zona 44Contatto reedSolo lettura
booleanbitmask
Zona 44
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x08) > 0;
END
Zona 45Contatto reedSolo lettura
booleanbitmask
Zona 45
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x10) > 0;
END
Zona 46Contatto reedSolo lettura
booleanbitmask
Zona 46
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x20) > 0;
END
Zona 47Contatto reedSolo lettura
booleanbitmask
Zona 47
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x40) > 0;
END
Zona 48Contatto reedSolo lettura
booleanbitmask
Zona 48
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x80) > 0;
END
Zona 49Contatto reedSolo lettura
booleanbitmask
Zona 49
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x01) > 0;
END
Zona 50Contatto reedSolo lettura
booleanbitmask
Zona 50
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x02) > 0;
END
Zona 51Contatto reedSolo lettura
booleanbitmask
Zona 51
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x04) > 0;
END
Zona 52Contatto reedSolo lettura
booleanbitmask
Zona 52
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x08) > 0;
END
Zona 53Contatto reedSolo lettura
booleanbitmask
Zona 53
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x10) > 0;
END
Zona 54Contatto reedSolo lettura
booleanbitmask
Zona 54
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x20) > 0;
END
Zona 55Contatto reedSolo lettura
booleanbitmask
Zona 55
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x40) > 0;
END
Zona 56Contatto reedSolo lettura
booleanbitmask
Zona 56
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x80) > 0;
END
Zona 57Contatto reedSolo lettura
booleanbitmask
Zona 57
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x01) > 0;
END
Zona 58Contatto reedSolo lettura
booleanbitmask
Zona 58
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x02) > 0;
END
Zona 59Contatto reedSolo lettura
booleanbitmask
Zona 59
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x04) > 0;
END
Zona 60Contatto reedSolo lettura
booleanbitmask
Zona 60
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x08) > 0;
END
Zona 61Contatto reedSolo lettura
booleanbitmask
Zona 61
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x10) > 0;
END
Zona 62Contatto reedSolo lettura
booleanbitmask
Zona 62
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x20) > 0;
END
Zona 63Contatto reedSolo lettura
booleanbitmask
Zona 63
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x40) > 0;
END
Zona 64Contatto reedSolo lettura
booleanbitmask
Zona 64
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x80) > 0;
END
Zona 65Contatto reedSolo lettura
booleanbitmask
Zona 65
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x01) > 0;
END
Zona 66Contatto reedSolo lettura
booleanbitmask
Zona 66
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x02) > 0;
END
Zona 67Contatto reedSolo lettura
booleanbitmask
Zona 67
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x04) > 0;
END
Zona 68Contatto reedSolo lettura
booleanbitmask
Zona 68
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x08) > 0;
END
Zona 69Contatto reedSolo lettura
booleanbitmask
Zona 69
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x10) > 0;
END
Zona 70Contatto reedSolo lettura
booleanbitmask
Zona 70
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x20) > 0;
END
Zona 71Contatto reedSolo lettura
booleanbitmask
Zona 71
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x40) > 0;
END
Zona 72Contatto reedSolo lettura
booleanbitmask
Zona 72
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x80) > 0;
END
Zona 73Contatto reedSolo lettura
booleanbitmask
Zona 73
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x01) > 0;
END
Zona 74Contatto reedSolo lettura
booleanbitmask
Zona 74
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x02) > 0;
END
Zona 75Contatto reedSolo lettura
booleanbitmask
Zona 75
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x04) > 0;
END
Zona 76Contatto reedSolo lettura
booleanbitmask
Zona 76
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x08) > 0;
END
Zona 77Contatto reedSolo lettura
booleanbitmask
Zona 77
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x10) > 0;
END
Zona 78Contatto reedSolo lettura
booleanbitmask
Zona 78
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x20) > 0;
END
Zona 79Contatto reedSolo lettura
booleanbitmask
Zona 79
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x40) > 0;
END
Zona 80Contatto reedSolo lettura
booleanbitmask
Zona 80
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x80) > 0;
END
Zona 81Contatto reedSolo lettura
booleanbitmask
Zona 81
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x01) > 0;
END
Zona 82Contatto reedSolo lettura
booleanbitmask
Zona 82
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x02) > 0;
END
Zona 83Contatto reedSolo lettura
booleanbitmask
Zona 83
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x04) > 0;
END
Zona 84Contatto reedSolo lettura
booleanbitmask
Zona 84
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x08) > 0;
END
Zona 85Contatto reedSolo lettura
booleanbitmask
Zona 85
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x10) > 0;
END
Zona 86Contatto reedSolo lettura
booleanbitmask
Zona 86
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x20) > 0;
END
Zona 87Contatto reedSolo lettura
booleanbitmask
Zona 87
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x40) > 0;
END
Zona 88Contatto reedSolo lettura
booleanbitmask
Zona 88
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x80) > 0;
END
Zona 89Contatto reedSolo lettura
booleanbitmask
Zona 89
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x01) > 0;
END
Zona 90Contatto reedSolo lettura
booleanbitmask
Zona 90
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x02) > 0;
END
Zona 91Contatto reedSolo lettura
booleanbitmask
Zona 91
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x04) > 0;
END
Zona 92Contatto reedSolo lettura
booleanbitmask
Zona 92
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x08) > 0;
END
Zona 93Contatto reedSolo lettura
booleanbitmask
Zona 93
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x10) > 0;
END
Zona 94Contatto reedSolo lettura
booleanbitmask
Zona 94
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x20) > 0;
END
Zona 95Contatto reedSolo lettura
booleanbitmask
Zona 95
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x40) > 0;
END
Zona 96Contatto reedSolo lettura
booleanbitmask
Zona 96
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x80) > 0;
END
Zona 97Contatto reedSolo lettura
booleanbitmask
Zona 97
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x01) > 0;
END
Zona 98Contatto reedSolo lettura
booleanbitmask
Zona 98
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x02) > 0;
END
Zona 99Contatto reedSolo lettura
booleanbitmask
Zona 99
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x04) > 0;
END
Zona 100Contatto reedSolo lettura
booleanbitmask
Zona 100
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x08) > 0;
END
Zona 101Contatto reedSolo lettura
booleanbitmask
Zona 101
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x10) > 0;
END
Zona 102Contatto reedSolo lettura
booleanbitmask
Zona 102
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x20) > 0;
END
Zona 103Contatto reedSolo lettura
booleanbitmask
Zona 103
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x40) > 0;
END
Zona 104Contatto reedSolo lettura
booleanbitmask
Zona 104
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x80) > 0;
END
Zona 105Contatto reedSolo lettura
booleanbitmask
Zona 105
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x01) > 0;
END
Zona 106Contatto reedSolo lettura
booleanbitmask
Zona 106
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x02) > 0;
END
Zona 107Contatto reedSolo lettura
booleanbitmask
Zona 107
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x04) > 0;
END
Zona 108Contatto reedSolo lettura
booleanbitmask
Zona 108
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x08) > 0;
END
Zona 109Contatto reedSolo lettura
booleanbitmask
Zona 109
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x10) > 0;
END
Zona 110Contatto reedSolo lettura
booleanbitmask
Zona 110
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x20) > 0;
END
Zona 111Contatto reedSolo lettura
booleanbitmask
Zona 111
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x40) > 0;
END
Zona 112Contatto reedSolo lettura
booleanbitmask
Zona 112
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x80) > 0;
END
Zona 113Contatto reedSolo lettura
booleanbitmask
Zona 113
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x01) > 0;
END
Zona 114Contatto reedSolo lettura
booleanbitmask
Zona 114
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x02) > 0;
END
Zona 115Contatto reedSolo lettura
booleanbitmask
Zona 115
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x04) > 0;
END
Zona 116Contatto reedSolo lettura
booleanbitmask
Zona 116
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x08) > 0;
END
Zona 117Contatto reedSolo lettura
booleanbitmask
Zona 117
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x10) > 0;
END
Zona 118Contatto reedSolo lettura
booleanbitmask
Zona 118
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x20) > 0;
END
Zona 119Contatto reedSolo lettura
booleanbitmask
Zona 119
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x40) > 0;
END
Zona 120Contatto reedSolo lettura
booleanbitmask
Zona 120
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x80) > 0;
END
Zona 121Contatto reedSolo lettura
booleanbitmask
Zona 121
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x01) > 0;
END
Zona 122Contatto reedSolo lettura
booleanbitmask
Zona 122
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x02) > 0;
END
Zona 123Contatto reedSolo lettura
booleanbitmask
Zona 123
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x04) > 0;
END
Zona 124Contatto reedSolo lettura
booleanbitmask
Zona 124
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x08) > 0;
END
Zona 125Contatto reedSolo lettura
booleanbitmask
Zona 125
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x10) > 0;
END
Zona 126Contatto reedSolo lettura
booleanbitmask
Zona 126
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x20) > 0;
END
Zona 127Contatto reedSolo lettura
booleanbitmask
Zona 127
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x40) > 0;
END
Zona 128Contatto reedSolo lettura
booleanbitmask
Zona 128
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x80) > 0;
END
Connessione:
Packet Parser → TCP
Possibili miglioramenti (10)
Partition Control — Arm/disarm partitions — supported by HA and openHAB via integration protocol, not implemented in TapHome template
Output Control — Control mono/bistable outputs (switches, sirens) — requires user code authentication
Zone Tamper State — Zone tamper detection channel, available in openHAB binding
Zone Alarm State — Zone alarm state (separate from violation), available in openHAB binding
Zone Bypass State — Zone bypass status, available in openHAB binding
System Troubles — Active trouble indicator and trouble memory, available via system thing
System Date/Time — System clock synchronization channel
Event Log — Alarm event history with timestamps and descriptions
Roller Shutter — Dual-output roller shutter control via dedicated thing type
Wireless Temperature Sensor (ATD-100) — Temperature readings from ATD-100 wireless detectors, with battery and communication status