E-Mail Versand aus FHEM auf einer Qnap NAS

Begonnen von Dennis D., 11 Januar 2013, 16:40:22

Vorheriges Thema - Nächstes Thema

kossmann

Habe selbst mal etwas ausprobiert und kann schon mal folgendes liefern:

use strict;
use LWP::UserAgent;

my $browser = LWP::UserAgent->new();
my $url = 'https://www.notifymyandroid.com/publicapi/notify';

my $apikey = '123...';

my $application = 'FHEM';
my $event = 'Warnung';
my $description = 'Batteriespannung niedrig - Wohnzimmer_Tuergriff';
my $priority = '0';

$application =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
$event =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
$description =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;

my $seite = $browser->post($url, [apikey => $apikey, application => $application, event => $event, description => $description, priority => $priority,]);

Das ganze müsste natürlich noch in eine Funktion, der zumindest event und description übergeben wird. Der apikey sollte idealerweise als globale Variable extern definiert werden (geht das in FHEM, eigne globale Variablen?).

kossmann

... siehe Codeschnipsel-Thread. Die Umwandlung in das URL-Encoding (Leerzeichen = %20) kann man sich sogar sparen.

gagga

Zitat von: spunky78 schrieb am So, 13 Januar 2013 16:50ES KLAPPT!

es lag an den doppelten @@. loglevel 6 hatte ich auch noch nicht drin. MIT loglevel 6 und folgendem syntax:

testmail3 "printf "Subject:ALARM\nTo:name@@meinedomain.de\nFrom:fhem@@meinedomain.de\n\ntest" | sendmail -t"

funktioniert es!!!!

Vielen Dank an alle!

Das ist nun komisch. Von der Kommandozeile geht das hier auf meinem QNAP NAS:
printf "Subject: ALARM\nFrom: xxx@yyy.de\nTo: zzz@yyy.de\n\nFHEM" | sendmail

In fhem.cfg geht dies hier nicht:
define testmail notify testmail "printf "Subject: ALARM\nFrom: xxx@@yyy.de\nTo: zzz@@yyy.de\n\nFHEM" | sendmail"
trigger testmail


Keine Fehlermeldung im Log. Jemand eine Idee?

fhem tagesaktuell aus SVN auf QNAP TS-419PII - 1 x CUL mit culfw1.49 - 1 x MAX! Cube - 3 x MAX! Thermostate - 2 x MAX! Fensterkontakt - 3 x HM Rauchmelder - 1 x HM Bewegungsmelder - 1 x HM Temperaturfühler - 3 x Elro-IT Steckdosen (Schrott) - 1 x FS20 WS1

Heinz

Hallo,
probier mal mit einem @. Bei mir läuft es auch nur mit einem.

Gruss Heinz

Dennis D.

also bei mir gehts nicht ohne doppelte @@.

Probier mal sendmail mit "-t":

testmail3 "printf "Subject:ALARM\nTo:name@@meinedomain.de (@@meinedomain.de)\nFrom:fhem@@meinedomain.de (@@meinedomain.de)\n\ntest" | sendmail -t"

Das -t steuert - wenn ich das richtig verstanden habe, ansonsten möge man mich bitte korrigieren - das sendmail den empfänger aus der Zeile entnimmt. Ohne "-t" lande ich bei eingabe von sendmail in diesem blinkenden eingaberomt auf der konsole, wo man dann zeilenbasiert subject, To, From und den Text eingeben kann und die mail dann per "Strg+D" absenden.

Es funktioniert bei mir auch nur in der oben abgebildeten art und ohne zeilenumbruch in der cfg-datei mittels "\". und auch nur bei einem notify. der versuch das mit anders in einen string einzubauen hat nie funktioniert (meine damit verschachtelte funktionen mit if-Abfragen in {}-Klammern und so)

Daher habe ich mir zum versenden der verschiedenen benachrichtigungen jeweils einen notify-dummy, wie oben abgebildet, angelegt und dann diese durch die verschachtelten notifys getriggert.


define Tuer_offen_WZ notify Tuer_offen_WZ "printf "Subject:ACHTUNG Terrassentuer Wohnzimmer geoeffnet\nTo:name@@meinedomain.de\nFrom:fhem@@meinedomain.de\n\nDas Haus wurde verschlossen, jedoch ist die Wohnzimmertuer noch offen." | sendmail -t"
define Tuer_offen_EZ notify Tuer_offen_EZ "printf "Subject:ACHTUNG Terrassentuer Esszimmer geoeffnet\nTo:name@@meinedomain.de\nFrom:fhem@@meinedomain.de\n\nDas Haus wurde verschlossen, jedoch ist die Esszimmertuer noch offen." | sendmail -t"
define Tuer_offen_KU notify Tuer_offen_KU "printf "Subject:ACHTUNG Terrassentuer Kueche geoeffnet\nTo:name@@meinedomain.de\nFrom:fhem@@meinedomain.de\n\nDas Haus wurde verschlossen, jedoch ist die Kuechentuer noch offen." | sendmail -t"
define Fenster_offen_HA notify Fenster_offen_HA "printf "Subject:ACHTUNG Fenster Hausanschlussraum geoeffnet\nTo:name@@meinedomain.de\nFrom:fhem@@meinedomain.de\n\nDas Haus wurde verschlossen, jedoch ist das Fenster im Hausanschlussraum noch offen." | sendmail -t"
define Fenster_offen_VR notify Fenster_offen_VR "printf "Subject:ACHTUNG Fenster Vorratsraum geoeffnet\nTo:name@@meinedomain.de\nFrom:fhem@@meinedomain.de\n\nDas Haus wurde verschlossen, jedoch ist Fenster im Vorratsraum noch offen." | sendmail -t"

define Tuer_offen_pruef notify FL_KeyMatic:locked.* {\
if (Value("WZ_TuerKontakt") ne "zu") { fhem ("trigger Tuer_offen_WZ")}} {\
if (Value("EZ_TuerKontakt") ne "zu") { fhem ("trigger Tuer_offen_EZ")}} {\
if (Value("KU_TuerKontakt") ne "zu") { fhem ("trigger Tuer_offen_KU")}} {\
if (Value("HA_FensterKontakt") ne "zu") { fhem ("trigger Fenster_offen_HA")}} {\
if (Value("VR_FensterKontakt") ne "zu") { fhem ("trigger Fenster_offen_VR")}}
attr Tuer_offen_pruef alias Fenster offen bei verlassen des Hauses
attr Tuer_offen_pruef group E-Mail Benachrichtigungen
attr Tuer_offen_pruef room FHEM


vielleicht hilft dir das weiter.
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438