[gelöst] notify und if Problem

Begonnen von NeuFehm, 15 März 2017, 10:11:27

Vorheriges Thema - Nächstes Thema

NeuFehm

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.
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul

Frank_Huber

#1
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)

NeuFehm

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])
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul

CoolTux


define check at *21:43:00 {    if( ReadingsVal("Zisternenstand1","ZS","0") < 500) {
                                                   DebianMail('meine@email.de','Zisternenstand','Zisternenstand: '.ReadingsVal("Zisternenstand1","ZS","0"),'');
                                               }
}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Frank_Huber

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. ;)

NeuFehm

Ja, finde ich auch gut :)
Habe ja noch mehr Wünsche ;)
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul