Hallo zusammen
ich versuche gerade die Mailkonfiguration in FHEM einzubauen.
Code in 99_myUtils.pm
######## DebianMail Mail auf dem RPi versenden ############
sub
_DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "xx@xx.de";
my $konto = "xx@xx.de";
my $passwrd = "pwd";
my $provider = "smtp.strato.de";
Log 4, "sendEmail RCP: $rcpt";
Log 4, "sendEmail Subject: $subject";
Log 4, "sendEmail Text: $text";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 4, "sendEmail returned: $ret";
}
Der Aufruf
{_DebianMail('xx@xx.de' ('xx@xx.de'),'Tuer offen' , 'Tuer offen');;}
bringt im Logfile
Zitat2013.08.02 08:34:41 4: HTTP FHEMWEB:192.168.0.13:53948 GET /fhem&cmd=%7B_DebianMail%28%27sxx@xx.de (27sxx@xx.de)%27%2C%27Tuer+offen%27+%2C+%27Tuer+offen%27%29%3B%3B%7D
2013.08.02 08:34:41 5: Cmd: >{_DebianMail('xx@xx.de' ('xx@xx.de'),'Tuer offen' , 'Tuer offen');}<
2013.08.02 08:34:41 4: sendEmail RCP: xx@xx.de (xx@xx.de)
2013.08.02 08:34:41 4: sendEmail Subject: Tuer offen
2013.08.02 08:34:41 4: sendEmail Text: Tuer offen
2013.08.02 08:34:45 4: sendEmail returned: Aug 02 08:34:45 raspberrypi sendEmail[30055]: Email was sent successfully!
Das mailen geht schon mal.
Nun habe ich den Tür/Fensterkontakt angezapft
define No_Mail_Tuer_offen notify CUL_FHTTK_397226 {if("%" eq "Window: Open")} {_DebianMail('xx@xx.de','Tuer offen' , 'Tuer offen');;}
attr No_Mail_Tuer_offen loglevel 4
attr No_Mail_Tuer_offen room Notify
dabei kommt die Fehlermeldung im Logfile
Zitat2013.08.02 08:34:32 4: Triggering No_Mail_Tuer_offen
2013.08.02 08:34:32 5: Cmd: >{if("Window: Open" eq "Window: Open")} {_DebianMail(xx@xx.de' (xx@xx.de'),'Tuer offen' , 'Tuer offen');}<
2013.08.02 08:34:32 4: No_Mail_Tuer_offen return value: syntax error at (eval 5625) line 1, at EOF
An was kann das liegen ?
Ich sehe den Wald vor lauter Bäume nicht.
lg
Stefan
EOF klingt nach einem Fehler am Zeilenende.
In deinem Code sind am Ende zwei ';' - lösche das eine raus, damit nur noch eins da steht, dann sollte es passen.
Gruß schlauby
Hallo Stefan,
bitte auch den Hinweis im Wiki:
Beim Aufruf der Funktion gibt es zwei unterschiedliche Verhaltensweisen zu beachten. Wird DebianMail durch ein Fhem-Ereignis als Makro mit "Transferzeichen", wie @ oder % aufgerufen, so sind diese innerhalb des Aufrufs von DebianMail zu maskieren.
Siehe auch commandref: The character @ will be replaced with the device name. To use @ in the text itself, use the double mode (@@). The macro %<parameter> will expand to the current value of the named parameter. This can be either a parameter from the device definition or a parameter from the set or get command.
beachten. In Deinem notify also das @ durch @@ maskieren.
Grüße Jörg
Hallo zusammen
ich habe Eure Tipps alles schon ausprobiert leider ohne Erfolg.
Die zwei @ waren bereits in der Konfig und das mit den 2; habe ich auch versucht.
lg
Stefan
Von wo hast du den die Quell-Datei her?
Hast du sie auf Windows erstellt und nach Linux kopiert?
Vielleicht stört ein Windows-Steuerzeichen.
Versuch mal eine Datei mit dem "vi" zu erstellen und die Daten einfach per copy&paste einzufügen.
Hallo,
ZitatHast du sie auf Windows erstellt
Mit notepad++ sollte das unter Windows kein Problem sein.
Nur Word oder das Windows-eigene Notepad sollte man nach Möglichkeit nicht nehmen.
Es sei den man weiß was man macht ;-)
Grüße
Hallo zusammen
die gleiche Fehlermeldung kommt auch wenn ich auf der Fritzbox mit FB_mail arbeite.
Diese Notification schickt eine Mail
define No_Mail_Tuergriff_offen notify CUL_HM_HM_SEC_RHS_1F194F:open.* {FB_mail(xxx@@xxx.de','Tuergriff offen','...')}
attr No_Mail_Tuergriff_offen room Notify
Diese nicht
define No_Mail_Tuer_geschlossen notify CUL_FHTTK_397226 {if("%" eq "Window: Closed")} {FB_mail('xxx@@xxx.de','Tuer geschlossen','Tuer geschlossen')}
attr No_Mail_Tuer_geschlossen room Notify
lg
Stefan
Probier mal das hier, vielleicht liegt es an der Klammersetzung.
Normalerweise gehen if Bedingungen immer so
If(Bedingung) {tue dies}
Ist aber auch nur "try and error"...
define No_Mail_Tuer_geschlossen notify CUL_FHTTK_397226 {if("%" eq "Window: Closed") {FB_mail('xxx@@xxx.de' (@@xxx.de'),'Tuer geschlossen','Tuer geschlossen')}}
attr No_Mail_Tuer_geschlossen room Notify
Hallo Schlauby
Danke das war es. Ich hab die geschweifte Klammer falsch gesetzt.
lg
stefan