FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: pinsel am 08 Oktober 2017, 17:49:21

Titel: notify mit Mailversand
Beitrag von: pinsel am 08 Oktober 2017, 17:49:21
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? :)
Titel: Antw:notify mit Mailversand
Beitrag 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?
Titel: Antw:notify mit Mailversand
Beitrag 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
Titel: Antw:notify mit Mailversand
Beitrag von: pinsel am 08 Oktober 2017, 18:18:52
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.
Titel: Antw:notify mit Mailversand
Beitrag von: pinsel am 08 Oktober 2017, 18:20:47
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
Titel: Antw:notify mit Mailversand
Beitrag von: amenomade am 08 Oktober 2017, 18:29:09
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');; }
Titel: Antw:notify mit Mailversand
Beitrag von: pinsel am 08 Oktober 2017, 18:35:03
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!
Titel: Antw:notify mit Mailversand
Beitrag von: Grinsekatze am 10 Oktober 2017, 11:55:57
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.