Hallo FHEM-Gemeinde,
ich versuche verzweifelt mit den folgenden Echo-Befehl eine Nachricht zu senden und komme nicht weiter.
.*:[Bb]attery.* { if("$EVENT" !~ m/ok/) {system("echo "Batteriewechsel bei $NAME notwendig. Status: $EVENT" | mail -s "FHEM Meldung" wYXXXXX@gmail.com");Log 1, "Mail versendet: $NAME $EVENT";}}
Auf der Shell-Ebene funktioniert der nachfolgende Aufruf einwandfrei und die Info wird versendet.
echo "Batteriewechsel bei $NAME notwendig. Status: $EVENT" | mail -s "FHEM Meldung" wYXXXXX@gmail.com
Im Log wird die Fehlermeldung
n_batt_chk return value: syntax error at (eval 1266) line 1, near ""echo "Batteriewechsel bei "
ausgegeben.
Diverse Versuche mit ", "", "',\",\' usw. schlugen auch fehl.
Auch die Verwendung von "exec"
... {exec('echo -e "Batteriewechsel erforderlich bei $NAME -> Status: $EVENT" | mail -s "FHEM-Meldung" wYXXXXX@gmail.com"');..}.
zeigte keinen Erfolg.
Ich weiß einfach nicht weiter und würde mich über eine Rückmeldung zum möglichen Fehler sehr freuen.
VG
wesseli
Hallo,
ich brauch dazu kein echo:
.*:[Bb]attery.* {
if($EVENT !~ m/ok/) {
if (Value("Zustands_Warnung") ne "Batterie") {
Log(3,"$NAME: Batteriewarnung $EVENT");
fhem("set Batteriestatus_Led led red");
fhem ("set Zustands_Warnung on");
DebianMail('xxx.yyy@zzz.de',$NAME,$EVENT);
}
}
}
Klappt einwandfrei aber Achtung!
Zustands_Warnung ist ein Dummy der noch abgefragt wird - mir genügt eine Mail.
ZitatIch weiß einfach nicht weiter und würde mich über eine Rückmeldung zum möglichen Fehler sehr freuen.
Welche Hardware verwendest du?
Grüße
Hallo,
Danke für die schnelle Rückinfo. Ich verwende einen Raspi.
Die Lösung
.. DebianMail('xxx.yyy@zzz.de',$NAME,$EVENT);..
kenne ich.
Ich möchte aber gerne auf die Lösung mit dem "echo"-Befehl zurückgreifen. Es muß doch auch damit gehen, da es auf Shell-Ebene auch funktioniert.
Wo liegt denn hier der Syntax-Fehler?
VG
wesseli
Hallo,
ich habe mal auf die Lösung mit
ZitatDebianMail('xxx.yyy@zzz.de',$NAME,$EVENT);
umgestellt.
Bekomme aber die nachfolgende Info
ERROR => Connection attempt to smpt.gmail.com:587 failed: IO::Socket::INET6: getaddrinfo: Der Name oder der Dienst ist nicht bekannt
Auf Shellebene mit dem Aufruf
sendEmail -f 'wYXXXXX@gmail.com' -t 'wYXXXXX@gmail.com' -u 'FHEM-Meldung' -m 'Das ist ein Test' -s 'smpt.gmail.com:587' -xu 'wYXXXXX@gmail.com' -xp 'zzzzzzzzzzz' -o tls=auto
bekomme ich ebenso den zuvor genannten Fehler.
Wie zuvor beschrieben, funktioniert aber der Aufruf
echo "Batteriewechsel bei $NAME notwendig. Status: $EVENT" | mail -s "FHEM Meldung" wYXXXXX@gmail.com
auf Shell-Ebene.
Dabei wird die gleiche Konfiguration aus der "/etc/ssmtp/ssmtp.conf"
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
# Where will the mail seem to come from?
#rewriteDomain=gmail.com
# The full hostname
hostname=raspberrypi1
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
AuthUser=wYxxxxx@gmail.com
AuthPass=xxxxxxxxx
UseSTARTTLS=YES
Ich weiß einfach nicht weiter.
VG
wesseli