FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: UweUwe am 29 Dezember 2014, 20:14:51

Titel: Email per notify versenden
Beitrag von: UweUwe am 29 Dezember 2014, 20:14:51
Hallo

sicher für euch ein einfaches Thema, für mich sehr schwierig.

Ich würde gerne ein Mail verschicken, wenn mein Wassermelder HMS 100 W "Wasser meldet.
HMS ist integriert und meldet auch braf über water_detect:on on water_detect: off den Status.
Dem HMS 2bc7 hahbe ich den Namen Wasser_Heizung verpasst :
" define Wasser_Heizung HMS 2bc7 "

Debianmail läuft über die Commandozeile bereits mit dem Befehl:

{DebianMail('xx@xxx.de','Alarm2','AlarmGetriggert')} und das mail kommt an.

Mein einfachste Notify Anweisung lautet:

define Wasserperemail notify wasser_Heizung:water_detect:on {DebianMail('xx@xxx.de','Alarm2','AlarmGetriggert')}

leider passiert gar nichts, wenn water_detect von off nach on wechselt.

Was mache ich falsch?

Titel: Antw:Email per notify versenden
Beitrag von: kaihs am 29 Dezember 2014, 20:26:33
Zitat von: UweUwe am 29 Dezember 2014, 20:14:51
" define Wasser_Heizung HMS 2bc7 "

define Wasserperemail notify wasser_Heizung:water_detect:on {DebianMail('xx@xxx.de','Alarm2','AlarmGetriggert')}

Fällt dir beim Vergleich der Devicenamen was auf?

Groß-/Kleinschreibung macht einen Unterschied.
Titel: Antw:Email per notify versenden
Beitrag von: UweUwe am 29 Dezember 2014, 20:48:49
Hallo kaihs,

vielen Dank, war sicher ein sehr wichtiger Tip. Leider ist da noch was..

Ich vermute, dass ich in der Anweisung noch einen Fehler habe:

alt:
define Wasserperemail notify wasser_Heizung:water_detect:on {DebianMail('ua@@msc.de','Alarm2','AlarmGetriggert')}

wenn ich in dem SVG Graphen  die Example lines for input ansehs, so finde ich:

"Wasser_Heizung water_detect: on"

ist es dann richtig, wenn man
Wasser_Heizung:water_detect schreibt (also dazwischen einen:?)
Titel: Antw:Email per notify versenden
Beitrag von: Puschel74 am 29 Dezember 2014, 21:01:30
Hallo,

versuchs mal mit einem . dazwischen.
wasser_Heizung.water_detect:on

Der Punkt . bedeutet ein beliebiges Zeichen - also auch : oder " " (Leerzeichen).

ZitatIch vermute, dass ich in der Anweisung noch einen Fehler habe:

Dafür taste selbst ich mich gerne noch langsam an sowas ran.
Erst mal das notify definieren mit einer sinnvollen Logausgabe.

define Wasserperemail notify Wasser_Heizung:.* {
Log(3,"$NAME $EVENT");
}

So seh ich im Logfile schonmal ob was ankommt.
Dann entscheide ich per Logeintrag - also $NAME oder $EVENT wie ich weiter mache.

Wenn ein
define Wasserperemail notify Wasser_Heizung:water_detect.* {
Log(3,"$NAME $EVENT");
}

immer noch eine sinnvolle Ausgabe ergibt dann weiß ich ja woran ich bin und kann dann darauf auch jedes x-beliebige notify aufbauen (anfangen).
Sollte in $EVENT ein water_detect on verborgen sein dürfte on dann in $EVTPART1 stehen.
$EVTPART0 sollte dann water_detect sein.

Irgendwie hatte ich noch auf einen EventMonitor-Mitschnitt gehofft.

Grüße
Titel: Antw:Email per notify versenden
Beitrag von: Rohan am 29 Dezember 2014, 21:09:53
Hi,

ich möchte auch hier mal wieder auf ein Beispiel (http://www.fhemwiki.de/wiki/HM-Sec-WDS_Funk-Wassermelder#Automatische_E-Mail_bei_Feuchte.2FN.C3.A4sse) aus dem Wiki verweisen ;)

Gruß
Thomas
Titel: Antw:Email per notify versenden
Beitrag von: UweUwe am 30 Dezember 2014, 07:09:37
Hallo Puschel74,

danke für die ausführlichen Hinweise.
Da ist aber noch was:

Wenn ich deinen Code einfüge:

define Wasserperemail notify Wasser_Heizung:.* {
Log(3,"$NAME $EVENT");
}

so bekomme ich folgende Fehlermeldung:

Unknown command Log(3,"$NAME, try help. Unknown command }, try help.

Ich habe auch versucht, eine Beschreibung des Log-Befehles zu finden.
Ohne Erfolg.
Ich bitte hier noch um Unterstützung. Merci
so bekomme ich folgende Fehlermeldung:

Titel: Antw:Email per notify versenden
Beitrag von: Puschel74 am 30 Dezember 2014, 09:18:44
Hallo,

ich weiß, leider hat es in der Signatur nur begrenzt Platz für Infos.

Meine Codes direkt in der fhem.cfg produzieren natürlich Fehler.
Jeder der die fhem.cfg direkt mit meinem Codes schmücken will muss sich selbst um die Sonderzeichen kümmern oder sich dann mit den Fehlermeldungen herum schlagen.

Den Code grad nochmal auf meiner Versuchinstallation etwas abgewandelt mit einem Dummy ausprobiert und er funktioniert einwandfrei.

Grüße
Titel: Antw:Email per notify versenden
Beitrag von: Rohan am 30 Dezember 2014, 09:30:16
Hi,

nimm

define Wasserperemail notify Wasser_Heizung:.* {
Log(3,"$NAME $EVENT");
}


mache einen Einzeiler daraus


define Wasserperemail notify Wasser_Heizung:.* { Log(3,"$NAME $EVENT"); }


gebe ihn oben in der Fhem-Weboberfläche in die weiße Eingabefeld ein und drücke die <Return-Taste>.

Dann noch links auf "save" klicken (sonst ist die Definition nach dem nächsten Neustart weg).

Oder du schreibst (ungetestet):


define Wasserperemail notify Wasser_Heizung:.* { \
Log(3,"$NAME $EVENT");; \
}


in die fhem.cfg (auf die Verdoppelung des ";" und die zusätzlichen "\" achten (siehe auch Link (http://fhem.de/commandref_DE.html#perl)).

Gruß
Thomas
Titel: Antw:Email per notify versenden
Beitrag von: Puschel74 am 30 Dezember 2014, 10:05:39
Hallo,

entweder ALLES per DEF bearbeiten (das geht auch mit Mehrzeiler sehr gut)
ODER alles in der fhem.cfg

Eine Mischung aus beidem wird jeden Anfänger verzweifeln lassen.
Also bitte in Zukunft auf die Bearbeitung per DEF hinweisen (oder du kümmerst dich um Probleme die aus dem direkten bearbeiten der Konfig kommen).
Danke.

Grüße
Titel: Antw:Email per notify versenden
Beitrag von: Rohan am 30 Dezember 2014, 10:16:04
Sorry Puschel74 aber:

1. muss man für eine Bearbeitung per DEF erst einmal etwas definiert haben, oder?
2. ich habe dem Fragesteller 2 mögliche Alternativen aufgezeigt. Was er wählt ist seine Sache. Ich schreibe niemandem etwas vor
3. da ich weit über volljährig bin, lasse ich mir von niemandem vorschreiben, was ich wem wie beantworte, es sei denn, er oder sie ist mein Vorgesetzter

Gruß
Thomas
Titel: Antw:Email per notify versenden
Beitrag von: Puschel74 am 30 Dezember 2014, 10:21:21
Hallo,

zu 1.
Und wo liegt das Problem sowas
define Wasserperemail notify Wasser_Heizung:.* {}
zu definieren?
Schon hast du ein DEF aus das man klicken kann.

Grüße
Titel: Antw:Email per notify versenden
Beitrag von: Rohan am 30 Dezember 2014, 10:23:35
Moins,

Zitat von: Puschel74 am 30 Dezember 2014, 10:21:21
Schon hast du ein DEF aus das man klicken kann.

Mein Reden ähm... Schreiben.

Gruß
Thomas
Titel: Antw:Email per notify versenden
Beitrag von: Puschel74 am 30 Dezember 2014, 10:55:20
Hallo,

es stimmt schon.
FHEM lässt sich direkt über die fhem.cfg bearbeiten oder eben über das FHEM-Frontend.

Wer lieber direkt in der fhem.cfg rumfummelt darf das gerne machen.

Meine Codebeispiele sind nicht dafür gedacht und produzieren daher auch Fehlermeldungen im Logfile.
Und für Anfänger würde ich das bearbeiten über das Frontend vorziehen.
- Man muss sich keine Gedanken über doppelte ; und \ machen.
- Weiters muss auch nicht die gesamte Konfig jedesmal neu eingelesen werden - was beim direkten bearbeiten zwangsläufig der Fall ist.
- Auch meckert FHEM beim anlegen über die Befehlszeile Syntaxfehler sofort an und man kommt nicht in die Verlegenheit das FHEM mal nichtmehr startet weil man sich eben "verkonfiguriert" hat.
- Und mit der Zeit gewöhnt man sich dran das DEF zu bearbeiten anstatt jedesmal in einer immer größer werdenden Konfig den richtigen Codeteil zu suchen.

Aber bitte - jeder wie er möchte.
Für mich überwiegen klar die Vorteile - aber auch ich musste das erst lernen  ;)

Grüße

Edith: Ich denke ich werde meinen angepinnten Beitrag mal etwas überarbeiten und auf mehrere Beiträge aufteilen.
Dann kann auch sowas mit rein genommen werden.
Titel: Antw:Email per notify versenden
Beitrag von: UweUwe am 01 Januar 2015, 20:38:17
Hallo Rohan und Puschel74,

danke fuer eure Diskussion.

Mich hat dies jetzt einen Schritt weitergebracht.
Ich habe jetzt erkannt, dass es 2 Wege gibt, wie man Commandos in die fhem.cfg addiert:

1. manuell mit grossem Gefahrenpotential
2. Über die Kommadozeile.

Habe  dies jetzt auch erfolgreich versucht.

Mit dem von euch vorgeschlagenen Kommando:

define Wasserperemail notify Wasser_Heizung:.* {}

Die finde ich jetzt auch in meiner fhem.cfg und kann diese def jetzt auch bearbeiten.

Und unter "notify" finde ich die Def Wasserpermail".
Diese kann ich jetzt auch durch anklicken bearbeiten. Soweit habe ich alles verstanden.

Jetzt stellt sich die Frage, wie ich die DEF bearbeite.
Mein Ziel ist es ja, dass ich immer, wenn die Variable Wasser_Heizung:water_detect den Wert "on" annimmt, ein (Debian)Email absetzt.
Die Subroutine für Debianmail habe ich in 99_Util.pm personalisiert (mit Email Adresse und Passwort verstehen).

Wo kann ich nachlesen, wie ich hier weitergekomme.

Sorry für die vielen Fragen.

Denke im Vorraus.


Titel: Antw:Email per notify versenden
Beitrag von: Puschel74 am 01 Januar 2015, 20:50:27
Im Wiki sollte es einen Beitrag zu Mailversand geben - http://www.fhemwiki.de/wiki/E-Mail_senden (http://www.fhemwiki.de/wiki/E-Mail_senden)
Sollten noch Fragen sein - nur her damit.
Im Prinzip ein notify auf das Trigger-Kommando - :on.* nach Wasser_Heizung und dann die Mail schicken lassen mit dem gewünschten Inhalt.

Edith: Wobei ich grad sehe das das Beispiel im Wiki auch direkt in der fhem.cfg rumfummelt  ???
Da ist es mir jetzt klar warum ich auf verlorenem Posten stehe mit meiner "Ansicht"  :-\
Titel: Antw:Email per notify versenden
Beitrag von: UweUwe am 01 Januar 2015, 20:58:48
Hallo Puschel74
den Beitrag über aus Email senden im Wiki habe ich gelesen und so angewandt.
Mail senden mit Debian funktioniert, habe über die Kommandozeile getestet.

Kannst du die nächsten 2 Zeilen deiner Antwortmail bitte noch ausführlicher machen.
Ab .. Im Prinzip ein ..

Die nötige Def habe ich ja schon gemacht, über die Kommandozeile.
Jetzt gilt es die bedingte Verknüpfung dem notify zu ergänzen..
Titel: Antw:Email per notify versenden
Beitrag von: Puschel74 am 01 Januar 2015, 21:33:38
Hallo,

ich versuchs für dich nochmal zusammen zu pflücken.
Du wirst aber um die commandref, das Einsteiger.pdf, die angepinnten Beiträge und die Forumssuche nicht umhin kommen.
Auch Perl würde dir in weiterer Folge hilfreich sein.
Das nur als kleiner Hinweis für deine zukünftigen "Projekte".

Eines meiner Mail-notifys sieht so aus:
.*:[Bb]attery.* {
  if($EVENT !~ m/ok/) {
    if (Value("Zustands_Warnung") ne "Batterie") {
      Log(3,"$NAME: Batteriewarnung $EVENT");
      fhem("set Batteriestatus_Led led red");
      fhem ("set Zustands_Warnung on");
      DebianMail('xxx.yyy@zzz.qq',$NAME,$EVENT);
    }
  }
}


Wie du siehst verwende ich auch DebianMail (x,y,z und q sind hier nur Platzhalter).

Dein notify sollte also zumindest so
Wasser_Heizung:on.* {
  DebianMail('xxx.yyy@zzz.qq',$NAME,$EVENT);
}

aussehen und funktionieren - x,y,z und q bitte gegen deine Daten austauschen.

Wenn es nicht klappt dann hilft manchmal auch ein Blick in das Logfile  ;)

Grüße