Help: Syntax-Fehler mit notify + echo - Befehl

Begonnen von wesseli, 12 Oktober 2014, 18:57:22

Vorheriges Thema - Nächstes Thema

wesseli

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


Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

wesseli

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

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