TapHome

Satel ETHM-1 Plus

Packet Parser → TCP
Eingereicht von
Zuletzt aktualisiert: 03. 2026
Satel ETHM-1 Plus

Das Satel ETHM-1 Plus ist ein Ethernet-Kommunikationsmodul, das Satel-Alarmzentralen mit einem TCP/IP-Netzwerk verbindet. TapHome kommuniziert mit dem Modul über TCP unter Verwendung des offenen Satel-Integrationsprotokolls auf Port 7094 (Standard). Das Modul dient als Netzwerk-Gateway zwischen TapHome und der Alarmzentrale.

Die Vorlage ermöglicht die Überwachung von bis zu 128 Alarmzonen im Nur-Lese-Modus. Jede Zone wird einem Reedkontakt-Gerät zugeordnet, das meldet, ob die Zone verletzt (offen) oder normal (geschlossen) ist. Dies umfasst Tür-/Fenstersensoren, Bewegungsmelder und alle anderen Sensortypen, die im Alarmsystem Zonen zugewiesen sind.

Hardwareverbindung

Das Modul ETHM-1 Plus wird über den Kommunikationsbus (DTM- und CKM-Daten-/Taktleitungen) an die Alarmzentrale und über ein Standard-Ethernet-Kabel (RJ-45, 100Base-TX) an das lokale Netzwerk angeschlossen.

Verdrahtung zur Alarmzentrale
Verdrahtungsschema der ETHM-1 Plus Verbindung zu INTEGRA/INTEGRA Plus und PERFECTA 64 M/VERSA Zentralen über DTM-, CKM-, COM- und Versorgungsklemmen

Verbinden Sie die Klemmen des ETHM-1 Plus Moduls wie folgt mit den Klemmen der Alarmzentrale:

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

Verwenden Sie für die Busverbindung ein ungeschirmtes, nicht verdrilltes Kabel. Bei Verwendung von Twisted-Pair-Kabel dürfen die CKM- (Takt) und DTM-Signale (Daten) nicht über dasselbe verdrillte Paar geführt werden.

Moduladresse

Stellen Sie die Moduladresse mit den ADDRESS-Jumpern auf der Platine ein:

  • INTEGRA 24 / INTEGRA 32: Adresse 0 bis 3
  • Andere INTEGRA / INTEGRA Plus: Adresse 0 bis 7
  • PERFECTA 64 M: Adresse 6
  • VERSA: Adresse 4 (kein Bedienteil mit Adresse 4 darf angeschlossen sein)

Die Adresse muss sich von allen anderen Geräten am Bedienteilbus unterscheiden.

Ethernet-Verbindung

Verbinden Sie das Modul über ein Standard-Ethernet-Kabel (100Base-TX) mit dem lokalen Netzwerk. Das Modul unterstützt DHCP für die automatische IP-Zuweisung oder manuelle statische IP-Konfiguration.

Das Modul darf nicht direkt mit einem öffentlichen Netzwerk (MAN, WAN) verbunden werden. Verwenden Sie immer einen Router oder ein xDSL-Modem. Installieren Sie das Modul im selben Gehäuse wie die Alarmzentrale.

Konfiguration

Aktivierung des Integrationsprotokolls

Das Integrationsprotokoll muss im DLOADX-Installationsprogramm aktiviert werden, bevor TapHome eine Verbindung herstellen kann:

  1. Öffnen Sie das Programm DLOADX (Version 1.22.000 oder neuer)
  2. Navigieren Sie zu StrukturHardwareBedienteile
  3. Wählen Sie das Modul ETHM-1 Plus
  4. Aktivieren Sie im Abschnitt Integration das Kontrollkästchen Integration
  5. Deaktivieren Sie das Kontrollkästchen Verschlüsselte Integration — TapHome verbindet sich über unverschlüsselte Integration
  6. Notieren Sie die Port-Nummer — Standard ist 7094
  7. Speichern Sie die Konfiguration in der Zentrale

Verschlüsselte Integration wird nicht unterstützt. Die Option „Verschlüsselte Integration" muss in DLOADX deaktiviert bleiben.

Netzwerkkonfiguration

Die IP-Adresse des Moduls finden oder konfigurieren Sie in DLOADX im Abschnitt Netzwerkeinstellungen des ETHM-1 Plus Moduls. Bei aktiviertem DHCP wird die IP automatisch zugewiesen. Die aktuelle IP kann auch über das LCD-Bedienteil mit der Funktion IP/MAC/IMEI/ID im Untermenü TESTS abgelesen werden.

Weisen Sie dem ETHM-1 Plus Modul eine statische IP-Adresse zu oder erstellen Sie eine DHCP-Reservierung. Eine sich ändernde IP-Adresse unterbricht die TapHome-Verbindung.

Kompatible Alarmzentralen

Das Integrationsprotokoll erfordert bestimmte Firmware-Versionen:

ZentraleMindest-Firmware
INTEGRA Plus1.06
INTEGRA1.06
PERFECTA 64 MIntegration nicht unterstützt
VERSAIntegration nicht unterstützt

Das Integrationsprotokoll ist nur auf INTEGRA Plus- und INTEGRA-Zentralen verfügbar. PERFECTA 64 M und VERSA unterstützen das Modul ETHM-1 Plus für die Fernprogrammierung und den Zugriff über die mobile App, jedoch nicht das offene Integrationsprotokoll, das von TapHome verwendet wird.

Gerätefunktionen

Zonenüberwachung

Die Vorlage überwacht 128 Alarmzonen als einzelne Reedkontakt-Geräte. Jede Zone meldet einen booleschen Zustand:

  • Verletzt (offen) — der Zonensensor wurde ausgelöst (Tür geöffnet, Bewegung erkannt usw.)
  • Normal (geschlossen) — der Zonensensor befindet sich im Ruhezustand

Die Zonenzustände werden als 16-Byte-Bitmaske empfangen. TapHome sendet einen Binärbefehl (0x00) und die Alarmzentrale antwortet mit den Zonenverletzungszuständen als Bits — Zonen 1–8 in Byte 1, Zonen 9–16 in Byte 2 usw. bis zu Zonen 121–128 in Byte 16.

Die tatsächliche Anzahl nutzbarer Zonen hängt vom Modell der Alarmzentrale ab:

ZentraleMaximale Zonen
INTEGRA 2424
INTEGRA 3232
INTEGRA 64 / 64 Plus64
INTEGRA 128 / 128 Plus128
INTEGRA 256 Plus128 (Vorlagenlimit)

Zonen über die Kapazität der Zentrale hinaus bleiben im normalen (geschlossenen) Zustand. Benennen Sie nach dem Import der Vorlage jedes Zonengerät in TapHome entsprechend seiner Funktion im Alarmsystem um (z. B. „Zone 1" → „Haustür", „Zone 2" → „Bewegung Wohnzimmer").

Weitere Funktionen

Das Satel INTEGRA Alarmsystem unterstützt auch Bereichs-Scharf-/Unscharfschaltung, Ausgangssteuerung (Sirenen, Beleuchtung), Zonen-Sabotage- und Alarmzustände, Zonen-Überbrückungsverwaltung, Systemstörungsmeldungen, Ereignisprotokollzugriff, Rolladensteuerung und Auslesen drahtloser Temperatursensoren (ATD-100). Diese Funktionen sind über das Integrationsprotokoll verfügbar und können in einem zukünftigen Vorlagen-Update ergänzt werden.

Fehlerbehebung

TapHome kann keine Verbindung zum Modul herstellen
  1. Überprüfen Sie, ob die Option Integration in DLOADX aktiviert und Verschlüsselte Integration deaktiviert ist
  2. Bestätigen Sie die korrekte IP-Adresse und den Port (Standard 7094)
  3. Stellen Sie sicher, dass kein anderer Client (Home Assistant, openHAB, GUARDX) bereits verbunden ist — es kann sich nur ein Client gleichzeitig mit dem Integrationsport verbinden
  4. Prüfen Sie, ob die Firmware der INTEGRA-Zentrale Version 1.06 oder neuer ist
  5. Überprüfen Sie die Firmware des ETHM-1 Plus Moduls — für die Integration wird Version 2.00 oder neuer empfohlen
Verbindung bricht nach ~25 Sekunden ab

Das ETHM-1 Plus (Firmware v2.03+) trennt Clients nach 25 Sekunden Inaktivität. Stellen Sie sicher, dass das TapHome-Abfrageintervall kürzer als 25 Sekunden ist.

Modul ist in DLOADX nicht sichtbar
  1. Überprüfen Sie, ob die Moduladresse über die ADDRESS-Jumper korrekt eingestellt ist und nicht mit anderen Geräten am Bus in Konflikt steht
  2. Prüfen Sie die DTM-, CKM-, COM- und +12V-Verbindungen zur Zentrale
  3. Stellen Sie sicher, dass die PWR/LOG-LED leuchtet (Stromversorgung OK) und die BUS-LED blinkt (Datenaustausch aktiv)
Falsche IP-Adresse nach DHCP-Erneuerung

Wenn das Modul DHCP verwendet und der Router eine neue IP zuweist, verliert TapHome die Verbindung. Stellen Sie eine statische IP in DLOADX ein oder konfigurieren Sie eine DHCP-Reservierung am Router.

Nach 3 aufeinanderfolgenden fehlgeschlagenen Verbindungsversuchen mit einem falschen Schlüssel reagiert das Modul ca. 20 Minuten lang nicht mehr auf die betreffende IP-Adresse. Warten Sie, bis die Sperre abgelaufen ist, oder starten Sie das Modul neu.

Verfügbare Geräte

Satel INTEGRA Modul

Satel

Lesen (Modul)
SENDDATA(BYTECOLLECTION("00"));
Zone 1 Reed-Kontakt Nur lesen
boolean bitmask

Zone 1

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x01) > 0;
END
Zone 2 Reed-Kontakt Nur lesen
boolean bitmask

Zone 2

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x02) > 0;
END
Zone 3 Reed-Kontakt Nur lesen
boolean bitmask

Zone 3

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x04) > 0;
END
Zone 4 Reed-Kontakt Nur lesen
boolean bitmask

Zone 4

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x08) > 0;
END
Zone 5 Reed-Kontakt Nur lesen
boolean bitmask

Zone 5

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x10) > 0;
END
Zone 6 Reed-Kontakt Nur lesen
boolean bitmask

Zone 6

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x20) > 0;
END
Zone 7 Reed-Kontakt Nur lesen
boolean bitmask

Zone 7

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x40) > 0;
END
Zone 8 Reed-Kontakt Nur lesen
boolean bitmask

Zone 8

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,1) & 0x80) > 0;
END
Zone 9 Reed-Kontakt Nur lesen
boolean bitmask

Zone 9

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x01) > 0;
END
Zone 10 Reed-Kontakt Nur lesen
boolean bitmask

Zone 10

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x02) > 0;
END
Zone 11 Reed-Kontakt Nur lesen
boolean bitmask

Zone 11

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x04) > 0;
END
Zone 12 Reed-Kontakt Nur lesen
boolean bitmask

Zone 12

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x08) > 0;
END
Zone 13 Reed-Kontakt Nur lesen
boolean bitmask

Zone 13

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x10) > 0;
END
Zone 14 Reed-Kontakt Nur lesen
boolean bitmask

Zone 14

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x20) > 0;
END
Zone 15 Reed-Kontakt Nur lesen
boolean bitmask

Zone 15

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x40) > 0;
END
Zone 16 Reed-Kontakt Nur lesen
boolean bitmask

Zone 16

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,2) & 0x80) > 0;
END
Zone 17 Reed-Kontakt Nur lesen
boolean bitmask

Zone 17

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x01) > 0;
END
Zone 18 Reed-Kontakt Nur lesen
boolean bitmask

Zone 18

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x02) > 0;
END
Zone 19 Reed-Kontakt Nur lesen
boolean bitmask

Zone 19

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x04) > 0;
END
Zone 20 Reed-Kontakt Nur lesen
boolean bitmask

Zone 20

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x08) > 0;
END
Zone 21 Reed-Kontakt Nur lesen
boolean bitmask

Zone 21

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x10) > 0;
END
Zone 22 Reed-Kontakt Nur lesen
boolean bitmask

Zone 22

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x20) > 0;
END
Zone 23 Reed-Kontakt Nur lesen
boolean bitmask

Zone 23

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x40) > 0;
END
Zone 24 Reed-Kontakt Nur lesen
boolean bitmask

Zone 24

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,3) & 0x80) > 0;
END
Zone 25 Reed-Kontakt Nur lesen
boolean bitmask

Zone 25

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x01) > 0;
END
Zone 26 Reed-Kontakt Nur lesen
boolean bitmask

Zone 26

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x02) > 0;
END
Zone 27 Reed-Kontakt Nur lesen
boolean bitmask

Zone 27

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x04) > 0;
END
Zone 28 Reed-Kontakt Nur lesen
boolean bitmask

Zone 28

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x08) > 0;
END
Zone 29 Reed-Kontakt Nur lesen
boolean bitmask

Zone 29

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x10) > 0;
END
Zone 30 Reed-Kontakt Nur lesen
boolean bitmask

Zone 30

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x20) > 0;
END
Zone 31 Reed-Kontakt Nur lesen
boolean bitmask

Zone 31

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x40) > 0;
END
Zone 32 Reed-Kontakt Nur lesen
boolean bitmask

Zone 32

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,4) & 0x80) > 0;
END
Zone 33 Reed-Kontakt Nur lesen
boolean bitmask

Zone 33

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x01) > 0;
END
Zone 34 Reed-Kontakt Nur lesen
boolean bitmask

Zone 34

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x02) > 0;
END
Zone 35 Reed-Kontakt Nur lesen
boolean bitmask

Zone 35

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x04) > 0;
END
Zone 36 Reed-Kontakt Nur lesen
boolean bitmask

Zone 36

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x08) > 0;
END
Zone 37 Reed-Kontakt Nur lesen
boolean bitmask

Zone 37

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x10) > 0;
END
Zone 38 Reed-Kontakt Nur lesen
boolean bitmask

Zone 38

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x20) > 0;
END
Zone 39 Reed-Kontakt Nur lesen
boolean bitmask

Zone 39

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x40) > 0;
END
Zone 40 Reed-Kontakt Nur lesen
boolean bitmask

Zone 40

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,5) & 0x80) > 0;
END
Zone 41 Reed-Kontakt Nur lesen
boolean bitmask

Zone 41

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x01) > 0;
END
Zone 42 Reed-Kontakt Nur lesen
boolean bitmask

Zone 42

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x02) > 0;
END
Zone 43 Reed-Kontakt Nur lesen
boolean bitmask

Zone 43

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x04) > 0;
END
Zone 44 Reed-Kontakt Nur lesen
boolean bitmask

Zone 44

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x08) > 0;
END
Zone 45 Reed-Kontakt Nur lesen
boolean bitmask

Zone 45

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x10) > 0;
END
Zone 46 Reed-Kontakt Nur lesen
boolean bitmask

Zone 46

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x20) > 0;
END
Zone 47 Reed-Kontakt Nur lesen
boolean bitmask

Zone 47

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x40) > 0;
END
Zone 48 Reed-Kontakt Nur lesen
boolean bitmask

Zone 48

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,6) & 0x80) > 0;
END
Zone 49 Reed-Kontakt Nur lesen
boolean bitmask

Zone 49

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x01) > 0;
END
Zone 50 Reed-Kontakt Nur lesen
boolean bitmask

Zone 50

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x02) > 0;
END
Zone 51 Reed-Kontakt Nur lesen
boolean bitmask

Zone 51

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x04) > 0;
END
Zone 52 Reed-Kontakt Nur lesen
boolean bitmask

Zone 52

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x08) > 0;
END
Zone 53 Reed-Kontakt Nur lesen
boolean bitmask

Zone 53

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x10) > 0;
END
Zone 54 Reed-Kontakt Nur lesen
boolean bitmask

Zone 54

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x20) > 0;
END
Zone 55 Reed-Kontakt Nur lesen
boolean bitmask

Zone 55

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x40) > 0;
END
Zone 56 Reed-Kontakt Nur lesen
boolean bitmask

Zone 56

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,7) & 0x80) > 0;
END
Zone 57 Reed-Kontakt Nur lesen
boolean bitmask

Zone 57

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x01) > 0;
END
Zone 58 Reed-Kontakt Nur lesen
boolean bitmask

Zone 58

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x02) > 0;
END
Zone 59 Reed-Kontakt Nur lesen
boolean bitmask

Zone 59

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x04) > 0;
END
Zone 60 Reed-Kontakt Nur lesen
boolean bitmask

Zone 60

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x08) > 0;
END
Zone 61 Reed-Kontakt Nur lesen
boolean bitmask

Zone 61

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x10) > 0;
END
Zone 62 Reed-Kontakt Nur lesen
boolean bitmask

Zone 62

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x20) > 0;
END
Zone 63 Reed-Kontakt Nur lesen
boolean bitmask

Zone 63

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x40) > 0;
END
Zone 64 Reed-Kontakt Nur lesen
boolean bitmask

Zone 64

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,8) & 0x80) > 0;
END
Zone 65 Reed-Kontakt Nur lesen
boolean bitmask

Zone 65

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x01) > 0;
END
Zone 66 Reed-Kontakt Nur lesen
boolean bitmask

Zone 66

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x02) > 0;
END
Zone 67 Reed-Kontakt Nur lesen
boolean bitmask

Zone 67

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x04) > 0;
END
Zone 68 Reed-Kontakt Nur lesen
boolean bitmask

Zone 68

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x08) > 0;
END
Zone 69 Reed-Kontakt Nur lesen
boolean bitmask

Zone 69

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x10) > 0;
END
Zone 70 Reed-Kontakt Nur lesen
boolean bitmask

Zone 70

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x20) > 0;
END
Zone 71 Reed-Kontakt Nur lesen
boolean bitmask

Zone 71

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x40) > 0;
END
Zone 72 Reed-Kontakt Nur lesen
boolean bitmask

Zone 72

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,9) & 0x80) > 0;
END
Zone 73 Reed-Kontakt Nur lesen
boolean bitmask

Zone 73

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x01) > 0;
END
Zone 74 Reed-Kontakt Nur lesen
boolean bitmask

Zone 74

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x02) > 0;
END
Zone 75 Reed-Kontakt Nur lesen
boolean bitmask

Zone 75

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x04) > 0;
END
Zone 76 Reed-Kontakt Nur lesen
boolean bitmask

Zone 76

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x08) > 0;
END
Zone 77 Reed-Kontakt Nur lesen
boolean bitmask

Zone 77

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x10) > 0;
END
Zone 78 Reed-Kontakt Nur lesen
boolean bitmask

Zone 78

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x20) > 0;
END
Zone 79 Reed-Kontakt Nur lesen
boolean bitmask

Zone 79

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x40) > 0;
END
Zone 80 Reed-Kontakt Nur lesen
boolean bitmask

Zone 80

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,10) & 0x80) > 0;
END
Zone 81 Reed-Kontakt Nur lesen
boolean bitmask

Zone 81

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x01) > 0;
END
Zone 82 Reed-Kontakt Nur lesen
boolean bitmask

Zone 82

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x02) > 0;
END
Zone 83 Reed-Kontakt Nur lesen
boolean bitmask

Zone 83

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x04) > 0;
END
Zone 84 Reed-Kontakt Nur lesen
boolean bitmask

Zone 84

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x08) > 0;
END
Zone 85 Reed-Kontakt Nur lesen
boolean bitmask

Zone 85

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x10) > 0;
END
Zone 86 Reed-Kontakt Nur lesen
boolean bitmask

Zone 86

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x20) > 0;
END
Zone 87 Reed-Kontakt Nur lesen
boolean bitmask

Zone 87

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x40) > 0;
END
Zone 88 Reed-Kontakt Nur lesen
boolean bitmask

Zone 88

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,11) & 0x80) > 0;
END
Zone 89 Reed-Kontakt Nur lesen
boolean bitmask

Zone 89

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x01) > 0;
END
Zone 90 Reed-Kontakt Nur lesen
boolean bitmask

Zone 90

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x02) > 0;
END
Zone 91 Reed-Kontakt Nur lesen
boolean bitmask

Zone 91

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x04) > 0;
END
Zone 92 Reed-Kontakt Nur lesen
boolean bitmask

Zone 92

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x08) > 0;
END
Zone 93 Reed-Kontakt Nur lesen
boolean bitmask

Zone 93

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x10) > 0;
END
Zone 94 Reed-Kontakt Nur lesen
boolean bitmask

Zone 94

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x20) > 0;
END
Zone 95 Reed-Kontakt Nur lesen
boolean bitmask

Zone 95

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x40) > 0;
END
Zone 96 Reed-Kontakt Nur lesen
boolean bitmask

Zone 96

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,12) & 0x80) > 0;
END
Zone 97 Reed-Kontakt Nur lesen
boolean bitmask

Zone 97

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x01) > 0;
END
Zone 98 Reed-Kontakt Nur lesen
boolean bitmask

Zone 98

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x02) > 0;
END
Zone 99 Reed-Kontakt Nur lesen
boolean bitmask

Zone 99

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x04) > 0;
END
Zone 100 Reed-Kontakt Nur lesen
boolean bitmask

Zone 100

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x08) > 0;
END
Zone 101 Reed-Kontakt Nur lesen
boolean bitmask

Zone 101

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x10) > 0;
END
Zone 102 Reed-Kontakt Nur lesen
boolean bitmask

Zone 102

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x20) > 0;
END
Zone 103 Reed-Kontakt Nur lesen
boolean bitmask

Zone 103

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x40) > 0;
END
Zone 104 Reed-Kontakt Nur lesen
boolean bitmask

Zone 104

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,13) & 0x80) > 0;
END
Zone 105 Reed-Kontakt Nur lesen
boolean bitmask

Zone 105

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x01) > 0;
END
Zone 106 Reed-Kontakt Nur lesen
boolean bitmask

Zone 106

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x02) > 0;
END
Zone 107 Reed-Kontakt Nur lesen
boolean bitmask

Zone 107

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x04) > 0;
END
Zone 108 Reed-Kontakt Nur lesen
boolean bitmask

Zone 108

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x08) > 0;
END
Zone 109 Reed-Kontakt Nur lesen
boolean bitmask

Zone 109

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x10) > 0;
END
Zone 110 Reed-Kontakt Nur lesen
boolean bitmask

Zone 110

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x20) > 0;
END
Zone 111 Reed-Kontakt Nur lesen
boolean bitmask

Zone 111

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x40) > 0;
END
Zone 112 Reed-Kontakt Nur lesen
boolean bitmask

Zone 112

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,14) & 0x80) > 0;
END
Zone 113 Reed-Kontakt Nur lesen
boolean bitmask

Zone 113

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x01) > 0;
END
Zone 114 Reed-Kontakt Nur lesen
boolean bitmask

Zone 114

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x02) > 0;
END
Zone 115 Reed-Kontakt Nur lesen
boolean bitmask

Zone 115

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x04) > 0;
END
Zone 116 Reed-Kontakt Nur lesen
boolean bitmask

Zone 116

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x08) > 0;
END
Zone 117 Reed-Kontakt Nur lesen
boolean bitmask

Zone 117

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x10) > 0;
END
Zone 118 Reed-Kontakt Nur lesen
boolean bitmask

Zone 118

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x20) > 0;
END
Zone 119 Reed-Kontakt Nur lesen
boolean bitmask

Zone 119

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x40) > 0;
END
Zone 120 Reed-Kontakt Nur lesen
boolean bitmask

Zone 120

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,15) & 0x80) > 0;
END
Zone 121 Reed-Kontakt Nur lesen
boolean bitmask

Zone 121

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x01) > 0;
END
Zone 122 Reed-Kontakt Nur lesen
boolean bitmask

Zone 122

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x02) > 0;
END
Zone 123 Reed-Kontakt Nur lesen
boolean bitmask

Zone 123

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x04) > 0;
END
Zone 124 Reed-Kontakt Nur lesen
boolean bitmask

Zone 124

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x08) > 0;
END
Zone 125 Reed-Kontakt Nur lesen
boolean bitmask

Zone 125

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x10) > 0;
END
Zone 126 Reed-Kontakt Nur lesen
boolean bitmask

Zone 126

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x20) > 0;
END
Zone 127 Reed-Kontakt Nur lesen
boolean bitmask

Zone 127

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x40) > 0;
END
Zone 128 Reed-Kontakt Nur lesen
boolean bitmask

Zone 128

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

IF(cmd = 0)
   Rc := (GETAT(RECEIVEDBYTES,16) & 0x80) > 0;
END
Verbindung: Packet Parser → TCP
Mögliche Verbesserungen (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

Quellen