Kontaktsensor
Das Modul reagiert entsprechend hinterlegter Verzögerungszeit und Bedingungen auf das Öffnen bzw. Schließen von Fenster- bzw. Türkontakten und führt eine Temperaturabsenkung durch.
Wer die Meldungsverwaltung (Thema: Meldungsanzeige im WebFront ) nutzt, kann sich über den Schaltvorgang informieren lassen.

1. Funktionsumfang
- Überwachen beliebig vieler Kontaktsensoren (z.B. pro Raum), jeder Wert ungleich 0 gilt als offen (auch gekippt), je Sensor invertierbar (z.B. Zigbee2MQTT)
- Verzögertes Absenken der Heizung entsprechend eingestellter Zeit
- Schalten beliebig vieler Heizkörper (Thermostate bzw. Stellantriebe) herstellerneutral per
RequestAction - Bedingtes Schalten in Abhängigkeit …
- der Ventilstellung / Ventilöffnung
- der Differenz zwischen Außen- und Innentemperatur
- Wiederholtes Testen der Bedingungen nach einstellbarer Zeit
- Automatisches Aufheben der Absenkung unabhängig vom Zustand der Sensoren
- Nachrichten an Meldungsverwaltung und Visualisierung beim Öffnen, Schließen und bei zu lange geöffnetem Fenster (optional nur unterhalb einer Außentemperatur)
- Statusvariablen zum Steuern des bedingten Schaltens (z.B. über die Kachel-Visualisierung)
- Testfunktionen im Aktionsbereich der Konfiguration
2. Voraussetzungen
- Symcon ab Version 8.1
- Heizkörper mit schaltbarer Fensterstatus-Variable (Bool, Integer oder Float mit Aktion), z.B.
WINDOW_STATEbei HmIP-WTH2 und HmIP-eTRV(-2), oder mit schaltbarer Solltemperatur-Variable (Integer oder Float mit Aktion) für Geräte ohne Fensterstatus
3. Installation
- Über den Modul Store das Modul Fenster- und Türkontakt installieren.
- Alternativ über das Modul Control folgende URL hinzufügen.
https://github.com/Wilkware/ContactSensorodergit://github.com/Wilkware/ContactSensor.git
4. Einrichtung
- Unter ‘Instanz hinzufügen’ ist das Fenster- und Türkontakt-Modul (Alias: Türkontakt, Fensterkontakt) unter dem Hersteller ‘(Geräte)’ aufgeführt.
Konfigurationsseite:
Einstellungsbereich:
🪟 Kontakt-Sensoren …
| Name | Beschreibung |
|---|---|
| Sensoren | Liste der Statusvariablen der Kontaktsensoren (0/false = geschlossen, jeder andere Wert = offen; mit „Invertiert“ gilt 0/false als offen, z.B. contact bei Zigbee2MQTT) mit Typ je Sensor (Fenster, Dachfenster, Tür, Terrassentür oder Sonstiges); der Typ bestimmt das Symbol in der Kachel |
🔀 Bedingtes Schalten …
| Name | Beschreibung |
|---|---|
| Reaktionszeit (Verzögerung) | Zeit zwischen Erkennen und Schalten |
| Positionsvariable | Variable, welche die aktuelle Ventilposition enthält (für die Prüfung der Ventilstellung) |
Hinweis: Ob Ventilstellung und Temperaturdifferenz (auch wiederholt) geprüft werden und ob bzw. wann die Absenkung automatisch aufgehoben wird, wird über die Statusvariablen eingestellt (siehe 5.).
🔥 Heizungssystem …
| Name | Beschreibung |
|---|---|
| Heizkörper | Liste der zu schaltenden Variablen der Thermostate bzw. Stellantriebe mit Modus je Eintrag, Schalten per RequestAction: Fensterstatus: offen = true/1, geschlossen = false/0 Solltemperatur: Absenken auf die Absenktemperatur (im Bearbeiten-Dialog nur in diesem Modus einstellbar), beim Schließen wird der vorherige Sollwert wiederhergestellt (nicht, wenn er zwischenzeitlich manuell oder per Wochenprogramm verändert wurde) |
🌡️ Klimawerte …
| Name | Beschreibung |
|---|---|
| Innentemperatur | Aktuelle Raumtemperatur |
| Außentemperatur | Aktuelle Außentemperatur |
🔔 Meldungsverwaltung …
| Name | Beschreibung |
|---|---|
| Meldung an Anzeige senden | Auswahl ob Eintrag in die Meldungsverwaltung erfolgen soll oder nicht (Ja/Nein) |
| Auslöser der Nachricht | Auswahl bei welcher Aktion eine Nachricht erfolgen soll (Öffnen, Schließen, Zu lange offen oder Kombinationen) |
| Lebensdauer der Nachricht (Öffnen) | Wie lange soll die öffnende Meldung angezeigt werden? |
| Lebensdauer der Nachricht (Schließen) | Wie lange soll die schließende Meldung angezeigt werden? |
| Nachricht an Visualisierung senden | Auswahl ob Push-Nachricht gesendet werden soll oder nicht (Ja/Nein) |
| Auslöser der Nachricht | Auswahl bei welcher Aktion eine Nachricht erfolgen soll (Öffnen, Schließen, Zu lange offen oder Kombinationen) |
| Raumname | Text zur eindeutigen Zuordnung des Raums |
| Format der Textmitteilung (Öffnen) | Frei wählbares Format der öffnenden Nachricht/Meldung |
| Format der Textmitteilung (Schließen) | Frei wählbares Format der schließenden Nachricht/Meldung |
| Offen länger als | Dauer, nach der beim Auslöser „Zu lange offen“ eine Nachricht erfolgt, wenn noch mindestens ein Sensor offen ist (einmal je Öffnung, unabhängig von der Automatik) |
| Nur wenn Außentemperatur unter | Nachricht „Zu lange offen“ nur, wenn die Außentemperatur (Klimawerte) unter dem eingestellten Wert liegt; sonst wird minütlich erneut geprüft, solange der Sensor offen ist |
| Format der Textmitteilung (zu lange offen) | Frei wählbares Format der Nachricht/Meldung „Zu lange offen“ (die Meldung wird beim Schließen aller Sensoren entfernt) |
| Visualisierungs-Instanz | ID der Visualisierung, an welches die Push-Nachrichten gesendet werden soll (WebFront oder TileVisu Instanz) |
| Ton der Benachrichtigung | Ton der Push-Nachricht (WebFront und Kachel-Visu, Standard: buzzer) |
| Meldungsskript | Skript ID des Meldungsverwaltungsskripts |
| Meldungsschlüssel (optional) | Leer = jede Meldung wird neu hinzugefügt (wie bisher). Mit Schlüssel wird eine bestehende Meldung mit gleichem Schlüssel aktualisiert (Meldungsskript ab v8, ältere Skripte ignorieren den Schlüssel). Gleicher Schlüssel in mehreren Instanzen ergibt eine gemeinsame Meldung. |
⚙️ Erweiterte Einstellungen …
| Name | Beschreibung |
|---|---|
| Gleichzeitiges Ausführen eines Skriptes | Auswahl eines Skriptes, welches nur oder zusätzlich ausgeführt werden soll (IPS_RunScriptEx). Status 1(open) bzw. 0(close) wird im Array als ‘WINDOW_STATE’ übergeben. Die ID des ausführenden Moduls wird in ‘MODUL’ mitgegeben. |
| Statusvariable für den Kontaktzustand anlegen | Legt die Statusvariable „Kontaktzustand“ an (offen, sobald mindestens ein Sensor offen ist), z.B. zur Zusammenfassung mehrerer Fenster eines Raumes; beim Abwählen wird sie wieder gelöscht |
Aktionsbereich:
🧪 Test …
| Aktion | Beschreibung |
|---|---|
| TEMPERATUR ABSENKEN | Schaltet die Heizkörper (und das Skript) direkt auf OFFEN, ohne Prüfung der Bedingungen |
| ABSENKUNG AUFHEBEN | Hebt eine aktive Absenkung auf |
| ZU LANGE OFFEN | Sendet die Nachricht „Zu lange offen“ an Visualisierungs-Instanz und Meldungsskript, unabhängig von Nachrichteneinstellungen, Auslösern und Bedingungen (die Meldung im Dashboard wird beim nächsten Schließen aller Sensoren entfernt) |
Hinweis: Das Ergebnis wird jeweils als Popup angezeigt, inkl. Anzahl der Heizkörper, die nicht geschaltet werden konnten (Details im Meldungsfenster).
5. Statusvariablen
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
| Name | Typ | Beschreibung |
|---|---|---|
| Kontaktzustand | Boolean | Optional (Erweiterte Einstellungen): offen, sobald mindestens ein Sensor offen ist (nur lesend) |
| Automatik | Boolean | Schaltet die automatische Absenkung ein/aus |
| Ventilstellung prüfen | Boolean | Absenkung nur bei laufender Heizung (Ventilstellung > 0%) |
| Temperaturdifferenz prüfen | Boolean | Absenkung nur bei Überschreiten der Temperaturdifferenz |
| Temperaturdifferenz | Integer | Schwellwert zwischen Innen- und Außentemperatur |
| Bedingungen wiederholt prüfen | Integer | Intervall der erneuten Prüfung der Bedingungen |
| Absenkung automatisch aufheben | Integer | Zeitspanne bis zur automatischen Aufhebung der Absenkung |
| Absenkung | Boolean | Anzeige, ob die Absenkung aktiv ist (nur lesend) |
Hinweis: Die Statusvariablen sind die einzige Quelle für die Einstellungen des bedingten Schaltens. Beim Update von v3.x werden sie mit den bisherigen Konfigurationswerten initialisiert.
6. Darstellungen
Die Darstellungen werden direkt an den Statusvariablen hinterlegt, es werden keine Profile angelegt.
| Variable | Darstellung | Werte |
|---|---|---|
| Kontaktzustand | Wertanzeige | Geschlossen (false), Offen (true); Symbol je nach Typ der Sensoren wie in der Kachel |
| Automatik | Schalter | An / Aus |
| Ventilstellung prüfen | Schalter | An / Aus |
| Temperaturdifferenz prüfen | Schalter | An / Aus |
| Temperaturdifferenz | Schieberegler | 0 – 30 °C (Schrittweite 1) |
| Bedingungen wiederholt prüfen | Aufzählung | Aus, 1, 2, 3, 4, 5, 10, 15 min |
| Absenkung automatisch aufheben | Aufzählung | Aus, 10, 20, 30, 40, 50 min, 1, 2, 5 h |
| Absenkung | Wertanzeige | Inaktiv (false), Aktiv (true) |
7. Visualisierung
Das Modul bringt eine eigene Kachel für die Kachel-Visualisierung mit:
- Symbol je nach Typ der Sensoren (Fenster, Dachfenster, Tür, Terrassentür; bei gemischten Typen oder Sonstiges ein allgemeines Sensorsymbol) geöffnet bzw. geschlossen und Zustandstext in Zustandsfarbe (Geschlossen, Offen, Absenkung startet, Warte auf Bedingungen, Absenkung aktiv, Automatik aus)
- Countdown für Verzögerung, nächste Prüfung bzw. automatische Aufhebung
- Schalter für die Automatik (oben rechts)
- Leiste mit den Einstellungen des bedingten Schaltens (Ventil, Temperatur, Wiederholen, Aufheben); Ventil wird per Tippen umgeschaltet, die übrigen öffnen einen Slider
- Ventil wird nur angezeigt, wenn eine Ventilstellungs-Variable hinterlegt ist, Temperatur nur bei hinterlegter Innen- und Außentemperatur, Wiederholen nur, wenn mindestens eine der beiden Bedingungen verfügbar ist
Geschlossen:

Offen, keine Absenkung (Bedingungen nicht erfüllt):

Warte auf Bedingungen (Countdown bis zur nächsten Prüfung):

Absenkung startet (Verzögerung läuft):

Absenkung aktiv (Countdown bis zur automatischen Aufhebung):

Automatik aus:

Zusätzlich können die Statusvariablen mit ihren Darstellungen (siehe 6.) einzeln genutzt werden.
Hinweis: Das Script ‘Meldungsanzeige im WebFront’ (Meldungsverwaltung) wird unterstützt.
8. Befehlsreferenz
Das Modul stellt keine direkten Funktionsaufrufe zur Verfügung.
9. Versionshistorie
v4.3.20261104
- NEU: Ton der Push-Nachricht wählbar (WebFront und Kachel-Visu)
- NEU: Optionaler Meldungsschlüssel für das Meldungsskript (ab v8: Aktualisieren statt erneut Hinzufügen)
- FIX: Push-Nachricht im WebFront bekam den Icon-Namen statt des Tons
v4.2.20261027
- NEU: Nachrichtenauslöser „Zu lange offen“, optional nur unterhalb einer Außentemperatur
- NEU: Kontaktsensoren invertierbar (z.B.
contactbei Zigbee2MQTT: true = geschlossen) - NEU: Optionale Statusvariable „Kontaktzustand“ (offen/geschlossen) unter „Erweiterte Einstellungen“
- NEU: Kachel zeigt nur die Bedingungen, deren Variablen hinterlegt sind
v4.1.20261025
- NEU: Alternativ Absenkung der Solltemperatur auf einen wählbaren Wert für Geräte ohne Fensterstatus-Variable
- NEU: Bearbeiten-Dialog der Heizkörper (Absenktemperatur nur im Modus Solltemperatur einstellbar)
- NEU: Rückmeldung der Testfunktionen als Popup
- NEU: Testbereich vereinheitlicht
- FIX: Status in den Listen zeigte einen veralteten, mitgespeicherten Wert (z.B. „Aktion erforderlich“)
v4.0.20261004
- NEU: Kompatibilität auf Symcon 8.1 hoch gesetzt
- NEU: Heizkörper werden herstellerneutral per RequestAction geschaltet (Liste von Fensterstatus-Variablen)
- NEU: Beliebig viele Kontaktsensoren (Liste), gekippt wird als offen gewertet
- NEU: Einstellungen des bedingten Schaltens als Statusvariablen inkl. Unterstützung der Kachel-Visualisierung
- NEU: Eigene Kachel für die Kachel-Visualisierung inkl. Einstellungen
- NEU: Auswahl des Typs je Sensor (Fenster, Dachfenster, Tür, Terrassentür, Sonstiges) für das Symbol in der Kachel
- NEU: Automatik zum Ein-/Ausschalten der Absenkung (unterbrochener Ablauf wird beim Einschalten fortgesetzt)
- NEU: Skriptauswahl unter ‘Erweiterte Einstellungen’ verschoben
- NEU: Testfunktionen im Aktionsbereich
- NEU: Automatische Migration der bisherigen Konfiguration
- NEU: Konfigurationsformular auf Standard-Struktur umgestellt
- FIX: 4. Kontaktsensor wurde nicht überwacht
- FIX: Fehlerhafte Zustandsverwaltung bei mehreren offenen Sensoren
- FIX: Typfehler beim Speichern der Meldungsnummer
- FIX: Meldung wird beim Schließen immer entfernt
- FIX: Warten auf Kernel-Start, Prüfung gelöschter Variablen
v3.0.20240908
- NEU: Kompatibilität auf IPS 6.4 hoch gesetzt
- FIX: Unterscheidung der verschiedenen Visualisierungsinstanzen (PushNotification)
- FIX: Bibliotheks- bzw. Modulinfos vereinheitlicht
- FIX: Namensnennung und Repo vereinheitlicht
- FIX: Update Style-Checks
- FIX: Übersetzungen überarbeitet und verbessert
- FIX: Dokumentation vereinheitlicht
v2.1.20230110
- NEU: Referenzieren der Gerätevariablen hinzugefügt (sicheres Löschen)
- NEU: Erweiterung zum Ausführen eines Skriptes
- FIX: 4. Kontaktsensor wurde nicht berücksichtigt
v2.0.20221204
- NEU: Konfigurationsformular überarbeitet und vereinheitlicht
- NEU: Kompatibilität auf 6.0 hoch gesetzt
- NEU: Meldungswesen komplett überarbeitet und erweitert
- FIX: Interne Bibliotheken überarbeitet und vereinheitlicht
- FIX: Dokumentation überarbeitet
v1.2.20201219
- NEU: 3. und 4. Kontaktsensor hinzugefügt
- FIX: Meldungslogik verbessert
v1.1.20201204
- NEU: 2. Kontaktsensor hinzugefügt
- NEU: Wiederholungsintervall für bedingtes Schalten hinzugefügt
- NEU: Zeitspanne für Aufhebung der Absenkung hinzugefügt
- NEU: Aliase für Modul auf Türkontakt und Fensterkontakt geändert
- FIX: Schaltungslogik komplett neu umgesetzt (via WINDOW_STATE)
- FIX: Zugriff auf interne Funktionen aufgehoben
- FIX: Meldungslogik umgebaut
v1.0.20200515
- NEU: Initialversion
Entwickler
Seit nunmehr über 10 Jahren fasziniert mich das Thema Haussteuerung. In den letzten Jahren betätige ich mich auch intensiv in der Symcon Community und steuere dort verschiedenste Skript und Module bei. Ihr findet mich dort unter dem Namen @pitti ;-)
Spenden
Die Software ist für die nicht kommerzielle Nutzung kostenlos, über eine Spende bei Gefallen des Moduls würde ich mich freuen.
Lizenz
Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International