Samstag, 4. Februar 2017

Fenster zu, es wird kalt! FHEM schickt eine Erinnerung per mail

Lüften muß man, kein Zweifel. Ob man aber im Winter den ganzen Tag das Fenster offen lassen soll, darüber gehen die Meinungen auseinander. Wer möchte, kann natürlich gern für draußen heizen, mir wäre das zu teuer.
Wenn das Schlafzimmer im ersten Stock ist und man dort das Fenster öffnet,  bleibt es manchmal doch den ganzenTag offen, einfach, weil es vergessen wird.

https://www.elv.de/homematic-hm-sec-sc-funk-tuer-fensterkontakt-1.html

Abhilfe ist sehr einfach, es braucht nichts weiter als einen Fensterkontakt und ein paar Zeilen Code.
Wir formulieren eine DOIF Abfrage etwa wie folgt:  Ist das Fenster länger als 10 Minuten offen und ist es draußen kälter als 16°C ? Wenn beide ja, dann sende Erinnerungsmail "Fenster ist noch offen".

So sieht das in der Praxis aus:

define di_schlafzimmerfenster _offen DOIF  ([CUL_FHTTK_916374:state] eq "Open" and [CUL_TX_47:temperature] < 16) ({ DebianMail(xyz@gmail.com',' FHEM: Schlafzimmerfenster ist noch offen','Das Schlafzimmerfenster ist jetzt seit 10 Minuten  offen und es ist draußen kälter als 16°C!','');;}) 

di_xyz als Name steht bei mir immer für ein DOIF.  Wenn der Sensor CUL_FHTTK_916374  Open meldet und die Temperatur von CUL_TX_47 kleiner als 16 ist, dann gehe zum nächsten Schritt und schicke eine mail.
Soweit, so schlecht, denn damit würde sofort nach dem Öffnen des Fenster eine mail geschickt. 

Das Attribut  wait 600 muß jetzt extra gesetzt werden, um die Ausführung des Befehls 10 Minuten ( oder wie lange auch immer, die Zeit wird inSekunden definiert ) zu pausieren.  Wird das Fenster früher zugemacht, bricht die Sequenz ab und es wird nichts gesendet.  Wer kein Thermometer hat, kann sich auch die Temperatur von Yahoo-Weather holen.  Es kommt ja nicht auf  1 °C an, aber einen Unterschied macht es schon, ob draußen 5 oder 15°C sind.

Ganz elegant wird es, wenn wir noch den Befehl anhängen: Heizung zudrehen, wenn Fenster offen.  Für normale Heizkörper müsste das Ventil sofort schließen, wenn das Fenster geöffnet wird, bei einer Fußbodenheizung kann man den oben beschrieben Befehl einfach erweitern und erst nach 10 Minuten schließen.

Zusätzlich wird noch ein devStateIcon als Attribut gesetzt, um Fenster-offen zu visualisieren.


Sinngemäß können wir auch das Fenster vom Gäste-WC überwachen, das steht ja auch gern mal die Nacht über offen.

Raspi mit FHEM einrichten -> meintechblog