TapHome

Satel ETHM-1 Plus

Packet Parser → TCP
Inviato da
Ultimo aggiornamento: 03. 2026
Satel ETHM-1 Plus

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
Schema di cablaggio del collegamento ETHM-1 Plus alle centrali INTEGRA/INTEGRA Plus e PERFECTA 64 M/VERSA tramite terminali DTM, CKM, COM e alimentazione

Collega i terminali del modulo ETHM-1 Plus ai terminali della centrale di allarme come segue:

ETHM-1 PlusINTEGRA / INTEGRA PlusPERFECTA 64 M / VERSA
+12V+KPDKPD
COMCOMCOM
DTMDTMDTA
CKMCKMCLK

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:

  1. Apri il programma DLOADX (versione 1.22.000 o successiva)
  2. Naviga su StrutturaHardwareTastiere
  3. Seleziona il modulo ETHM-1 Plus
  4. Nella sezione Integrazione, abilita la casella Integrazione
  5. Disabilita la casella Integrazione crittografata — TapHome si connette tramite integrazione non crittografata
  6. Annota il numero della Porta — il valore predefinito è 7094
  7. 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:

CentraleFirmware minimo
INTEGRA Plus1.06
INTEGRA1.06
PERFECTA 64 MIntegrazione non supportata
VERSAIntegrazione 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:

CentraleZone massime
INTEGRA 2424
INTEGRA 3232
INTEGRA 64 / 64 Plus64
INTEGRA 128 / 128 Plus128
INTEGRA 256 Plus128 (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
  1. Verifica che l’opzione Integrazione sia abilitata in DLOADX e che Integrazione crittografata sia disabilitata
  2. Conferma l’indirizzo IP e la porta corretti (predefinita 7094)
  3. Verifica che nessun altro client (Home Assistant, openHAB, GUARDX) sia già connesso — solo un client può connettersi alla porta di integrazione alla volta
  4. Controlla che il firmware della centrale INTEGRA sia versione 1.06 o successiva
  5. 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
  1. Verifica che l’indirizzo del modulo sia correttamente impostato tramite i jumper ADDRESS e non sia in conflitto con altri dispositivi sul bus
  2. Controlla i collegamenti DTM, CKM, COM e +12V alla centrale
  3. 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 INTEGRA Modulo

Satel

Lettura (modulo)
SENDDATA(BYTECOLLECTION("00"));
Zona 1 Contatto reed Solo lettura
boolean bitmask

Zona 1

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x01) > 0;
END
Zona 2 Contatto reed Solo lettura
boolean bitmask

Zona 2

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x02) > 0;
END
Zona 3 Contatto reed Solo lettura
boolean bitmask

Zona 3

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x04) > 0;
END
Zona 4 Contatto reed Solo lettura
boolean bitmask

Zona 4

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x08) > 0;
END
Zona 5 Contatto reed Solo lettura
boolean bitmask

Zona 5

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x10) > 0;
END
Zona 6 Contatto reed Solo lettura
boolean bitmask

Zona 6

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x20) > 0;
END
Zona 7 Contatto reed Solo lettura
boolean bitmask

Zona 7

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x40) > 0;
END
Zona 8 Contatto reed Solo lettura
boolean bitmask

Zona 8

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x80) > 0;
END
Zona 9 Contatto reed Solo lettura
boolean bitmask

Zona 9

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x01) > 0;
END
Zona 10 Contatto reed Solo lettura
boolean bitmask

Zona 10

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x02) > 0;
END
Zona 11 Contatto reed Solo lettura
boolean bitmask

Zona 11

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x04) > 0;
END
Zona 12 Contatto reed Solo lettura
boolean bitmask

Zona 12

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x08) > 0;
END
Zona 13 Contatto reed Solo lettura
boolean bitmask

Zona 13

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x10) > 0;
END
Zona 14 Contatto reed Solo lettura
boolean bitmask

Zona 14

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x20) > 0;
END
Zona 15 Contatto reed Solo lettura
boolean bitmask

Zona 15

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x40) > 0;
END
Zona 16 Contatto reed Solo lettura
boolean bitmask

Zona 16

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x80) > 0;
END
Zona 17 Contatto reed Solo lettura
boolean bitmask

Zona 17

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x01) > 0;
END
Zona 18 Contatto reed Solo lettura
boolean bitmask

Zona 18

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x02) > 0;
END
Zona 19 Contatto reed Solo lettura
boolean bitmask

Zona 19

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x04) > 0;
END
Zona 20 Contatto reed Solo lettura
boolean bitmask

Zona 20

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x08) > 0;
END
Zona 21 Contatto reed Solo lettura
boolean bitmask

Zona 21

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x10) > 0;
END
Zona 22 Contatto reed Solo lettura
boolean bitmask

Zona 22

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x20) > 0;
END
Zona 23 Contatto reed Solo lettura
boolean bitmask

Zona 23

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x40) > 0;
END
Zona 24 Contatto reed Solo lettura
boolean bitmask

Zona 24

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x80) > 0;
END
Zona 25 Contatto reed Solo lettura
boolean bitmask

Zona 25

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x01) > 0;
END
Zona 26 Contatto reed Solo lettura
boolean bitmask

Zona 26

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x02) > 0;
END
Zona 27 Contatto reed Solo lettura
boolean bitmask

Zona 27

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x04) > 0;
END
Zona 28 Contatto reed Solo lettura
boolean bitmask

Zona 28

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x08) > 0;
END
Zona 29 Contatto reed Solo lettura
boolean bitmask

Zona 29

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x10) > 0;
END
Zona 30 Contatto reed Solo lettura
boolean bitmask

Zona 30

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x20) > 0;
END
Zona 31 Contatto reed Solo lettura
boolean bitmask

Zona 31

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x40) > 0;
END
Zona 32 Contatto reed Solo lettura
boolean bitmask

Zona 32

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x80) > 0;
END
Zona 33 Contatto reed Solo lettura
boolean bitmask

Zona 33

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x01) > 0;
END
Zona 34 Contatto reed Solo lettura
boolean bitmask

Zona 34

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x02) > 0;
END
Zona 35 Contatto reed Solo lettura
boolean bitmask

Zona 35

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x04) > 0;
END
Zona 36 Contatto reed Solo lettura
boolean bitmask

Zona 36

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x08) > 0;
END
Zona 37 Contatto reed Solo lettura
boolean bitmask

Zona 37

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x10) > 0;
END
Zona 38 Contatto reed Solo lettura
boolean bitmask

Zona 38

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x20) > 0;
END
Zona 39 Contatto reed Solo lettura
boolean bitmask

Zona 39

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x40) > 0;
END
Zona 40 Contatto reed Solo lettura
boolean bitmask

Zona 40

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x80) > 0;
END
Zona 41 Contatto reed Solo lettura
boolean bitmask

Zona 41

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x01) > 0;
END
Zona 42 Contatto reed Solo lettura
boolean bitmask

Zona 42

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x02) > 0;
END
Zona 43 Contatto reed Solo lettura
boolean bitmask

Zona 43

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x04) > 0;
END
Zona 44 Contatto reed Solo lettura
boolean bitmask

Zona 44

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x08) > 0;
END
Zona 45 Contatto reed Solo lettura
boolean bitmask

Zona 45

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x10) > 0;
END
Zona 46 Contatto reed Solo lettura
boolean bitmask

Zona 46

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x20) > 0;
END
Zona 47 Contatto reed Solo lettura
boolean bitmask

Zona 47

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x40) > 0;
END
Zona 48 Contatto reed Solo lettura
boolean bitmask

Zona 48

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x80) > 0;
END
Zona 49 Contatto reed Solo lettura
boolean bitmask

Zona 49

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x01) > 0;
END
Zona 50 Contatto reed Solo lettura
boolean bitmask

Zona 50

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x02) > 0;
END
Zona 51 Contatto reed Solo lettura
boolean bitmask

Zona 51

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x04) > 0;
END
Zona 52 Contatto reed Solo lettura
boolean bitmask

Zona 52

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x08) > 0;
END
Zona 53 Contatto reed Solo lettura
boolean bitmask

Zona 53

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x10) > 0;
END
Zona 54 Contatto reed Solo lettura
boolean bitmask

Zona 54

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x20) > 0;
END
Zona 55 Contatto reed Solo lettura
boolean bitmask

Zona 55

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x40) > 0;
END
Zona 56 Contatto reed Solo lettura
boolean bitmask

Zona 56

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x80) > 0;
END
Zona 57 Contatto reed Solo lettura
boolean bitmask

Zona 57

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x01) > 0;
END
Zona 58 Contatto reed Solo lettura
boolean bitmask

Zona 58

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x02) > 0;
END
Zona 59 Contatto reed Solo lettura
boolean bitmask

Zona 59

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x04) > 0;
END
Zona 60 Contatto reed Solo lettura
boolean bitmask

Zona 60

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x08) > 0;
END
Zona 61 Contatto reed Solo lettura
boolean bitmask

Zona 61

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x10) > 0;
END
Zona 62 Contatto reed Solo lettura
boolean bitmask

Zona 62

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x20) > 0;
END
Zona 63 Contatto reed Solo lettura
boolean bitmask

Zona 63

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x40) > 0;
END
Zona 64 Contatto reed Solo lettura
boolean bitmask

Zona 64

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x80) > 0;
END
Zona 65 Contatto reed Solo lettura
boolean bitmask

Zona 65

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x01) > 0;
END
Zona 66 Contatto reed Solo lettura
boolean bitmask

Zona 66

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x02) > 0;
END
Zona 67 Contatto reed Solo lettura
boolean bitmask

Zona 67

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x04) > 0;
END
Zona 68 Contatto reed Solo lettura
boolean bitmask

Zona 68

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x08) > 0;
END
Zona 69 Contatto reed Solo lettura
boolean bitmask

Zona 69

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x10) > 0;
END
Zona 70 Contatto reed Solo lettura
boolean bitmask

Zona 70

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x20) > 0;
END
Zona 71 Contatto reed Solo lettura
boolean bitmask

Zona 71

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x40) > 0;
END
Zona 72 Contatto reed Solo lettura
boolean bitmask

Zona 72

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x80) > 0;
END
Zona 73 Contatto reed Solo lettura
boolean bitmask

Zona 73

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x01) > 0;
END
Zona 74 Contatto reed Solo lettura
boolean bitmask

Zona 74

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x02) > 0;
END
Zona 75 Contatto reed Solo lettura
boolean bitmask

Zona 75

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x04) > 0;
END
Zona 76 Contatto reed Solo lettura
boolean bitmask

Zona 76

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x08) > 0;
END
Zona 77 Contatto reed Solo lettura
boolean bitmask

Zona 77

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x10) > 0;
END
Zona 78 Contatto reed Solo lettura
boolean bitmask

Zona 78

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x20) > 0;
END
Zona 79 Contatto reed Solo lettura
boolean bitmask

Zona 79

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x40) > 0;
END
Zona 80 Contatto reed Solo lettura
boolean bitmask

Zona 80

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x80) > 0;
END
Zona 81 Contatto reed Solo lettura
boolean bitmask

Zona 81

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x01) > 0;
END
Zona 82 Contatto reed Solo lettura
boolean bitmask

Zona 82

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x02) > 0;
END
Zona 83 Contatto reed Solo lettura
boolean bitmask

Zona 83

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x04) > 0;
END
Zona 84 Contatto reed Solo lettura
boolean bitmask

Zona 84

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x08) > 0;
END
Zona 85 Contatto reed Solo lettura
boolean bitmask

Zona 85

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x10) > 0;
END
Zona 86 Contatto reed Solo lettura
boolean bitmask

Zona 86

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x20) > 0;
END
Zona 87 Contatto reed Solo lettura
boolean bitmask

Zona 87

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x40) > 0;
END
Zona 88 Contatto reed Solo lettura
boolean bitmask

Zona 88

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x80) > 0;
END
Zona 89 Contatto reed Solo lettura
boolean bitmask

Zona 89

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x01) > 0;
END
Zona 90 Contatto reed Solo lettura
boolean bitmask

Zona 90

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x02) > 0;
END
Zona 91 Contatto reed Solo lettura
boolean bitmask

Zona 91

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x04) > 0;
END
Zona 92 Contatto reed Solo lettura
boolean bitmask

Zona 92

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x08) > 0;
END
Zona 93 Contatto reed Solo lettura
boolean bitmask

Zona 93

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x10) > 0;
END
Zona 94 Contatto reed Solo lettura
boolean bitmask

Zona 94

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x20) > 0;
END
Zona 95 Contatto reed Solo lettura
boolean bitmask

Zona 95

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x40) > 0;
END
Zona 96 Contatto reed Solo lettura
boolean bitmask

Zona 96

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x80) > 0;
END
Zona 97 Contatto reed Solo lettura
boolean bitmask

Zona 97

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x01) > 0;
END
Zona 98 Contatto reed Solo lettura
boolean bitmask

Zona 98

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x02) > 0;
END
Zona 99 Contatto reed Solo lettura
boolean bitmask

Zona 99

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x04) > 0;
END
Zona 100 Contatto reed Solo lettura
boolean bitmask

Zona 100

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x08) > 0;
END
Zona 101 Contatto reed Solo lettura
boolean bitmask

Zona 101

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x10) > 0;
END
Zona 102 Contatto reed Solo lettura
boolean bitmask

Zona 102

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x20) > 0;
END
Zona 103 Contatto reed Solo lettura
boolean bitmask

Zona 103

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x40) > 0;
END
Zona 104 Contatto reed Solo lettura
boolean bitmask

Zona 104

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x80) > 0;
END
Zona 105 Contatto reed Solo lettura
boolean bitmask

Zona 105

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x01) > 0;
END
Zona 106 Contatto reed Solo lettura
boolean bitmask

Zona 106

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x02) > 0;
END
Zona 107 Contatto reed Solo lettura
boolean bitmask

Zona 107

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x04) > 0;
END
Zona 108 Contatto reed Solo lettura
boolean bitmask

Zona 108

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x08) > 0;
END
Zona 109 Contatto reed Solo lettura
boolean bitmask

Zona 109

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x10) > 0;
END
Zona 110 Contatto reed Solo lettura
boolean bitmask

Zona 110

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x20) > 0;
END
Zona 111 Contatto reed Solo lettura
boolean bitmask

Zona 111

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x40) > 0;
END
Zona 112 Contatto reed Solo lettura
boolean bitmask

Zona 112

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x80) > 0;
END
Zona 113 Contatto reed Solo lettura
boolean bitmask

Zona 113

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x01) > 0;
END
Zona 114 Contatto reed Solo lettura
boolean bitmask

Zona 114

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x02) > 0;
END
Zona 115 Contatto reed Solo lettura
boolean bitmask

Zona 115

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x04) > 0;
END
Zona 116 Contatto reed Solo lettura
boolean bitmask

Zona 116

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x08) > 0;
END
Zona 117 Contatto reed Solo lettura
boolean bitmask

Zona 117

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x10) > 0;
END
Zona 118 Contatto reed Solo lettura
boolean bitmask

Zona 118

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x20) > 0;
END
Zona 119 Contatto reed Solo lettura
boolean bitmask

Zona 119

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x40) > 0;
END
Zona 120 Contatto reed Solo lettura
boolean bitmask

Zona 120

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x80) > 0;
END
Zona 121 Contatto reed Solo lettura
boolean bitmask

Zona 121

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x01) > 0;
END
Zona 122 Contatto reed Solo lettura
boolean bitmask

Zona 122

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x02) > 0;
END
Zona 123 Contatto reed Solo lettura
boolean bitmask

Zona 123

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x04) > 0;
END
Zona 124 Contatto reed Solo lettura
boolean bitmask

Zona 124

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x08) > 0;
END
Zona 125 Contatto reed Solo lettura
boolean bitmask

Zona 125

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x10) > 0;
END
Zona 126 Contatto reed Solo lettura
boolean bitmask

Zona 126

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x20) > 0;
END
Zona 127 Contatto reed Solo lettura
boolean bitmask

Zona 127

Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x40) > 0;
END
Zona 128 Contatto reed Solo lettura
boolean bitmask

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

Fonti