"system"-Aufruf aus Perl

1,315 views
Skip to first unread message

marte-goo...@xmn-berlin.de

unread,
Mar 19, 2011, 3:17:08 PM3/19/11
to fhem-...@googlegroups.com
Hallo,

mal wieder ein kleines Problem.
Ich mᅵchte mir aus fhem heraus gerne eine Mail zusenden lassen, dazu
will ich das "mail send"-Kommando auf der Fritzbox nutzen (Vorteil: alle
Daten dazu [auth, etc.] werden aus dem WebIF ᅵbernommen)

Gebastelt habe ich mir:

sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("/bin/echo \"$text\" | /usr/bin/mail send -i - -s \"$subject\"
-t \"$rcpt\"");
}

Mein notify dazu sieht so aus:

define n_test notify n_test { \
Log 1, 'n_notify started';; \
fb_mail('ma...@xmn-berlin.de','subject','text');; \
}

nach "trigger n_test" bekomme ich die Log-Ausgabe aber keine Mail;
kopiere ich "{ ... }" direkt in die fhem-Konsole klappt alles. Nicht nur
Log-Msg, auch eine Mail.
Das Mail-Kommando auf der Konsole braucht ca. zwei Sekunden, wᅵhrend
derer fhem hᅵngt. Diese dauert es interessanterweise nach einem
"trigger" auch, bis fhem wieder will. Nur leider ohne die Mail.

Fehlermeldungen im Log bekomme ich (auch bei verbose 5) nicht...

Geht system() nicht innerhalb eines notifies???

Gruᅵ

Martin

Rudolf Koenig

unread,
Mar 20, 2011, 3:43:26 AM3/20/11
to fhem-...@googlegroups.com
> Geht system() nicht innerhalb eines notifies???

Eigentlich schon, ich schick mir auch ueber Mail-Umweg SMS Nachrichten.
Ich wuerde an deine Stelle das weiter Problem eingrenzen:

fhem> { system("echo \"Hallo\") }
fhem> { fb_mail(".." ... }
usw.

marte

unread,
Apr 4, 2011, 4:58:15 PM4/4/11
to fhem-...@googlegroups.com
Hm. lustiges Verhalten:

98_blabla.pm:

sub fb_mailtest {
fb_mail('meine...@domain.de','ein subject','ein text');


}
sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("/bin/echo \"$text\" | /usr/bin/mail send -i - -s \"$subject\"
-t \"$rcpt\"");
}

====================

define emailtest1 notify emailtest1 { fb_mailtest }
define emailtest2 notify emailtest2 {
fb_mail('meine...@domain.de','ein subject','ein text') }
define emailtest3 notify emailtest3 "echo "text" | /usr/bin/mail send -i
- -s "subject" -t "meine...@domain.de""

====================

fhem> { fb_mail('meine...@domain.de','ein subject','ein text') }
0
=> ca. 2 Sekunden Pause, Mail kommt an.

fhem> trigger emailtest1 on
=> ca. 2 Sekunden Pause, Mail kommt an.

fhem> trigger emailtest2 on
=> ca. 2 Sekunden Pause, Mail kommt NICHT an.

fhem> trigger emailtest3 on
=> keine Pause, Mail kommt NICHT an.

fhem> "echo "text" | /usr/bin/mail send -i - -s "subject" -t
"meine...@domain.de""
=> keine Pause, Mail kommt an.

bin ratlos. Wieso gehen die Funktionen mit Parameter�bergabe nicht aus
den notifies?

Gru�

marte

Rudolf Koenig

unread,
Apr 9, 2011, 4:04:23 AM4/9/11
to fhem-...@googlegroups.com
> bin ratlos. Wieso gehen die Funktionen mit Parameter�bergabe nicht aus
> den notifies?

Weil im notify @ und % ersetzt wird :) Immer diese Denksportaufgaben frueh am
Morgen :)

marte

unread,
Apr 10, 2011, 6:10:20 AM4/10/11
to fhem-...@googlegroups.com
astrein. That's it. Und ich zerbrech mir den Kopf...

Danke!

Reply all
Reply to author
Forward
0 new messages