HomeMatic Fensterkontakt unter FHEM
Seiteninhalte
In diesem Artikel wollen wir den HomeMatic Fensterkontakt HM-Sec-SCo unter FHEM einbinden. Der Fensterkontakt lässt sich an jedem handelsüblichen Fenster montieren und ist selbstverständlich ebenso als Türkontakt einsetzbar. Ihr könnt dabei selber überlegen, ob Ihr ihn schraubend befestigen oder ihn ganz einfach und zerstörungslos mit dem mitgelieferten doppelseitigen Klebe-Pad befestigen wollt.
Die Klebepads haben sich bei mir in der Praxis als sehr haltbar herausgestellt. Voraussetzung hierfür ist natürlich die vorherige Reinigung des Untergrundes. Ich habe für solche Zwecke immer etwas Reinigungsbenzin aus dem Baumarkt parat.
Mit dem HomeMatic Fensterkontakt ist es in erster Linie möglich, die Heizung beim Öffnen eines Fensters automatisch herunter zu regeln, um Energie zu sparen. Es ist neben der weiteren Nutzung als Alarmanlage aber auch jede andere Verwendung denkbar. Ihr könntet den Türkontakt z.B. so einsetzen, dass automatisch das Licht angeschaltet wird, was wir zum Ende des Artikels in einem kurzen Beispiel beschreiben werden.
Voraussetzung
- Grundinstallation von FHEM und dem Raspberry Pi
- HomeMatic mit der CUL günstig unter FHEM einbinden
- FHEM Heizungssteuerung mit HomeMatic
Einkaufsliste
Name | Amazon |
HomeMatic Türkontakt/Fensterkontakt optisch HM-Sec-SCo | zum Produkt bei Amazon |
Pairing des HomeMatic Fensterkontakts mit FHEM
Ihr bringt Eure VCCU in den Pairing-Modus:
1 | set VCCU hmPairForSec 120 |
Innerhalb der 120 Sekunden drückt Ihr nun die Anlerntaste auf Eurem HomeMatic HM-Sec-SCo. Die Taste ist gleichzeitig auch die Status-LED. Eigentlich lässt sie sich ganz einfach mit dem flachen Finger drücken. Wenn das nicht klappt, nehmt Ihr z.B. einen geschlossenen Kugelschreiber zur Hilfe.
Das neue Gerät sollte nun in dem Unterordner „CUL_HM“ angelegt werden. Sollte das Anlernen nicht funktionieren, werft wie gewohnt einen Blick in den Event-Monitor.
Wir vergeben dem neu angelegten Gerät einen neuen Namen und halten uns dabei an unsere Namenkonvention (sz = Schlafzimmer). „HM_xxxxxx“ ersetzt Ihr durch den Namen Eures Geräts.
1 | rename HM_xxxxxx sz_fenster |
Verbinden des Fensterkontakts mit dem Heizkörper
In dem Artikel FHEM Heizungssteuerung mit HomeMatic hatten wir die Einrichtung des HomeMatic Heizkörper-Thermostats HM-CC-RT-DN bereits ausführlich behandelt.
Die Verbindung zwischen dem HomeMatic Fensterkontakts und dem HM-CC-RT-DN wird über einen sogenannten „Peer“ realisiert. „Peer“ steht direkt übersetzt für „Kollege“ oder „Partner“.
Das „Peering“ bewirkt, dass der Fensterkontakt seine Statusänderungen direkt mit dem „WindowRec“-Kanal (genau genommen der Kanal 03) des Heizkörper-Thermostats kommuniziert. Dies hat zum einen den Vorteil, dass diese Kommunikation nach dem Einrichten auch ohne FHEM weiterlaufen würde. Wichtiger ist aber, dass die Heizung durch die direkte Verbindung viel schneller auf ein offenes Fenster reagieren kann.
Wir gehen bei den nächsten Befehlen davon aus, dass Ihr Euch an die namentlichen Vorgaben der vorherigen Artikel gehalten habt. Anderenfalls müsst ihr die Namen entsprechend austauschen. „sz_heizung_WindowRec“ ist der Name des Kanals 03 (channel_03) von Eurem Thermostat.
1 | set sz_fenster peerChan 0 sz_heizung_WindowRec single |
Ihr müsst nun den Taster am Fenster- bzw. Türkontakt drücken, um den Peering-Vorgang zu bestätigen, im Log sollte es nun so oder zumindest ähnlich aussehen:
1 2 3 4 5 6 7 8 9 10 | 2017-01-11 19:03:02 CUL_HM sz_fenster R-sz_heizung_WindowRec-expectAES: set_off 2017-01-11 19:03:02 CUL_HM sz_fenster R-sz_heizung_WindowRec-peerNeedsBurst: set_on 2017-01-11 19:03:02 CUL_HM sz_heizung CMDs_pending 2017.01.11 19:03:02 3 : CUL_HM set sz_fenster peerChan 0 sz_heizung_WindowRec single 2017.01.11 19:03:22 3 : Device sz_fenster added to ActionDetector with 002:50 time 2017.01.11 19:03:22 3 : CUL_HM set sz_fenster getConfig 2017-01-11 19:03:23 CUL_HM ActionDetector status_sz_fenster: alive … 2017-01-11 19:03:26 CUL_HM sz_fenster R-sz_heizung_WindowRec-expectAES: off 2017-01-11 19:03:26 CUL_HM sz_fenster R-sz_heizung_WindowRec-peerNeedsBurst: on |
Im Log ist auch schön zu sehen, dass der Burst-Modus des Thermostats aktiviert wurde, dieser muss aktiviert sein, damit der RT jederzeit bereit ist, Befehle entgegen zu nehmen. Ohne Burst-Modus erwacht der RT nur alle 2,5 Minuten und ist in der Zwischenzeit nicht Empfangsbereit. In Verbindung mit einem Fenstersensor würde dies nicht funktionieren.
Vorteil des Ganzen ist auch, dass Eure Befehle aus FHEM heraus viel schneller abgearbeitet werden. Nachteil ist der höhere Energieverbrauch, da der HM-CC-RT-DN ständig empfangsbereit ist. In der Praxis stellt dies aber kein großes Problem dar.
Im WindowRec-Channel eurer „Heizung“ sollte der Fensterkontakt nun in der peerList auftauchen, wie im Bild zu sehen ist.
Interne Lüftungserkennung abschalten (optional)
Der HomeMatic Heizkörper-Thermostat hat von Haus aus eine interne Lüftungserkennung. Wird ein starker Temperaturabfall festgestellt, wird die Temperatur automatisch heruntergeregelt. In der Praxis hat diese interne Erkennung bei mir aber nicht immer funktioniert.
Da diese Funktionalität durch die Tür- und Fensterkontakte ersetzt werden soll, kann optional auch die interne Erkennung abgeschaltet werden. Ich habe dies bei mir nicht überall durchgeführt, stelle hierbei aber auch keinerlei Unterschiede fest.
So schaltet Ihr die interne Erkennung aus:
1 2 | set sz_heizung_Clima getConfig set sz_heizung_Clima regSet winOpnMode off |
Nachdem „sz_heizung“ alle Befehle verarbeitet hat („STATE“ also wieder auf „CMDs_done“ steht) könnt ihr den „winOpnMode“ folgendermaßen überprüfen:
1 | get sz_heizung_Clima regTable |
um alle Register auszulesen oder auch nur:
1 | get sz_heizung_Clima reg winOpnMode |
Absenktemperatur auswählen
Als nächstes müssen wir dem Thermostat noch sagen, was er im Falle eines offenen Fensters tun soll, bzw. auf welche Temperatur er absenken soll.
An dieser Stelle ist ein Wert zwischen 5 und 30 °C gültig, wir wählen in unserem Beispiel den kleinstmöglichen Wert:
1 | set sz_heizung_WindowRec regSet winOpnTemp 5 sz_fenster |
Der erste Testlauf
Das Setup ist bereit für einen ersten Test. Öffnet den Event-Monitor, um den ganzen Vorgang zu beobachten.
Öffnet bzw. schließt das Fenster zur Probe. Bei dem Übergang von geschlossen zu offen sollten im Log u.a. folgende Meldungen auftauchen.
Da ich in meinem Schlafzimmer nicht heize, liegt die normal-Temperatur bei nur 10 °C, bei offenem Fenster wird erfolgreich auf 5° C gesenkt.
1 2 3 4 5 6 7 8 9 | 2017-01-11 19:48:46 CUL_HM sz_fenster open 2017-01-11 19:48:47 CUL_HM sz_fenster contact: open (to sz_heizung) 2017-01-11 19:48:47 CUL_HM sz_fenster open 2017-01-11 19:48:47 CUL_HM sz_fenster trigger_cnt: 243 2017-01-11 19:48:47 CUL_HM sz_heizung_WindowRec trigLast: sz_fenster:open 2017-01-11 19:48:47 CUL_HM sz_heizung_WindowRec trig_sz_fenster: Open_243 … 2017-01-11 19:48:58 CUL_HM sz_heizung desired-temp: 5.0 2017-01-11 19:48:58 CUL_HM sz_heizung measured-temp: 15.8 |
Das Licht mit DOIF über den Türkontakt steuern
Möglicherweise habt Ihr irgendwo bei Euch zu Hause die Notwendigkeit, automatisch das Licht einzuschalten, wenn eine bestimmte Tür geöffnet wird. Nutzt den HM-Sec-SCo als Türkontakt am Abstellraum, um dort für eine bestimmte Zeit das Licht einzuschalten:
Leeren DOIF (eine kurze DOIF-Einführung) anlegen und Raum zuordnen:
1 2 | define di_SzLichtFenster DOIF ([12:00]) attr di_SzLichtFenster room Schlafzimmer |
Den DOIF folgendermaßen editieren:
1 2 3 4 | ([az_fenster] eq "open") (set az_licht on) DOELSE (set az_licht off) |
Oder wollt Ihr den Türkontakt an der Haustür benutzen, um im Flur für 2 Minuten das Licht einzuschalten, wenn ihr nach Hause kommt?
Wichtig ist, dass ihr nach Hause kommt, also noch nicht als anwesend registriert seid. Dies setzt den Artikel Simple Anwesenheitserkennung mit FHEM die jeder einrichten kann voraus. Ihr müsst natürlich mit dem Timing vorsichtig sein und etwas herum experimentieren. Wenn ihr bereits draußen auf der Straße im WLAN registriert seid, schlägt diese Variante natürlich fehl.
Weitere Bedingung ist, dass es draußen bereits dunkel ist. Die Dämmerungs-Erkennung benötigt kein weiteres Zubehör und ist in diesem Artikel beschrieben: Dämmerungs-Erkennung mit FHEM und Twilight. Dazu darf das Licht nicht schon vorher eingeschaltet gewesen sein, da es von „on-for-timer“ nach Ablauf der Zeit wieder ausgeschaltet wird.
1 2 | define di_FlLichtHaustuer DOIF ([12:00]) attr di_FlLichtHaustuer room Flur |
Das vollständige DOIF:
1 2 | ([fl_haustuer] eq "open" and [Anwesenheit] eq "absent" and [T:light] < 5 and [fl_licht] eq "off") (set fl_licht on-for-timer 120) |
Ich hoffe Ihr konntet etwas für Euch mitnehmen, ich wünsche viel Erfolg beim Nachbauen!
Hallo!
Danke für Anleitung, alles super verständlich und hat anhieb geklappt!!
Nur EIN PROBLEM habe ich festgestellt:
Wenn die Thermostate im Automatikmodus betrieben werden (also Heizpläne) das Fenster geöffnet wird, wird auch verlässlich auf 5°C gestellt.
Kommt es allerdings in diesem „geöffneten Zeitraum“ zum geplanten Schalten laut Heizplan, stellt das Thermostat trotz offenen Fenster auf z.B. 21°C und bleibt auch dort.
Wie kann ich in FHEM sagen, dass die Verwendung der Heizpläne NUR verwendet wird, wenn Fenster „geschlossen“ ist?
Besten Dank schonmal!
Hallo Stephan,
freut mich und danke für den Hinweis. Das Problem habe ich in der Praxis so noch nicht beobachtet, ich hab es aber auch nicht direkt ausprobiert, werde ich nachholen. Wenn das so ist, klingt das aber eher wie ein Bug im Heizkörperthermostat. Was natürlich nicht heißt, dass man es nicht über FHEM umgehen/lösen kann.
Gruß!