[geloest] variablen uebergabe mail

Begonnen von seb, 03 März 2014, 21:14:59

Vorheriges Thema - Nächstes Thema

seb

Hallo,

ich bekomme es nicht hin... habe ueber die Weboberflaeche einen Watchdog definiert, der mich ueber aufgelassene Fenster informiert. Tut er auch, nur den Device und den Wert uebergibt er nicht

Definiert ist:

.*._TFK.*:open 00:01 .*._TFK.*:closed {
DebianMail('a@b.de', 'HIER IST HAUS, FENSTER AUF', '@ %');
fhem('setstate watchdog_hm_Fenster defined');
}


Sendet aber eben nur ein "@" und ein "%"

Zitat2014.03.03 21:03:51 1: sendEmail Subject: HIER IST HAUS, FENSTER AUF
2014.03.03 21:03:51 1: sendEmail Text: $@ $%

kann mir jemand helfen?
2014.03.03 21:04:08 1: sendEmail returned: Mar 03 21:04:08 raspberrypi sendEmail[2166]: Email was sent successfully!

det.


define mail_Buerotuer notify .*Tuer_*.* { \
  my $zeit=sprintf("%%02d:%%02d",$hour,$min);;\
  my $text;;\
  my $status;;\
  $status=Value "@";;\
  $text ="@ $zeit Uhr $status";;\
  if (Value("HomeStatus") ne "present")\
{DebianMail('mail@@provider.de',$text,$text);;\
  }\
}


So geht das vergleichbar bei mir
LG
det.

rudolfkoenig

#2
Es scheint fuer viele nicht intuitiv zu sein, aber ein watchdog ersetzt kein @ und %, und wird es auch nie machen.

Warum? Es gibt zwei Moeglichkeiten, je nach Watchdog-Regexp:
- Der Watchog-Regexp ist fuer mehr als ein Event definiert. In diesem Fall weiss der Watchdog nicht, welcher der Events _NICHT_ gekommen ist.
- Der Watchdog-Regexp ist fuer nur ein Geraet:Event definiert. Abgesehen davon, dass man hier @ und % nicht braucht (weil man die kennt, und die Texte direkt reinschreiben kann), kann der Watchdog Name und Event aus der Regexp auch nicht immer eindeutig extrahieren. Ein Notify hat es einfach, es bekommt beide Teile einzeln geliefert, es extrahiert diese nicht aus dem Regexp. Wenn der Watchdog ein Event bekommt, dann wird erstmal _KEIN_ Programm aufgerufen, und damit ist die Ersetzung in diesem Moment auch nicht notwendig.

Man kann auch kein generisches watchdog fuer alle Fenster bauen, da der watchdog nicht ausloest, wenn man beide Fenster oeffnet, Fenster1 schliesst, und Fenster2 offen bleibt. Da muss man fuer jeden der Fenster seinen eigenen watchdog anlegen oder 2 notifies bauen, und mit dem Zaehlen anfangen.

P.S: @ und % sind in einem notify nicht erwuenscht, bitte $NAME und $EVENT verwenden. Dann kann man sich das @@ in der email-addresse (user@host.de) auch sparen.

seb

Hallo Zusammen,
danke fuer die Antworten.

ZitatMan kann auch kein generisches watchdog fuer alle Fenster bauen

ok, dann kann ich es wohl in dieser Art vergessen. Danke fuer den Hinweis.

Dann ueberlege ich mir etwas anders.
Beste Gruesse vom Seb