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
Verbinden Sie die Klemmen des ETHM-1 Plus Moduls wie folgt mit den Klemmen der Alarmzentrale:
ETHM-1 Plus
INTEGRA / INTEGRA Plus
PERFECTA 64 M / VERSA
+12V
+KPD
KPD
COM
COM
COM
DTM
DTM
DTA
CKM
CKM
CLK
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:
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:
Öffnen Sie das Programm DLOADX (Version 1.22.000 oder neuer)
Navigieren Sie zu Struktur → Hardware → Bedienteile
Wählen Sie das Modul ETHM-1 Plus
Aktivieren Sie im Abschnitt Integration das Kontrollkästchen Integration
Deaktivieren Sie das Kontrollkästchen Verschlüsselte Integration — TapHome verbindet sich über unverschlüsselte Integration
Notieren Sie die Port-Nummer — Standard ist 7094
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:
Zentrale
Mindest-Firmware
INTEGRA Plus
1.06
INTEGRA
1.06
PERFECTA 64 M
Integration nicht unterstützt
VERSA
Integration 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:
Zentrale
Maximale Zonen
INTEGRA 24
24
INTEGRA 32
32
INTEGRA 64 / 64 Plus
64
INTEGRA 128 / 128 Plus
128
INTEGRA 256 Plus
128 (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
Überprüfen Sie, ob die Option Integration in DLOADX aktiviert und Verschlüsselte Integration deaktiviert ist
Bestätigen Sie die korrekte IP-Adresse und den Port (Standard 7094)
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
Prüfen Sie, ob die Firmware der INTEGRA-Zentrale Version 1.06 oder neuer ist
Ü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
Überprüfen Sie, ob die Moduladresse über die ADDRESS-Jumper korrekt eingestellt ist und nicht mit anderen Geräten am Bus in Konflikt steht
Prüfen Sie die DTM-, CKM-, COM- und +12V-Verbindungen zur Zentrale
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 INTEGRAModul
Satel
Lesen (Modul)
SENDDATA(BYTECOLLECTION("00"));
Zone 1Reed-KontaktNur lesen
booleanbitmask
Zone 1
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x01) > 0;
END
Zone 2Reed-KontaktNur lesen
booleanbitmask
Zone 2
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x02) > 0;
END
Zone 3Reed-KontaktNur lesen
booleanbitmask
Zone 3
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x04) > 0;
END
Zone 4Reed-KontaktNur lesen
booleanbitmask
Zone 4
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x08) > 0;
END
Zone 5Reed-KontaktNur lesen
booleanbitmask
Zone 5
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x10) > 0;
END
Zone 6Reed-KontaktNur lesen
booleanbitmask
Zone 6
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x20) > 0;
END
Zone 7Reed-KontaktNur lesen
booleanbitmask
Zone 7
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x40) > 0;
END
Zone 8Reed-KontaktNur lesen
booleanbitmask
Zone 8
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,1) & 0x80) > 0;
END
Zone 9Reed-KontaktNur lesen
booleanbitmask
Zone 9
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x01) > 0;
END
Zone 10Reed-KontaktNur lesen
booleanbitmask
Zone 10
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x02) > 0;
END
Zone 11Reed-KontaktNur lesen
booleanbitmask
Zone 11
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x04) > 0;
END
Zone 12Reed-KontaktNur lesen
booleanbitmask
Zone 12
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x08) > 0;
END
Zone 13Reed-KontaktNur lesen
booleanbitmask
Zone 13
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x10) > 0;
END
Zone 14Reed-KontaktNur lesen
booleanbitmask
Zone 14
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x20) > 0;
END
Zone 15Reed-KontaktNur lesen
booleanbitmask
Zone 15
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x40) > 0;
END
Zone 16Reed-KontaktNur lesen
booleanbitmask
Zone 16
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,2) & 0x80) > 0;
END
Zone 17Reed-KontaktNur lesen
booleanbitmask
Zone 17
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x01) > 0;
END
Zone 18Reed-KontaktNur lesen
booleanbitmask
Zone 18
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x02) > 0;
END
Zone 19Reed-KontaktNur lesen
booleanbitmask
Zone 19
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x04) > 0;
END
Zone 20Reed-KontaktNur lesen
booleanbitmask
Zone 20
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x08) > 0;
END
Zone 21Reed-KontaktNur lesen
booleanbitmask
Zone 21
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x10) > 0;
END
Zone 22Reed-KontaktNur lesen
booleanbitmask
Zone 22
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x20) > 0;
END
Zone 23Reed-KontaktNur lesen
booleanbitmask
Zone 23
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x40) > 0;
END
Zone 24Reed-KontaktNur lesen
booleanbitmask
Zone 24
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,3) & 0x80) > 0;
END
Zone 25Reed-KontaktNur lesen
booleanbitmask
Zone 25
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x01) > 0;
END
Zone 26Reed-KontaktNur lesen
booleanbitmask
Zone 26
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x02) > 0;
END
Zone 27Reed-KontaktNur lesen
booleanbitmask
Zone 27
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x04) > 0;
END
Zone 28Reed-KontaktNur lesen
booleanbitmask
Zone 28
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x08) > 0;
END
Zone 29Reed-KontaktNur lesen
booleanbitmask
Zone 29
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x10) > 0;
END
Zone 30Reed-KontaktNur lesen
booleanbitmask
Zone 30
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x20) > 0;
END
Zone 31Reed-KontaktNur lesen
booleanbitmask
Zone 31
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x40) > 0;
END
Zone 32Reed-KontaktNur lesen
booleanbitmask
Zone 32
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,4) & 0x80) > 0;
END
Zone 33Reed-KontaktNur lesen
booleanbitmask
Zone 33
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x01) > 0;
END
Zone 34Reed-KontaktNur lesen
booleanbitmask
Zone 34
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x02) > 0;
END
Zone 35Reed-KontaktNur lesen
booleanbitmask
Zone 35
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x04) > 0;
END
Zone 36Reed-KontaktNur lesen
booleanbitmask
Zone 36
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x08) > 0;
END
Zone 37Reed-KontaktNur lesen
booleanbitmask
Zone 37
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x10) > 0;
END
Zone 38Reed-KontaktNur lesen
booleanbitmask
Zone 38
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x20) > 0;
END
Zone 39Reed-KontaktNur lesen
booleanbitmask
Zone 39
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x40) > 0;
END
Zone 40Reed-KontaktNur lesen
booleanbitmask
Zone 40
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,5) & 0x80) > 0;
END
Zone 41Reed-KontaktNur lesen
booleanbitmask
Zone 41
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x01) > 0;
END
Zone 42Reed-KontaktNur lesen
booleanbitmask
Zone 42
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x02) > 0;
END
Zone 43Reed-KontaktNur lesen
booleanbitmask
Zone 43
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x04) > 0;
END
Zone 44Reed-KontaktNur lesen
booleanbitmask
Zone 44
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x08) > 0;
END
Zone 45Reed-KontaktNur lesen
booleanbitmask
Zone 45
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x10) > 0;
END
Zone 46Reed-KontaktNur lesen
booleanbitmask
Zone 46
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x20) > 0;
END
Zone 47Reed-KontaktNur lesen
booleanbitmask
Zone 47
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x40) > 0;
END
Zone 48Reed-KontaktNur lesen
booleanbitmask
Zone 48
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,6) & 0x80) > 0;
END
Zone 49Reed-KontaktNur lesen
booleanbitmask
Zone 49
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x01) > 0;
END
Zone 50Reed-KontaktNur lesen
booleanbitmask
Zone 50
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x02) > 0;
END
Zone 51Reed-KontaktNur lesen
booleanbitmask
Zone 51
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x04) > 0;
END
Zone 52Reed-KontaktNur lesen
booleanbitmask
Zone 52
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x08) > 0;
END
Zone 53Reed-KontaktNur lesen
booleanbitmask
Zone 53
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x10) > 0;
END
Zone 54Reed-KontaktNur lesen
booleanbitmask
Zone 54
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x20) > 0;
END
Zone 55Reed-KontaktNur lesen
booleanbitmask
Zone 55
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x40) > 0;
END
Zone 56Reed-KontaktNur lesen
booleanbitmask
Zone 56
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,7) & 0x80) > 0;
END
Zone 57Reed-KontaktNur lesen
booleanbitmask
Zone 57
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x01) > 0;
END
Zone 58Reed-KontaktNur lesen
booleanbitmask
Zone 58
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x02) > 0;
END
Zone 59Reed-KontaktNur lesen
booleanbitmask
Zone 59
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x04) > 0;
END
Zone 60Reed-KontaktNur lesen
booleanbitmask
Zone 60
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x08) > 0;
END
Zone 61Reed-KontaktNur lesen
booleanbitmask
Zone 61
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x10) > 0;
END
Zone 62Reed-KontaktNur lesen
booleanbitmask
Zone 62
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x20) > 0;
END
Zone 63Reed-KontaktNur lesen
booleanbitmask
Zone 63
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x40) > 0;
END
Zone 64Reed-KontaktNur lesen
booleanbitmask
Zone 64
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,8) & 0x80) > 0;
END
Zone 65Reed-KontaktNur lesen
booleanbitmask
Zone 65
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x01) > 0;
END
Zone 66Reed-KontaktNur lesen
booleanbitmask
Zone 66
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x02) > 0;
END
Zone 67Reed-KontaktNur lesen
booleanbitmask
Zone 67
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x04) > 0;
END
Zone 68Reed-KontaktNur lesen
booleanbitmask
Zone 68
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x08) > 0;
END
Zone 69Reed-KontaktNur lesen
booleanbitmask
Zone 69
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x10) > 0;
END
Zone 70Reed-KontaktNur lesen
booleanbitmask
Zone 70
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x20) > 0;
END
Zone 71Reed-KontaktNur lesen
booleanbitmask
Zone 71
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x40) > 0;
END
Zone 72Reed-KontaktNur lesen
booleanbitmask
Zone 72
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,9) & 0x80) > 0;
END
Zone 73Reed-KontaktNur lesen
booleanbitmask
Zone 73
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x01) > 0;
END
Zone 74Reed-KontaktNur lesen
booleanbitmask
Zone 74
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x02) > 0;
END
Zone 75Reed-KontaktNur lesen
booleanbitmask
Zone 75
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x04) > 0;
END
Zone 76Reed-KontaktNur lesen
booleanbitmask
Zone 76
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x08) > 0;
END
Zone 77Reed-KontaktNur lesen
booleanbitmask
Zone 77
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x10) > 0;
END
Zone 78Reed-KontaktNur lesen
booleanbitmask
Zone 78
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x20) > 0;
END
Zone 79Reed-KontaktNur lesen
booleanbitmask
Zone 79
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x40) > 0;
END
Zone 80Reed-KontaktNur lesen
booleanbitmask
Zone 80
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,10) & 0x80) > 0;
END
Zone 81Reed-KontaktNur lesen
booleanbitmask
Zone 81
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x01) > 0;
END
Zone 82Reed-KontaktNur lesen
booleanbitmask
Zone 82
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x02) > 0;
END
Zone 83Reed-KontaktNur lesen
booleanbitmask
Zone 83
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x04) > 0;
END
Zone 84Reed-KontaktNur lesen
booleanbitmask
Zone 84
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x08) > 0;
END
Zone 85Reed-KontaktNur lesen
booleanbitmask
Zone 85
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x10) > 0;
END
Zone 86Reed-KontaktNur lesen
booleanbitmask
Zone 86
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x20) > 0;
END
Zone 87Reed-KontaktNur lesen
booleanbitmask
Zone 87
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x40) > 0;
END
Zone 88Reed-KontaktNur lesen
booleanbitmask
Zone 88
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,11) & 0x80) > 0;
END
Zone 89Reed-KontaktNur lesen
booleanbitmask
Zone 89
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x01) > 0;
END
Zone 90Reed-KontaktNur lesen
booleanbitmask
Zone 90
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x02) > 0;
END
Zone 91Reed-KontaktNur lesen
booleanbitmask
Zone 91
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x04) > 0;
END
Zone 92Reed-KontaktNur lesen
booleanbitmask
Zone 92
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x08) > 0;
END
Zone 93Reed-KontaktNur lesen
booleanbitmask
Zone 93
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x10) > 0;
END
Zone 94Reed-KontaktNur lesen
booleanbitmask
Zone 94
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x20) > 0;
END
Zone 95Reed-KontaktNur lesen
booleanbitmask
Zone 95
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x40) > 0;
END
Zone 96Reed-KontaktNur lesen
booleanbitmask
Zone 96
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,12) & 0x80) > 0;
END
Zone 97Reed-KontaktNur lesen
booleanbitmask
Zone 97
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x01) > 0;
END
Zone 98Reed-KontaktNur lesen
booleanbitmask
Zone 98
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x02) > 0;
END
Zone 99Reed-KontaktNur lesen
booleanbitmask
Zone 99
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x04) > 0;
END
Zone 100Reed-KontaktNur lesen
booleanbitmask
Zone 100
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x08) > 0;
END
Zone 101Reed-KontaktNur lesen
booleanbitmask
Zone 101
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x10) > 0;
END
Zone 102Reed-KontaktNur lesen
booleanbitmask
Zone 102
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x20) > 0;
END
Zone 103Reed-KontaktNur lesen
booleanbitmask
Zone 103
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x40) > 0;
END
Zone 104Reed-KontaktNur lesen
booleanbitmask
Zone 104
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,13) & 0x80) > 0;
END
Zone 105Reed-KontaktNur lesen
booleanbitmask
Zone 105
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x01) > 0;
END
Zone 106Reed-KontaktNur lesen
booleanbitmask
Zone 106
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x02) > 0;
END
Zone 107Reed-KontaktNur lesen
booleanbitmask
Zone 107
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x04) > 0;
END
Zone 108Reed-KontaktNur lesen
booleanbitmask
Zone 108
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x08) > 0;
END
Zone 109Reed-KontaktNur lesen
booleanbitmask
Zone 109
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x10) > 0;
END
Zone 110Reed-KontaktNur lesen
booleanbitmask
Zone 110
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x20) > 0;
END
Zone 111Reed-KontaktNur lesen
booleanbitmask
Zone 111
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x40) > 0;
END
Zone 112Reed-KontaktNur lesen
booleanbitmask
Zone 112
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,14) & 0x80) > 0;
END
Zone 113Reed-KontaktNur lesen
booleanbitmask
Zone 113
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x01) > 0;
END
Zone 114Reed-KontaktNur lesen
booleanbitmask
Zone 114
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x02) > 0;
END
Zone 115Reed-KontaktNur lesen
booleanbitmask
Zone 115
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x04) > 0;
END
Zone 116Reed-KontaktNur lesen
booleanbitmask
Zone 116
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x08) > 0;
END
Zone 117Reed-KontaktNur lesen
booleanbitmask
Zone 117
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x10) > 0;
END
Zone 118Reed-KontaktNur lesen
booleanbitmask
Zone 118
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x20) > 0;
END
Zone 119Reed-KontaktNur lesen
booleanbitmask
Zone 119
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x40) > 0;
END
Zone 120Reed-KontaktNur lesen
booleanbitmask
Zone 120
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,15) & 0x80) > 0;
END
Zone 121Reed-KontaktNur lesen
booleanbitmask
Zone 121
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x01) > 0;
END
Zone 122Reed-KontaktNur lesen
booleanbitmask
Zone 122
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x02) > 0;
END
Zone 123Reed-KontaktNur lesen
booleanbitmask
Zone 123
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x04) > 0;
END
Zone 124Reed-KontaktNur lesen
booleanbitmask
Zone 124
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x08) > 0;
END
Zone 125Reed-KontaktNur lesen
booleanbitmask
Zone 125
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x10) > 0;
END
Zone 126Reed-KontaktNur lesen
booleanbitmask
Zone 126
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x20) > 0;
END
Zone 127Reed-KontaktNur lesen
booleanbitmask
Zone 127
Listener
VAR cmd := GETAT(RECEIVEDBYTES,0);
IF(cmd = 0)
Rc := (GETAT(RECEIVEDBYTES,16) & 0x40) > 0;
END
Zone 128Reed-KontaktNur lesen
booleanbitmask
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