Ein herzerfrischendes Moin vom "hinterm-Deich"
Ich habe hier eine Problematik, welche ich nicht gelöst bekomme und wofür ich Eure Hilfe brauche.
Hintergrund
Ich habe in jedem Raum meines Hauses einen hm-tc-it-wm-w-eu hängen, der mir fleißig die Luftfeuchte misst.
Sobald in einem Raum die Luftfeuchte einen bestimmten Wert erreicht, soll umgehend eine Warnung bzw. ein Alarm rausgehen.
Dieses Problem habe ich bereits durch den entsprechenden Code unten funktionsfähig gelöst:
###START########## Warn about high humidity ###################################################################START####
define TR_HumidityWarnerNotify notify TR_Thermostat_Climate:humidity.* {\
if ((ReadingsVal('TR_Thermostat_Climate','humidity','0') > 65) & (ReadingsVal('TR_Thermostat_Climate','humidity','0') < 80)) {\
fhem "set PushoverWarning msg 'Deeke Home-Humidity Warning' 'TV room contains high humidity. Open window to vent room' '' 2 'siren' 30 3600";;\
Log 3, "TV room - High humidity warning sent via PushOver";;\
};;\
if (ReadingsVal('TR_Thermostat_Climate','humidity','0') > 79) {\
fhem "set PushoverAlert msg 'Deeke Home-MILDEW ALERT' 'TV room has mildew climate! Open window and check room temperature now!' '' 2 'siren' 30 3600";;\
Log 3, "TV room - Mildew alert sent via PushOver";;\
};;\
if (ReadingsVal('TR_Thermostat_Climate','humidity','0') < 66) {\
# Mache nix. Diese Schleife kann man sich auch sparen! :-)
};;\
}
###START########## Warn about high humidity ##################################################################START####
Problemstellung
In sogenannten ,,Feuchträumen" wie Badezimmer und Waschküche, darf die Luftfeuchte für einen bestimmten Zeitraum durchaus einen Wert um die 90% erreichen.
Es soll also nur eine Warnung, bzw. Alarm wie oben rausgesendet werden, wenn nach Ablauf von beispielsweise 60min ab dem Zeitpunkt des erstmaligen Überschreitens von 65% rel Luftfeuchte immer noch eine Luftfeuchte über 65% bzw. 79% Luftfeuchte anliegen.
Frage: Wie schreibe ich den Code so (in die fhem.cfg oder myUtils), wonach ich einen Timer antriggere um nach dessen Ablauf entsprechend zeitversetzt eine erneute Überprüfung der aktuellen Luftfeuchtewerte eine Warnung (>65%), Alarm (>79%) oder eben gar nichts (<66%) raussende?
Danke für Eure Anregungen.
Die derzeitige Anzahl der Pushover- Meldungen würden nicht gerade zur WAF-Erhöhung beitragen!
Davon abgesehen, dass sie mich auch nerven.
Sailor
Setze in der Abfrage ein at in 50 Minuten, das dann die Luftfeuchtigkeit abfragt
Zitat von: Sailor am 04 April 2014, 16:17:23
Frage: Wie schreibe ich den Code so (in die fhem.cfg oder myUtils), wonach ich einen Timer antriggere um nach dessen Ablauf entsprechend zeitversetzt eine erneute Überprüfung der aktuellen Luftfeuchtewerte eine Warnung (>65%), Alarm (>79%) oder eben gar nichts (<66%) raussende?
Mit einem watchdog.
Alternativ man verwendet einen watchdog.
Leider kann der watchdog nicht rechnen, d.h. wenn man die Werte nicht mit einem Regexp erschlagen kann, dann muesste man sie zunaechst mit einem notify nach "gut/schlecht" umrechnen, und diese Werte per trigger an den watchdog weiterreichen.
Zitat von: rudolfkoenig am 04 April 2014, 17:23:47
Alternativ man verwendet einen watchdog.
sag ich doch :P
Hier als Zweizeiler für die Meldung für über 65 Grad nach einer Stunde mit Reaktivierung für Wiederholung des Vorgangs:
define TH_hum THRESHOLD TR_Thermostat_Climate:humidity:0:65
define w_hum watchdog TH_hum:off 01:00 TH_hum:on set TH_hum active;;set PushoverAlert msg "Deeke Home-MILDEW ALERT";; trigger w_hum.
für die 79-Grad-Grenze kann man die Sache mit 79 Grad mit anderen Namen noch mal definieren.
Weitere Informationen zu THRESHOLD oder watchdog siehe Commandref.
Gruß
Damian
Hallo Rudi, Damian
vielen Dank fuer Eure Hilfe.
Besonders der Hinweis von Rudi hinsichtlich der vorherigen Berechnung im notify.
Ich habe mich leider nicht früher melden können, da aufgrund der augenblicklich hohen Aussenfeuchte die Feuchtigkeitsmeldungen via Pushover komplett verrückt gespielt haben. :o
Ich muss noch die Dewpoint Berechnungen mit einfügen. 8)
Der folgende Code hat zum Erfolg geführt:
###START########## Warn about high humidity ###################################################################START####
# If the humidity is high (>65% but <78%) then wait 1 hour before sending out a message
# After 60min check whether humidity is still high or even mildew clima, the send out a respective message
define AttentionGetter_B1_Humidity dummy
attr AttentionGetter_B1_Humidity AllAttentionGetter_structure AllAttentionGetter
define B1_HumidityMarker dummy
attr B1_HumidityMarker event-on-change-reading .*
define B1_HumidityMarkerNotify notify B1_Thermostat_Climate:humidity.* {\
if (ReadingsVal('B1_Thermostat_Climate','humidity','0') > 65) {\
fhem "set B1_HumidityMarker on";;\
};;\
if (ReadingsVal('B1_Thermostat_Climate','humidity','0') < 66) {\
fhem "set B1_HumidityMarker off";;\
};;\
}
define B1_HumidityWatchdog watchdog B1_HumidityMarker:on 01:00:00 B1_HumidityMarker:off {\
if ((ReadingsVal('B1_Thermostat_Climate','humidity','0') > 70) & (ReadingsVal('B1_Thermostat_Climate','humidity','0') < 80)) {\
fhem "set PushoverWarning msg 'Humidity Warning' 'Family bathroom contains high humidity since more than 60min. Please open window.' '' 2 'siren' 30 3600";;\
};;\
if (ReadingsVal('B1_Thermostat_Climate','humidity','0') > 79) {\
fhem "set PushoverAlert msg 'MILDEW ALERT' 'Family bathroom has mildew climate since more than 60min! Open window now!' '' 2 'siren' 30 3600";;\
};;\
}
####END########### Warn about high humidity ###################################################################END#####
Danke!
Gruss
Sailor