Liebe Forumgemeinde.
Nachdem ich als Pearl Amateur nun alles probiert und keinen Erfolg habe, bitte ich um Eure Hilfe.
Ich habe mit unten stehendem Code ein Wasseralarm installiert.
Der HMS100WD funktioniert und ich kann damit im Testalarm bereits erfolgreich diverse Aktoren schalten.
Lediglich meine Email Benachrichtigung funktioniert nicht.
Ich bekomme dann im Log folgende Fehlermeldung:
Wasseralarm_mail return value: Not enough arguments for main::ReadingsVal at (eval 36163) line 2, near ""HMS100WD_005b:water_detect:.on") "
--------------------------------
hier mein Code der eigentlich im Alarmfall alle 5 Minuten eine Mail senden sollte.
Ich wäre um eure Hilfe dankbar.
Gruss aus dem Allgäu
--------------------------------
define Wasseralarm_mail notify HMS100WD_005b:water_detect:.on {\
if (ReadingsVal("HMS100WD_005b:water_detect:.on") && (time > $main::NewMailtime) ){\
Log (3,"Logzeile zum sehen ob was passiert");;\
ssmtpMail('klaus@test.co','Wasseralarm','Wassereinbruch bei Hebeanlage');;\
$main::NewMailtime = time + 300;;\
}\
}
ReadingsVal("Devicename","ReadingName","Ersatzwert")
EDIT: ob das dann schon alle Fehler waren und ob es dann auch geht wird man sehen. Ich hab jetzt nur mal die Lösung des angefragten Fehlers genannt, ohne weiter zu schauen...
EDIT2: so, doch mal schnell drüber geschaut ;) Das mit 'time' wird aber so auch nicht gehen. Das muss vermutlich mindestens $time heißen. Wo immer das definiert wurde... Bzw. je länger ich dann doch drauf kucke desto mehr glaube ich, dass da noch mehr falsch ist. Aber das werden dir die ausgegebenen/geloggten Fehler schon verraten... Bzw. vielleicht hast du Glück und ich liege falsch ;)
Gruß, Joachim
Noch ein Tipp: DOIF verwenden, macht die Wiederholung automatisch und ist damit leichter wartbar.
LG
pah
P.S.: Und es heißt Perl, nicht Pearl.
Hallo Joachim
Hallo Pah,
vielen Dank für Eure schnelle Hilfe.
@ Joachim, nachdem ich deinen Hinweis im Code korrigiert habe hat es sogleich funktioniert.
Die Mails kommen und sogar auch verzögert.
Alles Super, vielen Dank für Eure Hifle.
P.S tolles Forum :)
@ pah
DOIF habe ich tatsächlich noch nie probiert. Davor habe ich Respekt.
Ich muss mir das mal in Ruhe anschauen.
Gerne!
(auch wenn mich wundert, dass es dann doch so schnell ging ;) )...
Wie wäre es dann die laufende Version zu posten (für andere mit ähnlichem Problem/Aufgabe) und dann ein [gelöst] vor den ersten Beitrag zu "kleben"!?
Gruß und viel Spaß noch, Joachim
define Wasseralarm_mail notify HMS100WD_005b:water_detect:.on {\
if (ReadingsVal("HMS100WD_005b","water_detect","on") && (time > $main::NewMailtime) ){\
Log (3,"Logzeile zum sehen ob was passiert");;\
ssmtpMail('klaus@test.de','Wasseralarm','Wassereinbruch bei Hebeanlage');;\
$main::NewMailtime = time + 180;;\
}\
}