Hi!
So langsam verzewifle ich am Task, deshalb hier die Frage um Hilfe.
Was versuche ich: Über ein notify eine Mail versenden.
So sieht meine Funktion in der 99_myUtils.pm aus:
sub DebianMail($$$$)
{
my ($rcpt, $subject, $text, $attach) = @_;
my $ret = "";
my $last = localtime(time);
my $sender = "fhem\@****.***";
my $provider = "*.*.*.*";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject - $last' -m '$text' -a $attach -s '$provider' -o tls=no -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
return $ret;
}
Hier dann das notify:
define MOTION.not.02 notify A_Bewegungsmelder_Einfahrt:motion.* { DebianMail("andy\@****.***","Bewegung erkannt","Dies ist ein toller Text","/opt/fhem/www/snapshots/ipcam_snapshot.jpg");; }
Und schlussendlich das was im Log auftaucht:
MOTION.not.02 return value: Unknown command {, try help.
Hilfe? :)
Funktioniert { DebianMail("andy\@****.***","Bewegung erkannt","Dies ist ein toller Text","/opt/fhem/www/snapshots/ipcam_snapshot.jpg");; }
wenn Du es im Kommandofeld in der FHEM Weboberfläsche eingibst? Da hab ich ein Zweifel...
Ausserdem wird ein String zwsichen single quotes nicht interpretiert. Das heisst, in :
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject - $last' -m '$text' -a $attach -s '$provider' -o tls=no -o message-charset=utf-8);
werden die Variable vermutlich nicht ersetzt.
Wird das "define" akzeptiert, oder kannst Du dein notify einfach nicht anlegen?
Wenn das define akzeptiert wird, kannst Du dann mal ein list vom define hier einstellen?
Hintergrund die Fehlermeldung deutet daraufhin, dass die abschliessende } nicht erkannt wird / fehlt
Zitat von: amenomade am 08 Oktober 2017, 18:00:52
Funktioniert { DebianMail("andy\@****.***","Bewegung erkannt","Dies ist ein toller Text","/opt/fhem/www/snapshots/ipcam_snapshot.jpg");; }
wenn Du es im Kommandofeld in der FHEM Weboberfläsche eingibst? Da hab ich ein Zweifel...
Ausserdem wird ein String zwsichen single quotes nicht interpretiert. Das heisst, in :
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject - $last' -m '$text' -a $attach -s '$provider' -o tls=no -o message-charset=utf-8);
werden die Variable vermutlich nicht ersetzt.
Wird das "define" akzeptiert, oder kannst Du dein notify einfach nicht anlegen?
Wenn ich das Kommando über fhem eingebe kommt: "Search pattern not terminated at (eval 2117) line 1. "
Das Define wird ohne murren akzeptiert.
Zitat von: viegener am 08 Oktober 2017, 18:11:48
Wenn das define akzeptiert wird, kannst Du dann mal ein list vom define hier einstellen?
Hintergrund die Fehlermeldung deutet daraufhin, dass die abschliessende } nicht erkannt wird / fehlt
Hier das list:
Internals:
DEF A_Bewegungsmelder_Einfahrt:motion.* { DebianMail("andy\@***.***","Bewegung erkannt","Dies ist ein toller Text","/opt/fhem/www/snapshots/ipcam_snapshot.jpg"); }
NAME MOTION.not.02
NOTIFYDEV A_Bewegungsmelder_Einfahrt
NR 127
NTFY_ORDER 50-MOTION.not.02
REGEXP A_Bewegungsmelder_Einfahrt:motion.*
STATE active
TYPE notify
READINGS:
2017-10-08 17:45:03 state active
Attributes:
room Außen
ZitatWenn ich das Kommando über fhem eingebe kommt: "Search pattern not terminated at (eval 2117) line 1. "
Und so?
{ DebianMail('andy@****.***',"Bewegung erkannt","Dies ist ein toller Text",'/opt/fhem/www/snapshots/ipcam_snapshot.jpg');; }
Zitat von: amenomade am 08 Oktober 2017, 18:29:09
Und so?
{ DebianMail('andy@****.***',"Bewegung erkannt","Dies ist ein toller Text",'/opt/fhem/www/snapshots/ipcam_snapshot.jpg');; }
Jau, so klappts! Perfekt, danke!
Zitat von: pinsel am 08 Oktober 2017, 18:35:03
Jau, so klappts! Perfekt, danke!
Dann setzte doch bitte den Thread auf gelöst. Ich wollte gerade eine Antwort schreiben, als ich bemerkte, dass amenomade schneller war.