Hallo,
gerne würde ich mir in bestimmten Situationen Mails senden, z.B. wenn zwischen 8:00 - 18:00 Uhr die Haustüre geöffnet wird.
Meine Frage bezieht sich auf den Mailversand. Hierzu habe ich schon etliches gelesen und im Wiki diesen Abschnitt gefunden:
Raspberry Pi
In der weezy-Version, wie sie von busware zur Verfügung gestellt wird, muss
auf einem Raspberry Pi noch sendEmail nachinstalliert werden:
sudo apt-get update
sudo apt-get install sendEmail
in der 99_myUtils folgende Unterroutine einfügen:
######## DebianMail Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "absender\@account.de";
my $konto = "kontoname\@account.de";
my $passwrd = "passwrd";
my $provider = "smtp.provider.de:25";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";;
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a
'$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no -o
message-charset=utf-8);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
Um die TLS Verschlüsselung (ehem. SSL) zu nutzen, muss in der 4. letzten
Zeile tls=auto verwendet werden. Sollte anschließend keine Mail verschickt
werden, siehe Probleme.
Falls der Body-Text in einem (Android-)Mailer auf dem Handy nicht gezeigt
wird, kann der Parameter -o message-content-type=html helfen.
Die Funktion kann beispielsweise folgendermaßen aufgerufen werden:
define Sonstiges notify Fenster:Window:.*,.*Low.Batt*. {\
DebianMail('email@email.domain','Subject','Text','Anhang');;\
}
oder
define Sonstiges at *01:00:00 {\
DebianMail('email@email.domain','Subject','Text','Anhang');;\
}
Aufgrund der Vielfalt der Informationen möchte ich an dieser Stelle fragen, ob das die aktuellste und beste Möglichkeit ist, Mails von FHEM / RaspberryPi 2 zu versenden oder ob es (evtl. inzwischen?) bessere Alternativen gibt?
Mit folgendem "define" würde ich den Mailversand dann umsetzen. Der "SENSOR_TERRASSENTUERE" ist bereits in FHEM funktionsfähig definiert. Er hat den Status on / off.
define MAILVERSAND_OPEN_DOOR notify SENSOR_TERRASSENTUERE:on.* {\
DebianMail('email@email.domain',Geoeffnete Tuere','Text','Anhang');;\
}
Vielen Dank für Euer Feedback und Ratschläge, Tipps etc, wie ihr solche Szenarien gelöst habt...
Viele Grüße
Jens
Mails können nur per SMTP versendet werden. Ich wüste nicht, welche Alternative es noch geben könnte?
Gruß
Thomas
Zitat von: josburg am 27 Januar 2016, 21:49:01
Aufgrund der Vielfalt der Informationen möchte ich an dieser Stelle fragen, ob das die aktuellste und beste Möglichkeit ist, Mails von FHEM / RaspberryPi 2 zu versenden oder ob es (evtl. inzwischen?) bessere Alternativen gibt?
Hallo Jens,
ich finde ja, aber es gibt natürlich unterschiedliche Wege Mails oder Nachrichten (pushover whatsapp usw.) zu versenden.
Im Wiki Eintrag steht alles drin, dass geht relativ geradlinig umzusetzen. Wenn Du willst findest Du auch noch ein paar Hinweise in meinem Blog. Aber mit aktuellen Versionen geht alles ohne Umstände.
Gruß Otto
Wo finde ich denn deinen Blog?
Gesendet von iPhone mit Tapatalk
Auf der Weltkugel unter meinem Profilbild 8)
Hallo,
so, den Mailversand habe ich soweit hinbekommen und mit dem "at"-Befehl erfolgreich getestet:
Internals:
COMMAND { DebianMail('XXXXXXXX@gmx.de','Test-Betreff','Test-Text','');; }
DEF *21:53:00 { DebianMail('XXXXXXXX@gmx.de','Test-Betreff','Test-Text','');; }
NAME Sonstiges
NR 289
PERIODIC yes
RELATIVE no
REP -1
STATE Next: 21:53:00
TIMESPEC 21:53:00
TRIGGERTIME 1454100780
TRIGGERTIME_FMT 2016-01-29 21:53:00
TYPE at
Readings:
2016-01-28 21:53:01 state Next: 21:53:00
Gerne würde ich aber jetzt eine Mail versenden lassen, wenn die Terrassen-Türe z.B. zwischen 8:00 und 18:00 Uhr geöffnet wird.
Da das auf Anhieb nicht geklappt hat, habe ich das zunächst vereinfacht und wollte generell beim Öffnen eine Mail versenden lassen - leider auch erfolglos mit folgendem Code:
Internals:
CFGFN
DEF SENSOR_TERRASSENTUERE:on.* {\DebianMail('XXXXXX@gmx.de',Geoeffnete Tuere','Text','');\}
NAME MAILVERSAND_OPEN_DOOR
NOTIFYDEV SENSOR_TERRASSENTUERE
NR 408
NTFY_ORDER 50-MAILVERSAND_OPEN_DOOR
REGEXP SENSOR_TERRASSENTUERE:on.*
STATE 2016-01-28 22:42:53
TYPE notify
Readings:
2016-01-28 22:41:04 state active
Attributes:
Der Vollständigkeit halber auch noch das "list"-Ergebnis vom verwendeten Sensor der Terrassentüre:
Internals:
00 f0
CUL1_MSGCNT 8
CUL1_RAWMSG i001014
CUL1_RSSI -74
CUL1_TIME 2016-01-28 22:42:57
DEF 00000F000F FF F0
IODev CUL1
LASTInputDev CUL1
MSGCNT 8
NAME SENSOR_TERRASSENTUERE
NR 235
STATE off
TYPE IT
XMIT 00000f000f
XMITdimdown 00
XMITdimup 00
XMITon ff
Code:
1 00000f000f
Readings:
2016-01-02 14:25:05 protocol V1
2016-01-28 22:42:57 state off
Attributes:
IODev CUL1
alias Terrassentüre
room Fenster-/Tür-Überwachung
Kann mir hierbei jemand helfen?
Vielen Dank.
Wie sieht der Event aus, den die Terrassentür liefert?
Gruß Otto
Im Filelog so:
2016-01-28_15:14:38 SENSOR_TERRASSENTUERE on
Gesendet von iPhone mit Tapatalk
Wenn es wirklich so ist, bräuchtest Du beim notify nicht auf on.* triggern sondern on würde auch reichen. Aber das wird der Fehler nicht sein. Wird jetzt das notify nicht getriggert oder die Mail nicht gesendet?
Dein Mail Def sieht ziemlich gruselig aus, ich denke da ist das Problem.
{\DebianMail('XXXXXX@gmx.de',Geoeffnete Tuere','Text','');\}
Das wäre mein Vorschlag:
{ DebianMail('XXXXXX@gmx.de','Geoeffnete Tuere','Text');}
Schön wäre halt, wenn man nicht nur sagt es geht nicht, sondern sich schon mal selbst soweit vorarbeitet und sagen kann:
Das notify wird nicht getriggert oder der Befehl wird nicht abgesetzt.
Gruß Otto
define Testmail DOIF (([08:00-18:00]) and ([SENSOR_TERRASSENTUERE] eq "on")) ({DebianMail('aaa@bbb.de','Subject','Text Text Text Text ');;;; })
attr Testmail do always
Hallo rr725 ;-) ,
vielen Dank für Deine Hilfe. So funktioniert das super...!
Das war der Start ins "Mail-Versenden..."!
Vielen Dank
Grüße
Jens
gerne ;)