FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wesseli am 12 Oktober 2014, 18:57:22

Titel: Help: Syntax-Fehler mit notify + echo - Befehl
Beitrag von: wesseli am 12 Oktober 2014, 18:57:22
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

Titel: Antw:Help: Syntax-Fehler mit notify + echo - Befehl
Beitrag von: Puschel74 am 12 Oktober 2014, 19:03:39
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
Titel: Antw:Help: Syntax-Fehler mit notify + echo - Befehl
Beitrag von: wesseli am 12 Oktober 2014, 19:14:00
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
Titel: Antw:Help: Syntax-Fehler mit notify + echo - Befehl
Beitrag von: wesseli am 12 Oktober 2014, 20:02:41
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