4223 Zeichen
Score aktualisiert
100%
Code: 23c529b28d56409a8e74b01f0515d896
Token in Entwicklung nicht aktualisiert
img-Tag in Entwicklung deaktiviert
Ich lasse ja meinen Keller von der HomeMatic entfeuchten – aber was
ist, wenn der Entfeuchter voll ist? Dann springt das Gerät nicht mehr an und die
Luftfeuchtigkeit steigt …
Benennung von Systemvariablen
Prinzipiell kann man Systemvariablen – so wie allen Objekten in der CCU – beliebige
Namen geben, also z. B. auch Umlaute und Sonderzeichen verwenden. Ich empfehle jedoch,
sich auf reguläre Buchstaben (a-z, A-Z) zu beschränken: Bei Umlauten und Sonderzeichen
besteht die Gefahr, dass Systemvariablen in Scripten nicht überall gefunden werden.
Einfaches Programm
Mit einem einfachen WebUI-Programm kann ich mich darüber informieren lassen, wenn die
Luftfeuchtigkeit einen vorgegebenen Grenzwert überschreitet.
Sobald die Luftfeuchtigkeit größer als 52 % ist, also außerhalb des Bereichs, den
mein Entfeuchter-Script einhält, bekomme ich eine E-Mail.
Natürlich wähle ich hier „bei Änderung auslösen“, damit ich nur in dem
Moment eine E-Mail bekomme, in dem die Luftfeuchtigkeit überschritten ist. „Bei
Aktualisierung“ würde bedeuten, dass ich alle 3 Minuten eine E-Mail bekomme, solange
die Luftfeuchtigkeit größer als 52 % ist.
Eine E-Mail reicht
Selbst „bei Änderung“ kann nicht verhindern, in kurzer Zeit viele E-Mails zu
erhalten: Wenn die Luftfeuchtigkeit um den vorgegebenen Wert schwankt, wird jedes Mail
eine E-Mail gesendet Wenn ich z. B. im Haushaltskeller Wäsche aufhänge, die ordentlich
Feuchtigkeit produziert, dann schwankt die Luftfeuchtigkeit gelegentlich um den Grenzwert.
Jedes Mal, wenn die Luftfeuchtigkeit in den Abtau-Phasen des Entfeuchters kurz ansteigt,
bekomme ich eine neue E-Mail, auch wenn er sie kurz danach wieder unter den Grenzwert
drückt.
Der Plan lautet also, eine Hysterese zu programmieren: Bei Grenzwertüberschreitung
bekomme ich eine E-Mail, aber danach ist erst mal Ruhe, bis der Entfeuchter den Keller
wirklich wieder trockengelegt hat.
Systemvariable
Wie immer beginne ich mit meiner Systemvariablen, in der der Status festgehalten wird.
Die Systemvariable Haushaltskeller Feuchtigkeit ueberschritten ist ein
Logikwert mit den Zuständen E-Mail und keine E-Mail.
Man kann sie einem Kanal zuweisen, zum Beispiel dem Schaltaktor, der den Entfeuchter
steuert, dann wird der Zustand direkt beim entsprechenden Kanal in der WebUI angezeigt.
Allerdings ist das wohl nicht so spannend: Wenn die Variable auf E-Mail steht,
dann sieht man das schließlich im Postfach. Also: bei mir keine Zuordnung.
Die Programmlogik übernehmen zwei WebUI-Programme.
Feuchtigkeit überprüfen
Das erste Programm wird ausgeführt, wenn die Feuchtigkeit meine beiden Grenzwerte
über- bzw. unterschreitet.
Nicht so gut zu erkennen: Bei beiden Bedingungen ist bei Änderung auslösen
ausgewählt. Gemäß der Logik
der WebUI-Programme spielt das hier allerdings keine so maßgebliche Rolle: Das
Programm sollte auch bei Aktualisierung funktionieren – es läuft dann halt
meistens unnötig.
Wenn …
Feuchtigkeit > 52 %
Ich habe es gern trocken im Keller, weil dort auch meine Eisenbahn haust. Darum wird
die Luftfeuchtigkeit bei etwa 50 % gehalten. Steigt sie auf 52 %, habe ich entweder
Wäsche aufgehängt oder der Entfeuchter ist voll.
Für letzteren Fall soll eine E-Mail gesendet werden, also wird die Systemvariable auf E-Mail
gesetzt.
Sonst, wenn …
Feuchtigkeit < 50 %
49 % erreicht mein Keller locker, wenn der Entfeuchter seinen Dienst tut – aber nur
dann. Das ist also ein praktikabler Wert, um den E-Mail-Versand wieder
„unscharf“ zu schalten: Die Systemvariable wird auf keine E-Mail
gesetzt.
Wenn der Wert um den oberen oder unteren Grenzwert schwankt, wird die Systemvariable
wiederholt gesetzt. Das ist aber kein Problem, wie man im nächsten Abschnitt sieht.
E-Mail senden
Das zweite WebUI-Programm kümmert sich um den E-Mail-Versand und sieht ziemlich
genauso aus wie das Originalprogramm.
Wenn Haushaltskeller Feuchtigkeit ueberschritten vom ersten WebUI-Programm auf
E-Mail gesetzt wird, versendet die CCU über das Mini-Framework die Benachrichtigung.
Hier ist die Auswahl bei Änderung auslösen tatsächlich wichtig. Wie oben
beschrieben, kann es passieren, dass die Systemvariable mehrfach mit demselben Wert
gesetzt wird. Also wenn die Luftfeuchtigkeit um 52 % schwankt, setzt das erste Programm
sie immer wieder auf E-Mail, ohne sie zwischendurch auf keine E-Mail zu
setzen.
Durch bei Änderung auslösen wird in diesen Fällen keine wiederholte E-Mail
gesendet. Nur wenn die Variable zwischenzeitlich auf keine E-Mail stand, ist das
Programm wieder „scharf“ und kann mich erneut vor einem feuchten Keller
beschützen.