Ich habe für meine neuen Aqara-Thermostate einen anderen Ansatz für die Offene-Fenster-Automationen umgesetzt. Wichtig war mir einerseits die Automatisierung in HomeKit, respektive Controller für HomeKit aus den mehrfach genannten Gründen der erweiterten Möglichkeiten, sowie die Erfüllung mehrerer Logiken, die ich beim Entwickeln der derzeitigen Lösungen habe einfließen lassen:
- Beim Fenster-Öffnen soll nicht sofort der betreffende Thermostat ausgesschaltet werden – optimalerweise möchte ich pro Raum eine individuelle Ausschaltverzögerung einstellen können, um bspw. durch kurzzeitiges Öffnen nicht jedesmal eine Batterie zehrende Thermostat-Abschaltung auszulösen.
- Für den Fall, dass ich ein Fenster in einem Raum öffne, in dem der Thermostat bereits ausgeschaltet ist, soll nach dem Fensterschließen derselbe ausgeschaltet bleiben, was durch einen einfache Fenster SCHLIEßEN -> Heizung AN Automation leider nicht machbar ist.
- Ist das Fenster geöffnet und ist die Heizung ordnungsgemäß ausgeschaltet, soll ein (versehentliches) manuelles oder automatisiertes Einschalten wieder rückgängig gemacht werden. Grundsätzlich soll zu keinem Zeitpunkt eine nachträglich nach dem Fensteröffnen wie auch immer ausgelöste durchgehende Aktivierung der Heizung möglich sein.
Zugegebenermaßen ist meine Lösung nicht ganz einfach allein mit den Bordmitteln von HomeKit umsetzbar (also eher etwas für Bastelinteressierte). HomeKit hat bis heute leider für mich völlig unverständliche Einschränkungen, was virtuelle Devices betrifft.
Um die o.g. Anforderungen zu erfüllen, werden einerseits ein einfacher Timer sowie ein noch einfacherer Statusspeicher benötigt. Ersterer schafft die Möglichkeit, das Heizung-Ausschalten für eine Zeit X zu verzögern, Letzterer speichert den Heizungs-Schaltzustand im Moment des Fenster-Öffnens, um nach dem Fensterschließen den vorherigen Zustand wiederherzustellen.
Beides ist leicht mit einem der zahlreichen Delayschalter-PlugIns für Homebridge zu erstellen.
Beide in HomeKit nicht verfügbaren Möglichkeiten habe ich in Form von virtuellen Schaltern mit Hilfe eines ESP8266 umgesetzt, den ich mithilfe des sehr mächtigen RavenSystem (https://github.com/RavenSystem/esp-homekit-devices/wiki) erstellt habe. Das Ganze für 5 Räume in einem Fingernagel-großen Mikroprozessor, den ich als kleine Heizungs-Schaltzentrale für noch zu entwickelnde Temperatur-Regelungen erweitern werde. Alternativ ist das Prinzip natürlich auch mit geeigneten Homebridge-PlugIns machbar.
Pro Raum wird für das beschriebene Projekt also ein Timerschalter mit 2 Schaltzuständen (AN/AUS) und wählbarer Rückstellzeit benötigt, der in HomeKit als einfacher Schalter dargestellt wird und gewohnt manuell oder automatisiert eingeschaltet werden kann, sich jedoch nach gewünschter Zeit selbständig wieder ausschaltet, des Weiteren ein in HomeKit identisch aussehender Statusschalter ohne eine solche Rückstellung. Für meine 5 Räume lege ich in einem einzigen Mikroprozessor für HomeKit also 10 Schalter an, die ich nach erfolgreicher Anmeldung in HomeKit vielsagend benennen kann. Für Interessierte sieht der notwendige Json-Code für das Setup eines 10-Sekunden-Timers und Statusschalter sehr simpel aus:
{"a":[{"t":1,"i":10},{"t":1}]}
Die eigentlichen Automationen erstelle ich nun in HomeKit. Pro Raum werden 2 Szenen und 4 Automationen benötigt, wobei Letztere ggf. noch vereinfacht/zusammengefasst werden können. Die Szenen sind den ebenfalls ärgerlichen HomeKit-Einschränkungen geschuldet, dass man einen Thermostat nicht direkt ohne gekoppelte Temperatur einschalten kann, was für meine weiteren Heizungsautomationen aber eine Grundvoraussetzung ist. Erfreulicherweise gestattet die Controller-App die Möglichkeit, Szenen mit einzelnen Device-Funktionen anzulegen – das ausschließliche Einschalten des Thermostats ohne Veränderung der Temperatur ist damit also machbar. Die explizite Ausschaltszene könnte dagegen gespart werden, da hier eine direkte Geräteschaltung des Thermostats möglich ist, weswegen in diesem Fall auch 1 Szene pro Raum ausreicht.
Automation 1
Auslöser: Fenstersensor öffnet, Heizung wird aktiviert
Bedingungen: Fenstersensor offen, Heizung aktiviert
Schaltergebnisse: Timer AN, Status AN
Erklärung: Die beiden Auslöser bewirken, dass ein Status immer geschaltet wird, also sowohl beim Öffnen des Fensters als auch beim Einschalten des Thermostats. Die Bedingungen sind dabei für die beiden Auslöser „wechselseitig“ zu verstehen, also Auslöser Heizungsaktivierung soll nur auslösen, wenn das Fenster geöffnet ist, Auslöser Fensteröffnung soll nur auslösen, wenn die Heizung angeschaltet ist.
Automation 2
Auslöser: Timer AUS
Bedingungen: Fenstersensor ist offen
Schaltergebnisse: Szene Heizung AUS
Erklärung: Nach Ablauf der Rückschaltzeit schaltet der Timer wieder aus und löst die Heizungsabschaltung aus unter der Bedingung, dass das Fenster offen ist.
Automation 3
Auslöser: Fenstersensor schließt
Bedingungen: Statusschalter ist an
Schaltergebnisse: Szene Heizung AN, Status AUS
Erklärung: Sobald das Fenster geschlossen wird, löst es das ausschließliche Einschalten der Heizung OHNE Temperatur-Änderung unter der Bedingung aus, dass der Status während des Fensteröffnens eingeschaltet wurde. Logischerweise würde die Automation also nur ausgeführt, wenn die Heizung vorher eingeschaltet war. Auch, wenn zwischenzeitlich bei offenstehendem Fenster durch eine separate Automation die Temperatur der Heizung geändert hätte, würde diese korrekt nach dem Fensterschließen beibehalten. Im anderen Fall eines nicht aktivierten Statusschalters würde keine der bisherigen Automationen ausgeführt und die Heizung bliebe in allen Fällen ausgeschaltet. Des Weiteren würde ein Einschalten des Thermostats innerhalb der Rückschaltzeit des Timers zwar den Status aktivieren, dennoch die Heizung nach dem Ausschalten des Timers wieder deaktivieren und erst nach dem Schließen des Fensters aktivieren. Auch wird bei mehrfachem kurzeitigen Öffnen und Schließen des Fensters innerhalb der Rückschaltzeit der Status jeweils richtig geschaltet, ohne die Thermostatbatterien zu strapazieren.
Automation 4
Auslöser: Heizung wird deaktiviert, Timer schaltet an
Bedingungen: Heizung deaktiviert, Timer ist an
Schaltergebnisse: Status AUS
Erklärung: ähnlich Automation 1 korrigieren die beiden Auslöser durch die wechselseitigen Bedingungen etwaige Ausschaltungen der Heizung während der Rückschaltzeit des Timers.
Die Lösung ist herstellerunabhängig. Prinzipiell lassen sich alle Thermostate nutzen, die schnell genug auf Ein- und Ausschaltbefehle reagieren (was meine FritzDect per Homebridge leider nicht taten), selbst gemischte Systeme werden funktionieren.