Hallo Leute,
ich habe gerade etwas zu kämpfen und bräuchte mal bitte Eure Hilfe.
Ich habe nun doch endlich mal das Update auf 5.7 gewagt und nun habe ich das Problem mit den % und @ Themen
Ich hatte mir einige Notifys angelegt die ich jetzt etwas anpassen muss. Vorher fuktionierte es zwar, aber eben jetzt nicht mehr.
Auch meine 99_myUtils ist da ein wenig betroffen wie es scheint.
Ich habe den Wikibeitrag mal umgesetzt wo es drum geht von meinem Raspi Emails zu versenden.
Das war dieser Wiki Beitrag:
http://www.fhemwiki.de/wiki/E-Mail_senden
Und so schaut meine 99_myUtils aus
############### fhemMail Mail auf dem RPi versenden ############
sub fhemMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "fhem\@meinedomain.de";
my $konto = "fhem\@meinedomain.de";
my $passwrd = "password";
my $provider = "smtp.mailprovider.de:587";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
Von Putty aus schaffe ich es dann auch Mails zu versenden.
Dann habe ich wegen eines Feuchtigkeitssensors noch diesen Teil eines anderen Wikis beachtet:
http://www.fhemwiki.de/wiki/HM-Sec-WDS_Funk-Wassermelder#Automatische_E-Mail_bei_Feuchte.2FN.C3.A4sse
Da steht dann im Wiki weiter unten:
Mittels folgendem Eintrag in der fhem.cfg wird bei jedem Statuswechsel des HM-Sec-WDS auf damp bzw. wet von FHEM eine E-Mail an eine bestimmte E-Mail-Adresse gesendet und ein entsprechender Eintrag in der fhem.logerzeugt:
define n_wasser_chk notify CUL_HM_HM_SEC_WDS_xxxxxx:contact.* { \
if("%" !~ m/dry/) {\
{fhemMail('Max.Mustermann@@Mustermann.de','FHEM Wasseralarm','@ %')};;\
Log 3, "@: Wassermeldung %";;\
}\
}
also habe ich mir so ein Notify angelegt:
sieht jetzt so aus (weil ich schon versucht habe es auf $NAME und $EVENT oder EVTPART1 umzustellen):
KE.WasserAlarm:contact.* {
if("$EVTPART1" !~ m/dry/) {
{fhemMail('meineEmail@googlemail.com','FHEM_Wasseralarm ', '"$NAME" - "$EVENT"')};
Log 3, "$NAME: Wassermeldung $EVTPART1";
}
}
Wenn ich das nun triggere bekomme ich eine Mail.
Soweit so gut, aber ich sehe keine infos zu $NAME und $EVENT sondern ich bekomme das hier als Email Body Text:
"$NAME" - "$EVENT"
Ich habe schon ewig viel probiert.
Ich bekomme es aber einfach ned hin.
Wenn ich die ' nach dem Komma hinter 'FHEM_Wasseralarm', weglasse gehts auch ned, und jenachdem was ich da anpasse kommt sogar irgendwann keine Mail mehr.
Ich bin echt verzweifelt.
WAS muss ich WO genau ändern, damit ich eine Mail bekomme die mit dann den Devicenamen ausgibt, und den Status was derzeit anliegt.
Also Beispielsweise:
KE.WasserAlarm - damp
KE.WasserAlarm - wet
Danke Euch!
der Merlin
Dein Fehler liegt in dieser Zeile:
{fhemMail('meineEmail@googlemail.com','FHEM_Wasseralarm ', '"$NAME" - "$EVENT"')};
Die Variablen stehen in einfachen Anführungszeichen, werden also von Perl nicht ausgewertet. (Dass innerhalb dessen dann wieder doppelte sind, ist wurscht.)
Das hier müsste gehen:
{fhemMail('meineEmail@googlemail.com','FHEM_Wasseralarm ', "$NAME - $EVENT")};
Perfekt! Danke Dir!
Jetzt schaut es so aus:
KE.WasserAlarm:contact.* {
if("$EVTPART1" !~ m/dry/) {
{fhemMail('meineEmail@googlemail.com','FHEM Wasseralarm ', "$NAME - $EVTPART1")};
Log 3, "$NAME: Wassermeldung $EVTPART1";
}
}
Das Emailergebnis:
KE.WasserAlarm - damp
Das war es was ich wollte!
Weil es grad so gut läuft... ;-) (Unter dem Motto kleiner Finger ganze Hand)
Wie bekomme ich Temperaturwerte und Feuchtigkeitswerte in einem WhatsApp-Text übergeben wenn die Temperatur unter 16 Grad fällt, oder die Luftfeuchte über 70% ist ?
Ich habe diese Readings vom Sensor:
battery ok 2016-01-05 01:17:50
humidity 56 2016-01-05 01:17:50
state T: 20.8 H: 56 2016-01-05 01:16:50
temperature 20.8 2016-01-05 01:17:50
Wie baue ich mir da ein Notify für?
Grundsätzlich weiss ich wie ich WA versende. Aber ich weiss nicht wie ich Readings als Text-Teil übergeben kann.
hier ein funktionierender WhatsApp Notify wenn das Licht im Keller ein- oder ausgeschaltet wird:
KE.Licht { if ("$EVENT" ne "off") { fhem ("set WhatsApp.neu send 49176xxxxxxxx Keller Licht wurde EINgeschaltet!") } else { fhem ("set WhatsApp.neu send 49176xxxxxxxx Keller Licht wurde AUSgeschaltet!")}};
Danke
Gruß
Merlin
ZitatAber ich weiss nicht wie ich Readings als Text-Teil übergeben kann.
Da antworte ich mal nach dem Motto "Hilfe zur Selbsthilfe". ;)
Guck Dir mal hier (http://fhem.de/commandref_DE.html#perl) die Beschreibung Funktion ReadingsVal an und google ein paar Beispiele, in denen sie verwendet wird.
Ach ja: Der Einsteiger-Guide (http://fhem.de/Heimautomatisierung-mit-fhem.pdf) hat auch ausführliche Infos zur Verwendung von ReadingsVal. Sehr lesenswert.