---
title: "Satel ETHM-1 Plus"
description: "Modulo Ethernet Satel ETHM-1 Plus per centrali di allarme INTEGRA e INTEGRA Plus."
url: "https://taphome.com/it/compatibility/satel-ethm-1-plus/"
language: it
lastmod: 2026-03-28
generator: hugo
ai:
  topics: ["data-pp","alarm-system","tcp","ethernet","zone-monitoring"]
  questions: ["Come integrare il sistema di allarme Satel INTEGRA con TapHome?","Cosa monitora il template Satel ETHM-1 Plus in TapHome?","Come collegare il Satel ETHM-1 Plus via TCP a TapHome?","Perché TapHome non si connette alla porta di integrazione Satel?","Quante zone di allarme supporta il template Satel in TapHome?","Quali centrali di allarme sono compatibili con il modulo ETHM-1 Plus?"]
---

# Satel ETHM-1 Plus

Comunicazione: Packet Parser → TCP

- [Pagina prodotto Satel ETHM-1 Plus](https://www.satel.pl/en/products/intruder-alarms/communication-and-messaging/tcp-ip-communication/ethm-1-plus/)

> Indirizzo di rete
> 
> TapHome raggiunge il dispositivo all'indirizzo inserito durante l'importazione. Assegna al dispositivo un indirizzo fisso — una prenotazione IP nel router, oppure il suo nome mDNS se lo supporta —, altrimenti l'integrazione smette di funzionare quando il router cambia l'indirizzo.
> 
> [Preparazione della rete](https://taphome.com/it/docs/setup/network-preparation/)

## Guida all'integrazione

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](https://taphome.com/images/compatibility/satel-ethm-1-plus/wiring-panel-connection_hu_a7234b2ee3338f26.jpg)

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 |

> [!NOTE]
> 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.

> [!WARNING]
> 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 **Struttura** → **Hardware** → **Tastiere**
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

> [!WARNING]
> 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.

### 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 |

> [!NOTE]
> 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

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.

> [!WARNING]
> 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 128

Questi dispositivi compaiono in TapHome dopo l'importazione.

Satel INTEGRA Modulo

Lettura (modulo)

```taphome
SENDDATA(BYTECOLLECTION("00"));
```

Zona 1 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x01) > 0;
END
```

Zona 2 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x02) > 0;
END
```

Zona 3 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x04) > 0;
END
```

Zona 4 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x08) > 0;
END
```

Zona 5 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x10) > 0;
END
```

Zona 6 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x20) > 0;
END
```

Zona 7 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x40) > 0;
END
```

Zona 8 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x80) > 0;
END
```

Zona 9 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x01) > 0;
END
```

Zona 10 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x02) > 0;
END
```

Zona 11 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x04) > 0;
END
```

Zona 12 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x08) > 0;
END
```

Zona 13 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x10) > 0;
END
```

Zona 14 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x20) > 0;
END
```

Zona 15 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x40) > 0;
END
```

Zona 16 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x80) > 0;
END
```

Zona 17 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x01) > 0;
END
```

Zona 18 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x02) > 0;
END
```

Zona 19 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x04) > 0;
END
```

Zona 20 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x08) > 0;
END
```

Zona 21 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x10) > 0;
END
```

Zona 22 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x20) > 0;
END
```

Zona 23 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x40) > 0;
END
```

Zona 24 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x80) > 0;
END
```

Zona 25 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x01) > 0;
END
```

Zona 26 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x02) > 0;
END
```

Zona 27 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x04) > 0;
END
```

Zona 28 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x08) > 0;
END
```

Zona 29 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x10) > 0;
END
```

Zona 30 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x20) > 0;
END
```

Zona 31 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x40) > 0;
END
```

Zona 32 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x80) > 0;
END
```

Zona 33 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x01) > 0;
END
```

Zona 34 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x02) > 0;
END
```

Zona 35 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x04) > 0;
END
```

Zona 36 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x08) > 0;
END
```

Zona 37 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x10) > 0;
END
```

Zona 38 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x20) > 0;
END
```

Zona 39 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x40) > 0;
END
```

Zona 40 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x80) > 0;
END
```

Zona 41 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x01) > 0;
END
```

Zona 42 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x02) > 0;
END
```

Zona 43 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x04) > 0;
END
```

Zona 44 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x08) > 0;
END
```

Zona 45 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x10) > 0;
END
```

Zona 46 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x20) > 0;
END
```

Zona 47 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x40) > 0;
END
```

Zona 48 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x80) > 0;
END
```

Zona 49 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x01) > 0;
END
```

Zona 50 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x02) > 0;
END
```

Zona 51 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x04) > 0;
END
```

Zona 52 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x08) > 0;
END
```

Zona 53 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x10) > 0;
END
```

Zona 54 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x20) > 0;
END
```

Zona 55 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x40) > 0;
END
```

Zona 56 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x80) > 0;
END
```

Zona 57 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x01) > 0;
END
```

Zona 58 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x02) > 0;
END
```

Zona 59 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x04) > 0;
END
```

Zona 60 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x08) > 0;
END
```

Zona 61 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x10) > 0;
END
```

Zona 62 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x20) > 0;
END
```

Zona 63 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x40) > 0;
END
```

Zona 64 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x80) > 0;
END
```

Zona 65 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x01) > 0;
END
```

Zona 66 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x02) > 0;
END
```

Zona 67 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x04) > 0;
END
```

Zona 68 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x08) > 0;
END
```

Zona 69 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x10) > 0;
END
```

Zona 70 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x20) > 0;
END
```

Zona 71 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x40) > 0;
END
```

Zona 72 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x80) > 0;
END
```

Zona 73 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x01) > 0;
END
```

Zona 74 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x02) > 0;
END
```

Zona 75 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x04) > 0;
END
```

Zona 76 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x08) > 0;
END
```

Zona 77 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x10) > 0;
END
```

Zona 78 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x20) > 0;
END
```

Zona 79 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x40) > 0;
END
```

Zona 80 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x80) > 0;
END
```

Zona 81 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x01) > 0;
END
```

Zona 82 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x02) > 0;
END
```

Zona 83 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x04) > 0;
END
```

Zona 84 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x08) > 0;
END
```

Zona 85 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x10) > 0;
END
```

Zona 86 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x20) > 0;
END
```

Zona 87 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x40) > 0;
END
```

Zona 88 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x80) > 0;
END
```

Zona 89 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x01) > 0;
END
```

Zona 90 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x02) > 0;
END
```

Zona 91 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x04) > 0;
END
```

Zona 92 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x08) > 0;
END
```

Zona 93 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x10) > 0;
END
```

Zona 94 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x20) > 0;
END
```

Zona 95 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x40) > 0;
END
```

Zona 96 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x80) > 0;
END
```

Zona 97 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x01) > 0;
END
```

Zona 98 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x02) > 0;
END
```

Zona 99 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x04) > 0;
END
```

Zona 100 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x08) > 0;
END
```

Zona 101 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x10) > 0;
END
```

Zona 102 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x20) > 0;
END
```

Zona 103 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x40) > 0;
END
```

Zona 104 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x80) > 0;
END
```

Zona 105 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x01) > 0;
END
```

Zona 106 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x02) > 0;
END
```

Zona 107 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x04) > 0;
END
```

Zona 108 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x08) > 0;
END
```

Zona 109 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x10) > 0;
END
```

Zona 110 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x20) > 0;
END
```

Zona 111 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x40) > 0;
END
```

Zona 112 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x80) > 0;
END
```

Zona 113 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x01) > 0;
END
```

Zona 114 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x02) > 0;
END
```

Zona 115 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x04) > 0;
END
```

Zona 116 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x08) > 0;
END
```

Zona 117 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x10) > 0;
END
```

Zona 118 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x20) > 0;
END
```

Zona 119 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x40) > 0;
END
```

Zona 120 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x80) > 0;
END
```

Zona 121 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x01) > 0;
END
```

Zona 122 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x02) > 0;
END
```

Zona 123 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x04) > 0;
END
```

Zona 124 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x08) > 0;
END
```

Zona 125 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x10) > 0;
END
```

Zona 126 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x20) > 0;
END
```

Zona 127 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
VAR cmd := GETAT(RECEIVEDBYTES,0);

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x40) > 0;
END
```

Zona 128 Contatto reed Solo lettura

boolean bitmask

Listener

```taphome
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

## Parametri di importazione

Inserisci questi valori quando importi l'XML.

| Richiesto nell'app     | Predefinito   |
|------------------------|---------------|
| Indirizzo IP           | `192.168.0.1` |
| Port                   | `7094`        |
| Internal poll interval | `2500`        |

## Fonti

- Satel ETHM-1 Plus Installation Manual (FW 3.11)
  
  [www.satel.eu](https://www.satel.eu/en/download/instrukcje/ethm1_plus_en_a1951078.pdf) 2026-03-27
- Satel ETHM-1 Plus Product Page
  
  [www.satel.pl](https://www.satel.pl/en/products/intruder-alarms/communication-and-messaging/tcp-ip-communication/ethm-1-plus/) 2026-03-27
- Home Assistant Satel Integra Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/satel_integra/) 2026-03-27
- openHAB Satel Integra Binding
  
  [www.openhab.org](https://www.openhab.org/addons/bindings/satel/) 2026-03-27

## Documentazione correlata

- [Integrazione Packet Parser](https://taphome.com/it/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/it/docs/integration/packet-parser/)
- [Funzioni Packet parser](https://taphome.com/it/docs/script/packet-parser/)
- [Funzioni di parsing](https://taphome.com/it/docs/script/parsing-functions/)

