Hey Jungs, ich möchte gern mir eine eMail schicken, wenn der Zisternenstand niedrig ist,
das kann auch gern jeden Tag sein, aber bitte nicht zu jeder Zeit, wenn der Zisternenstand ermittelt wird,
denn dass wäre dann aller 15 Minuten.
so, das geht schon mal:
define Zisternennots notify Zisternenstand1.* { if (ReadingsVal("Zisternenstand1","ZS","0") < 500) {\
my $Zisternenstand=ReadingsVal("Zisternenstand1","ZS","0");;\
DebianMail('meine@email.de','Zisternenstand','Zisternenstand: '.$Zisternenstand,'');;\
}}
Aber , da ich es je nur einmal am Tag checken will hier ein Testcode, der ebenfalls funktioniert.
define check at *21:43:00 IF (ReadingsVal("Zisternenstand1","ZS","0") < 500) (set Terassenlicht on)
Nun dachte ich mir, beides "zusammen zu schmeißen"... aber das geht so nicht... hat jemand Ahnung warum?
define check at *21:43:00 IF (ReadingsVal("Zisternenstand1","ZS","0") < 500) ({\
my $Zisternenstand=ReadingsVal("Zisternenstand1","ZS","0");;\
DebianMail('meine@email.de','Zisternenstand','Zisternenstand: '.$Zisternenstand,'');;\
})
Fehlerlog:
check: IF: no right bracket: ({my $Zisternenstand=ReadingsVal("Zisternenstand1","ZS","0")
Unknown command DebianMail('meine@email.de','Zisternenstand','Zisternenstand:, try help.
Unknown command }), try help.
nimm ein DOIF. Ich mach das so:
define Pellets_1000 DOIF ([ETA_Vorrat_1_Silo:Silo_Vorrat] < 1000) ({DebianMail('email@email.net',"Demnächst Pellets bestellen. Vorrat noch ".ReadingsVal("ETA_Vorrat_1_Silo","Silo_Vorrat","--")." Kg Pellets")})\
DOELSEIF ([08:00])
attr Pellets_1000 group Benachrichtigung
attr Pellets_1000 room Kommunikation
Wenn der Pelletsstand unter 1000 Kg ist bekomme ich eine email.
Diese email wird täglich kurz nach 8:00 wiederholt. (der DOIF wird um 8:00 zurückgesetzt)
haha, Du bist gut!!! ;)
2017.03.15 10:50:59 1: sendEmail RCP: meine@email.de
2017.03.15 10:50:59 1: sendEmail Subject: Zisternenstand
2017.03.15 10:50:59 1: sendEmail Text: Zisternenstand: 1220.0
2017.03.15 10:50:59 1: sendEmail Anhang:
2017.03.15 10:51:03 1: sendEmail returned: Mar 15 10:51:03 raspberrypi sendEmail[32710]: Email was sent successfully!
So mache ich es:
define Zisterne_Status DOIF ([Zisternenstand1:ZS] < 1300) ({DebianMail('meine@email.de','Zisternenstand','Zisternenstand: '.ReadingsVal("Zisternenstand1","ZS","0"),'')})\
DOELSEIF ([11:00])
define check at *21:43:00 { if( ReadingsVal("Zisternenstand1","ZS","0") < 500) {
DebianMail('meine@email.de','Zisternenstand','Zisternenstand: '.ReadingsVal("Zisternenstand1","ZS","0"),'');
}
}
Zitat von: CoolTux am 15 März 2017, 10:59:21
define check at *21:43:00 { if( ReadingsVal("Zisternenstand1","ZS","0") < 500) {
DebianMail('meine@email.de','Zisternenstand','Zisternenstand: '.ReadingsVal("Zisternenstand1","ZS","0"),'');
}
}
Auch eine Variante. :-) wuste nicht dass at auch mit if umgehen kann.
Wobei mir die DOIF lieber ist. so bekomme ich die Benachrichtigung bei unterschreitung sofort, nur die Wiederholung kommt zum definierten Zeitpunkt.
Aber das ist ja auch GEschmackssache. werd mir das mit dem at auf jeden Fall merken. ;)
Ja, finde ich auch gut :)
Habe ja noch mehr Wünsche ;)