FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: stenny73 am 24 November 2013, 19:17:41

Titel: Nummer von Verpasstem Anruf per EMail senden
Beitrag von: stenny73 am 24 November 2013, 19:17:41
Hallo

Ich würde gerne bei Verpassten Anrufen die Rufnummer per EMail bekommen.
Bisher habe ich per

define alarm notify FB_Monitor_Home:missed_call:.* {DebianMail(xxxx@@xxxx.com','Verpasster Anruf','Verpaster Anruf');;}


Damit erhalte ich schon mal die Mail - aber wie sende ich darin die Rufnummer?


stenny
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: jpp am 29 November 2013, 14:28:42
Was ist da mit der Variable $number?

http://fhem.de/commandref_DE.html#FB_CALLMONITOR

"missed_call: $number - Dieses Event wird nur generiert, wenn ein eingehender Anruf nicht beantwortet wird. Sofern der Name dazu bekannt ist, wird dieser ebenfalls mit angezeigt."
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: Markus Bloch am 30 November 2013, 15:46:57
Die Variable $number gibt es so nicht. Das ist nur ein Platzhalter in der Commandref damit man weis, das dort dann die Nummer stehen wird.

@stenny73:

In notifys gibt es sogenannte EVENT-Variablen. Mit denen kann man bestimmte Teile eines Events oder das ganze Event als Variable verwenden.

Bsp:

Im Eventmonitor erscheint:

2013-11-30 15:42:14.314 FB_CALLMONITOR  FB_Monitor_Home missed_call: 01122334455 (Anrufername)

Dann stehen bei einem Notify folgende Variablen zur Verfügung:

$EVENT = missed_call: 01122334455 (Anrufername)
$EVTPART1 = missed_call:
$EVTPART2 = 01122334455
$EVTPART3 = (Anrufername)

D.h. du kannst folgendes notify verwenden:


define alarm notify FB_Monitor_Home:missed_call:.* {DebianMail(xxxx@@xxxx.com','Verpasster Anruf von $EVTPART2 $EVTPART3','Verpasster Anruf von $EVTPART2 $EVTPART3');;}


siehe dazu auch die Commandref zu notify, da steht das alles drin.

Viele Grüße

Markus
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: Ralph am 01 Dezember 2013, 15:00:52
Oder ganz anders:

http://forum.fhem.de/index.php/topic,16370.msg111208.html#msg111208
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: stenny73 am 01 Dezember 2013, 20:49:05
Danke erstmal für die Antworten.

Bin im Moment nicht vor Ort um es zu Probieren...  Erst wieder ab nächster Woche in Deutschland... - dafür wollte ich ja das ja nutzen.....
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: willybauss am 25 März 2014, 22:59:03
Hallo,
ich möchte mich hier nochmal einklinken, da mein Problem ganz ähnlich ist. Einzig $EVENT wird bei meiner Email nicht ausgewertet, d.h. es steht dann '$EVENT' in der Email statt dessen Inhalt.
Der Code:
define Mythz.alarm2 notify .*fault.* { if (ReadingsVal("last10errors","number_of_faults",0) > 0 ) { DebianMail('MYNAME@@t-online.de','Tecalor Mythz Alarm','ErrorLog hat ausgeloest: $EVENT');; } }


Ich habe halt noch zusätzlich die if-Bedingung drin, da nur bei einer Anzahl Fehler > 0 gemailt werde soll.

Und: ja, ich bin Anfänger  ;) . Habe schon mit Wikis und der commandref gearbeitet, aber dort sind halt immer nur einfacher gestrickte Fälle genannt.


Gruß und Besten Dank für Tipps und Ratschläge

Willy
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: fiedel am 26 März 2014, 07:34:16
Hi Willy,

nimm mal den $EVENT aus den Hochkommas raus, also so:

define Mythz.alarm2 notify .*fault.* { if (ReadingsVal("last10errors","number_of_faults",0) > 0 ) { DebianMail('MYNAME@@t-online.de','Tecalor Mythz Alarm','ErrorLog hat ausgeloest:' $EVENT);; } }

Das sollte dann gehen.

Gruß

Frank
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: willybauss am 26 März 2014, 09:27:08
leider nicht:
Mythz.alarm return value: syntax error at (eval 3084) line 1, near "'ErrorLog hat ausgeloest:' $EVENT"
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: marvin78 am 26 März 2014, 09:39:24
So geht's:


define Mythz.alarm2 notify .*fault.* { if (ReadingsVal("last10errors","number_of_faults",0) > 0 ) { DebianMail('MYNAME@t-online.de','Tecalor Mythz Alarm','ErrorLog hat ausgeloest:'. $EVENT);; } }
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: willybauss am 26 März 2014, 09:53:37
Geht ebenfalls nicht:
define Mythz.alarm notify .*fault.* { if (ReadingsVal("last10errors","number_of_faults",0) < 1 ) { \

  { DebianMail('xxxxx@t-online.de', 'Tecalor Mythz Alarm', 'ErrorLog hat ausgeloest. "$EVENT"')};; \
  } \
}

führt zu Email-Inhalt:   ErrorLog hat ausgeloest. "$EVENT"


Wenn ich  "$EVENT" außerhalb der ' ' setze kommt wieder der Syntax error.


Was mich ebenfalls wundert (vielleicht ist es ja ein Hinweis auf die Ursache): man liest überall, man müsse bei der Emailadresse das @ verdoppeln, also @@. Ich darf das aber nicht, sonst sagt mir der smtp-Server, die Adresse sei nicht gültig.
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: marvin78 am 26 März 2014, 09:55:10
Siehe meine Änderung oben. Der Punkt fehlt. Einfache Anführungszeichen waren schon korrekt. Mein Fehler.

Wenn $EVENT verwendet wird, muss @ nicht verdoppelt werden. Siehe commandref.
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: willybauss am 26 März 2014, 10:01:42
Ja, mit Punkt hat es jetzt geklappt  :) . Ich bin nun etwas konfus: was hat der Punkt hier für eine Funktion?
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: marvin78 am 26 März 2014, 10:04:38
Er verknüpft die beiden Strings

'beliebiger Text'

und

$EVENT

Ein Verknüpfungszeichen also.
Titel: Antw:Nummer von Verpasstem Anruf per EMail senden
Beitrag von: willybauss am 26 März 2014, 10:21:47
o.k., schon wieder was  gelernt. In allen mir geläufigen Sprachen (das sind allerdings nicht so viele) wird dafür das & verwendet.