FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Odie am 10 September 2013, 15:27:52

Titel: Debugging der DebianMail-Funktion
Beitrag von: Odie am 10 September 2013, 15:27:52
Hallo!

Ich habe mir eine 99_sendEmail.pm Datei laut wiki erstellt die mir das Mailen über mein gmx-konto ermöglichen soll.
Ich möchte eine eMail wenn das Garagentor noch offen ist.

Ich habe zum Testen folgenen AT atGaragentorAufZu definiert
(Closed ist zum Test eingtragen da das Tor jetzt zu ist; jede Minute ausführen)

+*00:01 { if ( Value("AB_Garagentor_rechts") eq "Closed" ) { DebianMail('meine@email.mail','Garagentorstatus','Das Garagentor ist offen')} }

Nun bekomme ich weder eMail noch eine Info ins Log.
Wenn ich im AT-Code z.b. eine Klammer lösche sehe ich im fhem-log
eine Fehlermeldung.

In meiner 99_sendEmail.pm habe ich die Einträge "Log 1" gegen "Log 3" getauscht jedoch kam nicht mehr in die fhem-2013-09.log

Kann ich das Loggen höher stellen?
An der Console funktioniert der sendEmail-befehl mit den Angaben des gmx-postfaches.

Kann mir da jemand helfen?Danke
Titel: Aw: Debugging der DebianMail-Funktion
Beitrag von: fiedel am 11 September 2013, 07:31:19
Hi Odie,

prüfe doch mal zuerst, ob das Mailen an sich funktioniert!

Hier (http://forum.fhem.de/index.php?topic=14675.msg93959#msg93959) gab es ähnliche Probleme, vielleicht hilft das schon.

Gruß

Frank
Titel: Aw: Debugging der DebianMail-Funktion
Beitrag von: Odie am 11 September 2013, 08:34:07
Morgen Frank!

Danke für deine Antwort.

Den Beitrag hatte ich gelesen und den Befehl {DebianMail('meine@adresse.mail','Subject','Text')}
im Webinterface abgesetzt. Ich habs nochmal gemacht :-)

Im Log steht 2013.09.11 08:25:22 3: sendEmail RCP: meine@adresse.mail
2013.09.11 08:25:22 3: sendEmail Subject: Subject
2013.09.11 08:25:22 3: sendEmail Text: Text
2013.09.11 08:25:25 3: sendEmail returned: Sep 11 08:25:25 raspberrypi2 sendEmail[2814]: Email was sent successfully!


D.h. für mich, dass mein Modul "99_sendEmail.pm" funktioniert (Mail kommt an) und der AT falsch ist.
Ich erkenne den Fehler im Befehl nicht :-( und wie gesagt das Log gibt nichts her.

Titel: Aw: Debugging der DebianMail-Funktion
Beitrag von: JoWiemann am 11 September 2013, 08:49:41
Hallo,

im at-Befehl muss der @ durch @@ maskiert werden. Steht so auch im Wiki.

Grüße Jörg
Titel: Aw: Debugging der DebianMail-Funktion
Beitrag von: Odie am 11 September 2013, 08:55:54
Hab ich auch versucht. Ging auch nicht.

Ich verstehe nur nicht wieso nichts geloggt wird, es wäre dann sooo einfach.
Titel: Aw: Debugging der DebianMail-Funktion
Beitrag von: fiedel am 11 September 2013, 12:41:12
Ha, wenn es so wäre, könnten es ja alle... ;o)

Du hast nicht die ganze Definition gepostet. Zur Sicherheit - ein at muss so def. werden:


define test at +*{10}00:01:00 {z.B. Perlcode}


Z.B. für 10 Widerholungen im Abstand von einer Minute.
Ich hatte mit dem at- Befehl schon öfter Probleme, sodass ich das at nur noch benutze um ein notify zu triggern, in welchem dann der Perlcode oder ein Systembefehl (an Linux)steht. Versuche es doch mal so. Bin da noch nicht ganz durchgestiegen, warum at weniger kann als notify.

Zum besseren Testen kannst du noch den Befehl

Log 1, 'Test Text';;

mit reinnehmen um zu sehen, ob was passiert und später anstatt "Test Text" auch Variablen damit ausgeben lassen. Landet dann alles im normalen Log. Dann so:

Log 1, "Inhalt Var.ABC: $ABC";;

Beispiel:

define AL_1_N notify AL_1_N:.*on.* { \
      if (OldValue("AL_1_N") ne "on") { \
       fhem("get 01_Cam image");;\
       fhem("define Sync1_A at +00:00:16 trigger Func_Sync_GD_N");;\
       Log 1, 'Melder Haustür hat angesprochen';; \
       }\
 }


Hier wird bei Ansprechen eines Melders ein Bild von einer Kamera geholt und 16 Sek später in die Cloud synchronisiert.


Gruß

Frank
Titel: Aw: Debugging der DebianMail-Funktion
Beitrag von: Odie am 11 September 2013, 15:46:57
Die Anlage des AT´s hab ich über das Eingabefeld im fhemweb gmacht.


define atGaragentorAufZu at +*00:01 { if ( Value("AB_Garagentor_rechts") eq "Closed" ) { DebianMail('meine@@email.mail','Garagentorstatus','Das Garagentor ist offen')} }

Alles getippt; nicht kopiert!

Damit wurde der AT innerhalb "Unsorted" angelegt und in den Eigenschaften der "DEF"
steht +*00:01 { if ( Value("AB_Garagentor_rechts") eq "Closed" ) { DebianMail('meine@@email.mail','Garagentorstatus','Das Garagentor ist offen')} }
wie ich schon angegeben habe :-)

Als es mit @@ nicht ging hatte ich einfach @ probiert. ABER nein
Zur Erinnerung "eq Closed" ist zum Testen.

Ich bau es mal um und teste erneut. DANKE :-)

Ich hatte mir auch schon überlegt shell-scripte zu bauen aber dann habe ich mich doch für das Modul entschieden.
Ich glaube mehrere scripte wäre einfacher und schneller gewesen ;-)

Sowas in der Art statt DebianMail Aufruf
{ system("/bin/mail.sh")} }

Andere AT-Befehle habe ich am Laufen die z.B. ein einfaches "set FS20ST1 on" ausführen.
Nur Mailen will nicht.
Titel: Aw: Debugging der DebianMail-Funktion
Beitrag von: Odie am 12 September 2013, 16:31:13
So! Ich habs nun geschafft.

Für mein (Verständnis)Problem zu lösen habe ich nun folgendes

als AT-Befehl
define atGaragentorStatus at *22:00 trigger GaragenStatusMail

als Notify
define GaragenStatusMail notify GaragenStatusMail { if ( ReadingsVal('AB_Garagentor_rechts', 'Window' ,'Open') eq "Open" ) {DebianMail('meine@@email.mail','Garagentorstatus','Das Garagentor ist offen')}}


Vielen Dank an alle die mir geholfen haben das fhem-System besser zu verstehen :-)

Und weiter geht´s......
Titel: Aw: Debugging der DebianMail-Funktion
Beitrag von: fiedel am 12 September 2013, 16:53:50
Sehr schön, genau so meinte ich das. ;o)