Hallo,
ich würde gerne über meine FritzBox 7390 eine Emailbenachrichtigung einrichten, wenn z.b ein FS 20 Schalter betätigt wird.
(Push Service in FB ist bereits on)
Ich habe wirklich versucht wie im Wiki oder Fischer-net beschrieben dies aufzubauen, bin aber dann doch gescheitert.
Kann mir dabei jemand helfen ?
Wäre Klasse
vielen Dank
KLAUS
Hi,
poste doch mal bitte, was Du bisher dazu in fhem.cfg hast und welche Fehlermeldungen ggf in fhem.log auftauchen.
Dein fhem muss
- die Installation von fhem.de sein, mit dem Install von AVM geht's nicht
- muss m.W. als root laufen, sonst geht's ebenfalls nicht.
Geuß, Uli
Hallo Uli,
vielen Dank das du dich gemeldet hast. Ich dachte schon meine Frage war zu doof und keiner will was dazu sagen :)
Es läuft die neueste Version von FHEM.
Ich habe mich schon ganz gut durchgekämpft und es laufen neben einigen Schaltern und Actoren auch die HCS Heizkontrolle.
Nun möchte ich anlegen, das wenn ein Actor eingeschalten wird, ich eine Email Benachrichtigung auslösen kann.
"Nachricht bei Event"
Dies erst mal zum üben und verstehen.
Ziel soll sein, wird eine bestimmte Temperatur beim FHT unterschritten, soll eine Email versendet werden.
Das wäre das Endziel :)
Ich habe versucht den Vorschlag auf Fischer.net,
(fhem benachrichtig bei event") nachzubauen. Jedoch ist das zu kompliziert.
Das habe ich nicht geschafft.
Hier geht es ja um einen Wasserstandsmelder.
Auch WIKI Einträge die mir helfen könnten habe ich nicht gefunden.
Das Grundwissen das dort verlangt wird ist zu hoch.
Wäre super wenn du mir helfen könntest.
Keine Angst: Ich bin kein totaler Anfänger :)
gruss
KLAUS
Hi,
Ein Beispiel für den Aufruf steht in http://www.fhemwiki.de/wiki/E-Mail_senden#FB_7390_.28non-chroot.29 (//www.fhemwiki.de/wiki/E-Mail_senden#FB_7390_.28non-chroot.29)
Was steht jetzt in Deiner fhem.cfg und welche Fehlermeldungen gibt's in fhem.log?
=8-)
...bzw was passiert wenn Du in fhemweb ins Kommandofeld folgendes reinhaust:
{ use FritzBoxUtils;; FB_mail('empfaenger@mail.de' ('empfaenger@mail.de'),'Subject','text 123') }
und was steht dann im log?
=8-)
Hallo Uli,
das funktioniert.
Im Log steht
Mail sent to empfaenger@mail.de (empfaenger@mail.de)
WHOAH,, ich bin schon etwas euphorisch :)
Wie kann ich das jetzt mit eine Aktion verbinden ?
gruss
KLAUS
Einfach ein notify definieren, das danndiesen Aufruf tut, also
define <name> notify <Auslöser> {mIl versenden wie oben probiert}
Gruß Uli
Spaßvogel...
Wenn Du DEINE Mailadresse nimmst - kriegst Du dann ne Mail?
=8-)
Hallo Uli,
vielen Dank. SUPER, Habe ich soeben probiert.
Das klappt schon.
Nur, im Betreff steht immer Subject
Es kommt also nicht "TEXT 123".
TEXT 123 ist in der Mail gar nicht vorhanden.
Was mache ich falsch ?
danke
gruss aus Bayern
so, ich habe nun alles probiert.
Auch den Aufruf aus dem WIKI gestestet.
{ FB_mail('mail@@klaus.de' (@@klaus.de'),'Subject','text 123') }
Es kommt kein Inhalt und keine Betreff in der Mail.
Hast du noch eine Idee ?
danke
gruss
Hallo Uli,
So, ich habe zumindest einen Teil des Problems lösen können.
device bueroalarm notify Buero_oben { use FritzBoxUtils;; FB_mail('mail@@online.de' (@@online.de'),'jemand ist im Büro','text 123') }
Das Problem war, beim notify muss 2x@ in der mailaddresse stehen. Jetzt klappt es schon zumindest mit dem Betreff "jemand ist im Büro".
Interessant ist, das text 123 nirgends in der Mail zu finden ist.
Gerne hätte ich verstanden warum das so ist.
Zum Abschluss, und dann bin ich wirklich happy noch die Frage, welchen Codeschnipsel muss ich verwenden, damit ein Thermostat FHT bei Temperatur x ein Notify auslöst ?
Erst mal schönen Abend
gruss
Hallo,
zu deiner zweiten Frage,
Zitat von: Sonic schrieb am Sa, 05 Januar 2013 21:35Hallo Uli,
So, ich habe zumindest einen Teil des Problems lösen können.
device bueroalarm notify Buero_oben { use FritzBoxUtils;; FB_mail('mail@@online.de' (@@online.de'),'jemand ist im Büro','text 123') }
...
Zum Abschluss, und dann bin ich wirklich happy noch die Frage, welchen Codeschnipsel muss ich verwenden, damit ein Thermostat FHT bei Temperatur x ein Notify auslöst ?
Erst mal schönen Abend
gruss
Du nimmst den selben Codeschnipsel wie oben nur das du nicht auf Buero_oben prüfst sondern nach deiner Temperatur oder nach festen Zeitintervallen.
Beides ist möglich.
Ersteres wäre in etwa ein
define bueroalarm notify <NamedesFHT>:measured-temp.* {
if (ReadingsVal("<NamedesFHT>","measured-temp",20) gt 30) {
{ use FritzBoxUtils;; FB_mail('mail[email]@@online.de'[/email],'jemand schwitzt im Büro','text 123') }
}
}
zweites so ähnlich
define bueroalarm at +*00:10:00
und den Rest darfst du ruhig ein bischen tüfteln ;-)siehe das Einsteiger.pdf.
Da sind gerade solche relativ gut erklärt mit den readings und wann notify und wann at und auch wie.
Auch der erste Codeschnipsel ist nicht getestet und ohne Gewähr aber mit Sicherheit virenfrei ;-)
Grüße
Hallo Puschel74,
vielen Dank auch für deine Antwort.
Ich bin völlig "heiss" und werde das gleich probieren.
Bitte verrate mir noch folgendes:
if (ReadingsVal("<NamedesFHT>","measured-temp",20) gt 30) {
was bedeutet die 20 und was bedeutet gt30 ??
Sind das die Temperaturen nach unten und oben wo eine Mail verschickt wird ?
danke
gruss
KLAUS
Hallo Sonic,
Die 20 ist ein Ersatzwert falls measured-temp nichts zurück gibt und mit "gt 30" (greater then 30) wird verglichen ob der zurück gegebene Wert größer als 30 ist.
Bei Zahlenvergleichen hätte ich aber "> 30" angenommen.
Guten Morgen,
Ich muss nochmal nerven.
Ich habe mir das jetzt so gebaut. Bin ich richtig in der Annahme, mit < 25 bekomme ich eine Meldung wenn Temperatur höher als 25Grad,
und mit > 15 eine Meldung bei kleiner als 15 Grad ?
Beim Speichern der .cfg bekomme ich folgende Fehlermeldung:
Unknown command if, try help Search pattern not terminated at (eval 104) line 1, <$fh> line 247. Unknown command }, try help Unknown command }, try help
define Tempalarm_WZ notify thermostat:measured-temp.* {
if (ReadingsVal("thermostat","measured-temp",20) < 25) > 15) {
{ use FritzBoxUtils;; FB_mail('klaus@@online.de' (@@online.de')[/email],'Temperatur Alarm im Wohnzimmer','text 123') }
}
}
wäre sehr nett wenn ich da nochmal Hilfe bekäme.
gruss
KLaus
Hallo,
2 Abfragen nach der Temperatur klappen so nicht.
Also entweder >25 oder <15 aber nicht beides zugleich (beides zugleich kann
später mal abgefragt werden wenn die Grundlagen zu fhem sitzen).
{ und } sind mit \ zu schützen und Zeilenende sind mit ; zu markieren.
Wenn du das ganze direkt in die fhem.cfg eingibst (über Notepad++ oder ähnliches) dann
sind die Zeichen noch zu doppeln und aufpassen das sich kein unsichtbarer CR/LF einschleicht.
Umgang und Bedienung von FHEM siehe --> Einsteiger.pdf von Uli.
Da werden alle Fragen schnell geholfen ;-)
Grüße
Zitat von: Sonic schrieb am So, 06 Januar 2013 09:25Ich habe mir das jetzt so gebaut. Bin ich richtig in der Annahme, mit < 25 bekomme ich eine Meldung wenn Temperatur höher als 25Grad,
und mit > 15 eine Meldung bei kleiner als 15 Grad ?
Nein, das funktioniert genau anders herum:
1 < 2 und 3 > 2
Und wenn Du zwei Bedingungen prüfen willst würdest Du sie in Deinem Fall mit && verbinden.
Als Pseudocode:
if (1 < 2 && 2 < 3)
Wäre eine erfüllte Bedingung, weil beide Aussagen wahr sind.
Aber das einsteiger.pdf hilft hier wirklich weiter.
Finde den Button zum editieren nicht. Du willst ja prüfen ob eine Temperatur kleiner als x oder größer als y ist. Dann benutzt man zwei senkrechte Striche: || anstelle von &&
Hallo, ich habe gelesen und gelesen und hänge jetzt fest.
Ich habe mich zum Anfang erst mal versucht nur eine Temperatur höher 22 Grad abzufragen
define Tempalarm_WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 22) { \
{ use FritzBoxUtils;; FB_mail('klaus.kirstein@@online.de' (@@online.de')[/email],'Temperatur Alarm im Wohnzimmer','text 123')} \
}
im Log steht dann
2013.01.06 15:47:44 3: Tempalarm_WZ return value: Search pattern not terminated at (eval 37) line 1.
Wo ist der Fehler ?
gruss
KLAUS
Zitat von: Sonic schrieb am So, 06 Januar 2013 15:56Hallo, ich habe gelesen und gelesen und hänge jetzt fest.
Ich habe mich zum Anfang erst mal versucht nur eine Temperatur höher 22 Grad abzufragen
define Tempalarm_WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 22) { \
{ use FritzBoxUtils;; FB_mail('klaus.kirstein[email]@@online.de'[/email][/email],'Temperatur Alarm im Wohnzimmer','text 123')} \
}\
[b]}[/b]
im Log steht dann
2013.01.06 15:47:44 3: Tempalarm_WZ return value: Search pattern not terminated at (eval 37) line 1.
Wo ist der Fehler ?
gruss
KLAUS
Hallo,
Gleich viele öffnende wie schliessende Klammern.
Allerdings prüfst du auf < (kleiner) 22 und willst aber eine Temp. >(grösser) 22 abfangen ;-)
Nur bei dem Teil
{ useFritzBoxUtils ;; _____ }
weiß ich auch nicht genau ob mit oder ohne {} da ich diesen Teil in meiner Abfrage direkt an
fbmail übergebe und nicht den Umweg über die FritzBoxUtils mache.
Grüße
Hi,
schmeiss mal das
[/email][/email]
raus.
=8-)
stimmt, da hat sich was eingeschlichen ^^
Habe folgende Frage:
Ich habe eine 99-myUtils.pm angelegt.
Reicht es dort wie beschreiben nur use FritzBoxUtils einzutragen ?
Oder muss dort auch noch
sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("/bin/echo \"$text\" > /var/tmp/fhem_nachricht.txt");
system("/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \"$subject\" -t \"$rcpt\"");
system("rm /var/tmp/fhem_nachricht.txt");
}
einkopiert werden ?
Bin ratlos :(
WIKI Beschreibung Mail Benachrichtigung einrichten:
FB 7390 (non-chroot)
Seit 10/2012 ist diese Funktion Bestandteil der fhem Standardauslieferung. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_mail($$$) (Groß-Kleinschreibung beachten)
Da der Dateiname von FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Programmdatei nicht automatisch beim Start von fhem geladen. fhem muss zum Laden dieser Programmdatei aufgefordert werden. Dazu (zB in 99_myUtils.pm) die Zeile use FritzBoxUtils; einfügen.
sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("/bin/echo \"$text\" > /var/tmp/fhem_nachricht.txt");
system("/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \"$subject\" -t \"$rcpt\"");
system("rm /var/tmp/fhem_nachricht.txt");
}
Aufruf dann mittels { fb_mail('empfaenger@mail.de' ('empfaenger@mail.de'),'Subject','text 123') } bzw. { FB_mail('empfaenger@mail.de' ('empfaenger@mail.de'),'Subject','text 123') }
Hinweis: Wenn der Aufruf der Mailfunktion aus einem notify oder at erfolgt, muss das @@ in der Adresse des mailempfängers gedoppelt werden, da ein einfaches @ sonst durch den getriggerten device-namen ersetzt würde. Bei Verwendung in der fhem-Kommandozeile oder einem eigenen *Utils.pm ist diese Doppelung nicht erforderlich. Bitte bei den ersten Mails ins Log schauen, ob die Mailadresse wie gewünscht verwendet wird.
Hallo,
äh, ja das sollte da rein.
Sonst dürftest du aber auch keine Mail bekommen haben ??
Ich hab das so
sub
MyUtils_Initialize($$)
{
my ($hash) = @_;
}
sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("echo \"$text\" > fhem_nachricht.txt");
system("mailer send -i 'fhem_nachricht.txt' -s \"$subject\" -t \"$rcpt\"");
system("rm fhem_nachricht.txt");
}
in meiner 99_MyUtils stehen.
Grüße
danke für die schnelle Antwort.
Bei mir steht jetzt wie im Wiki beschrieben:
use FritzBOXUtils;
sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("/bin/echo \"$text\" > /var/tmp/fhem_nachricht.txt");
system("/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \"$subject\" -t \"$rcpt\"");
system("rm /var/tmp/fhem_nachricht.txt");
}
bekomme aber tatsächlich kein Mails....
:(
Hallo,
so
##############################################
# $Id: 99_Utils.pm 1099 2011-11-12 07:53:34Z rudolfkoenig $
package main;
use strict;
use warnings;
use POSIX;
sub
MyUtils_Initialize($$)
{
my ($hash) = @_;
}
sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("echo \"$text\" > fhem_nachricht.txt");
system("mailer send -i 'fhem_nachricht.txt' -s \"$subject\" -t \"$rcpt\"");
system("rm fhem_nachricht.txt");
}
sehen bei mir die ersten 22 Zeilen meiner 99_MyUtils.pm aus.
Damit bekomme ich brav die Mails wenn das
define CheckEventHeute at *02:40:00 {\
my $Eventname;;\
my $EventHeute;;\
$EventHeute = fhem("get events ".strftime("%m-%d",localtime()));;\
print $EventHeute;;\
if ($EventHeute ne "none") {\
$Eventname = "Reminder: $EventHeute" ;;\
fb_mail('meine.mailadresse@beimprovider.de',$Eventname);;\
}\
}
attr CheckEventHeute room 98_Notify
abgearbeitet wird und tatsächlich ein Eintrag für den heutigen Tag in der Datei
events.holiday vorhanden ist.
Das funktioniert einwandfrei auf meiner FB7390.
Äh. Ich weiß ja nicht ob das was ausmacht aber ...
hast du AVM-Labor oder das Image von fhem.de auf deiner FB installiert?
Grüße
Hi,
die Routine doppelt zu haben machts aber auch nicht besser....
Es steht doch ausdrücklich im wiki, dass die Routine ausgeliefert ist.Ein kurzer Blick in die Datei FrittzboxUtils.pm sollte das klären :)
Danach muss man nur beim Aufruf die richtige Schreibweise (Groß/Klein-Schreibung) beachten.
Oder ist das im Wiki missverständlich formuliert?
Gruß, Uli
Hallo Uli,
danke für deine Nachricht.
ich habe lediglich eine 99_myUtils.pm erstellt, und da steht drin use FritzBoxUtils;
Beim Restart von FHEM sehe ich im Logfile diese Meldung; reload: Error:Modul 99_myUtils deactivated:
Ich verstehe nicht was ich da falsch gemacht habe.
Ich habe heute den ganzen Tag versucht diese einfache Benachrichtigung hinzubekommen.
Mein grosser Frust:
Mein Script
define Tempalarm_WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 25) { fhem { \
{ use FritzBoxUtils;; FB_mail('mail@@online.de' (@@online.de'),'Subject','text 123') }
funktioniert nicht.
Ich finde einfach nicht warum.
Im Log steht diese Fehlermeldung:
2013.01.06 23:32:44 3: Tempalarm_WZ return value: "use" not allowed in expression at (eval 21) line 1, near "{ "
syntax error at (eval 21) line 1, near "{ use FritzBoxUtils"
Missing right curly or square bracket at (eval 21) line 2, at end of line
syntax error at (eval 21) line 2, at EOF
Schade, es ist einfach zu schwer......
Kannst du mir die Lösung sagen ?
gruss
KLAUS
Auch diese Version (ohne fhem {) funktioniert nicht.....
define Tempalarm_WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 25) { \
{ use FritzBoxUtils;; FB_mail('mail@@online.de' (@@online.de'),'Subject','text 123') }
Hi Klaus,
Dein Log sagt: es fehlt eine schliessende runde oder geschweifte Klammer. Das scheint auch mir so. Zähl mal die Kammerpaare. Du hast mehr öffnende als schliessende geschweifte Kalmmern.
Auch ist ein ungeschützter Zeilenumbruch drin, also eine Leerzeile ohne \
define Tempalarm_WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 25) { \
FB_mail('mail@@online.de' (@@online.de'),'Subject','text 123');\
}
könnte funktionieren, sofern das "use FritzboxUtils" in 99_myUtils.pm steht.
Wo dort der Fehler liegt, steht ebenfalls in Deinem log, direkt unter der Meldung "Error:Modul 99_myUtils deactivated", hast Du aber hier nicht gepostet, daher keine Hilfe möglich.
Darf ich vorschlagen, erstmal möglichst einfach anzufangen.
- Geht das Versenden der Mail durch Absetzen des Befehls über das Kommandofeld, siehe meine erste Antwort
- Erst wenn das geht, mit notify anfangen. Dabei erstmal alle Fehlermeldungen im log genau anschauen und beheben.
- Und weitere Komplikationen wie das Verschieben von "use FritzboxUtils" erst ganz am Schluss wenn's eh schon läuft
Aber für den Anfang: keep it simple!
Gruß,
Uli
Hallo Uli,
vielen Dank für deine Nachricht.
Anbei mein Logfile.
Interessant ist, unter der Zeile 99-myUtils deactivated: ist eine Leerzeile.
Ich verstehe nicht was da falsch ist.
Deinen Code habe ich eingegeben.
define Tempalarm_WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 25) { \
FB_mail('mail@@online.de' (@@online.de'),'Subject','text 123');\
}
fehlt hier nicht noch ein Klammer ? Ich zähle nur 3.
Sehe ich das falsch ?
vielen Dank
für deine Hilfe
gruss
KLAUS
2013.01.07 21:56:36 1: reload: Error:Modul 99_myUtils deactivated:
2013.01.07 21:56:36 3: telnetPort: port 7072 opened
2013.01.07 21:56:38 3: WEB: port 8083 opened
2013.01.07 21:56:38 3: WEBphone: port 8084 opened
2013.01.07 21:56:38 3: WEBtablet: port 8085 opened
2013.01.07 21:56:38 3: Opening CUL_0 device /dev/ttyACM0
2013.01.07 21:56:39 3: Setting CUL_0 baudrate to 9600
2013.01.07 21:56:39 3: CUL_0 device opened
2013.01.07 21:56:39 3: CUL_0: Possible commands: BCFiAZEGMRTVWXefmltux
2013.01.07 21:56:42 1: Including ./log/fhem.save
2013.01.07 21:56:42 3: initialUsbCheck return value: Unknown command usb, try help
2013.01.07 21:56:42 2: SecurityCheck: WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute. Restart fhem for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2013.01.07 21:56:42 0: Server started (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2405 2013-01-03 12:50:16Z rudolfkoenig $, pid 607)
ERFOLG ERFOLG ERFOLG
Das war die Lösung:
define Tempalarm_WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 19) { \
FB_mail('mail@@online.de' (@@online.de'),'Temperaturalarm','text 123')}}
die doppelte Klammer am Schluss hat gefehlt.
SUPER, ich freu mich.
Darf ich noch zwei letzte Fragen stellen ?
Welchen Code muss ich ergänzen, das die Mail nur einmal am Tag verschickt wird und nicht ständig ?
Wie muss ich den Code umbauen, das eine Temperatur kleiner 19 und höher 25 überwacht wird ?
Im Logfile steht zwar noch immer
2013.01.07 22:21:18 1: Including fhem.cfg
reload: Error:Modul 99_myUtils deactivated:
2013.01.07 22:21:19 3: telnetPort: port 7072 opened
2013.01.07 22:21:20 3: WEB: port 8083 opened
2013.01.07 22:21:20 3: WEBphone: port 8084 opened
Aber die Email kommt trodzdem an.
Verstehe diese Fehlermeldung mit leerer Zeile auch nicht.
danke und schönen Abend
KLAUS
Hallo,
die Temperaturprüfung würde, in etwa, so aussehen:
if (ReadingsVal("thermostat","measured-temp",20) < 19) || (ReadingsVal("thermostat","measured-temp",20) > 25){ \
und für die Anzahl der Mails, hmmm.
Würde ich mir evtl. einen Dummy setzen der um 00:01 wieder zurück gesetzt wird und beim
Mailversand prüfen ob der Dummy on ist bzw. die Mail nur schicken lassen wenn der Dummy von
off auf on gesetzt wird.
Ist mit Sicherhheit zu kompliziert und wird auch einfacher gehen aber das wäre mal mein Ansatz.
So nach dem Motto:
Wenn Temp<19 oder Temp>25 setze Temp_ausserhalb on
define Mail_abschicken notify Temp_ausserhalb:on.* {
Code zum Mailschicken
}
und noch ein
define Temp_ausserhalb_rück at *00:01 set Temp_ausserhalb off
damit am nächsten Tag wieder ne Mail geschickt werden kann.
Grüße
Hallo Uli,
vielen Dank. Ich werde das nach deiner Idee mal aufbauen und tesen.
Wegen der Temperaturüberwachung hätte ich folgende Idee.
Ich setze zwei mal notify. Einmal für Temperatur oben und einmal unten
define Tempalarm_low18WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 18) { \
FB_mail('mail@@online.de' (@@online.de'),'Temperaturalarm','text 123')}}
define Tempalarm_high23WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 23) { \
FB_mail('mail@@online.de' (@@online.de'),'Temperaturalarm','text 123')}}
Ist das schlecht oder spricht da etwas dagegen ?
vielen Dank
gruss
KLAUS
Hallo,
schlecht nicht aber
17 °C sind <18 und <23
d.h. dir werden beide notifys auslösen.
Sollte das zweite nicht eher auf >23 prüfen?
Grüße
Ohh du hast Recht.
Ich habe es wiefolgt abgeändert.
define Tempalarm_low18WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) < 18) { \
FB_mail('meil@@online.de' (@@online.de'),'Temperaturalarm','text 123')}}
define Tempalarm_high22WZ notify thermostat:measured-temp.* { \
if (ReadingsVal("thermostat","measured-temp",20) > 22) { \
FB_mail('mail@@online.de' (@@online.de'),'Temperaturalarmhigh','text 123')}}
Ich bin sehr gespannt, ob thermostat 2 notifys auslösen kann.
gruss
Hallo,
vielen Dank für den Input.
Die Temperaturmessungen klappen jetzt wunderbar.
Ich bekomme nun Emails beim Unter- bzw. Überschreiten meiner eingestellten Referenztemperatur.
Hast du vielleicht noch einen Tip wie ich es anstellen könnte,
Nach dem Versand der Email, soll x Stunden keine weitere solche Email kommen ?
Also, quasi einen Timer ?
Damit nicht ständig Mails in Serie kommen.
gruss
Klaus
Hi,
es gibt die perl-Variable time (ohne dollarzeichen). Hat eine seltsame Darstellung, nämlich vergangene Sekunden seit dem 01.01.1970.
Du könntest bei jedem mailversand den aktuellen zeitstempel wegschreiben, zB auf das Attribut 'comment' auf einem device, also zB
{fhem("attr <devicename> comment ".time)}
Und vor dem Versand der nächsten Mail checkst Du, ob zB schon mehr als eine Stunde (3600 Sekunden) vergangen ist:
if (... && (time - ReadingsVal("<devicename>","comment",time)) > 3600) {#mail senden}
Vielleicht geht's ja damit.
Gruß,
Uli
Hallo Uli,
danke.
Ich werde es heut Abend probieren.
gruss
Hallo allerseits,
erster Postversuch, interessantes Forum hier.
Trotz intensiven Lesens habe ich leider nicht alles ganz verstanden,
auch dies nicht:
Habe mir die Beschreibung von
http://www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster (//www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster)
so eingerichtet und erhalte im Log die Fehlermeldung
n_Fenster return value: Undefined subroutine &main::fb_mail called at (eval 16) line 1.
Leider raffe ich nicht was ich nun tun muss.
Möchte mir bitte jemand helfen ?
In dem Codeschnipsel hast du diese zeile drin stehen
fb_mail('xxx@@xxx.de',$subject,$fhttk_status);;\
und an der verschluckt sich fhem da du in der 99_MyUtils.pm kein
sub fb_mail hast - vermute ich mal.
Grüße
Hi,.
auch steht im Wiki-Artikel zu Mailversand aus FB7390, dass die Routine
FB_mail
heisst. Gross7Kleinschreibung beachten, dann könnte es schon gehen.
Wichtig ist, dass Du fhem von fhem.de installiert hast. Mit der Version von AVM.de geht Mailversand nicht.
Sonst noch mal hier prüfen:
http://www.fhemwiki.de/wiki/E-Mail_senden#FB_7390_.28non-chroot.29 (//www.fhemwiki.de/wiki/E-Mail_senden#FB_7390_.28non-chroot.29)
Gruß + viel Erfolg,
Uli
Danke an Puschel und UliM,
in der Tat, das FB statt fb wars *grummelmitmirselber*.
Nun tut's.
Merci vielmol.
Hallo allerseits,
vielen Dank für die bisherigen Antworten,
ich muss aber leider nochmal fragen.
In
http://www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster (//www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster)
werden ja alle TFK abgefragt und gemeldet.
Grundsätzlich möchte ich das schon, aber ein einziger TFK soll davon ausgenommen sein,
weil dieser genau andersherum funktionieren soll.
Da brauche ich die Meldung, wenn er schliesst unabhängig von den anderen mit anderem Text.
Ich habe nämlich herausgefunden,
dass man den TFK auch als Wassermelder mißbrauchen kann,
indem man über eine kurze Leitung 2 5ct-Stücke dicht nebeneinander anschliesst.
Könnte mir bitte nochmal jemand mit einem "Kochrezept" weiterhelfen ?
Hi,
mach das nächste mal bitte einen eigenen Thread auf, sonst wirds unübersichtlich.
Aber um auf deine Frage einzugehen:
Undefined subroutine &main::fb_mail called at (eval 16) line 1.
Dein Fhem kennt die fb_mail funktion nicht, wahrscheinlich hast du das Script nicht hinterlegt.
In dem Wiki Eintrag, den du gepostet hast, ist ein Link zum einrichten hinterlegt: http://www.fhemwiki.de/wiki/E-Mail_senden (//www.fhemwiki.de/wiki/E-Mail_senden)
Dann sollte es klappen.
Grüße
Versuch mal
FB_mail
also Groß/Klein-Schreibung beachten.
=8-)
Hi Zusammen,
das war ein sehr interessanter Beitrag. Da ich allerdings noch recht neu bei FHEM bin, hat es mich doch noch einige Zeit gekostet aus allen Kommentaren ein lauffähiges Notify zu machen. Leute die sich besser mit FHEM auskennen, hätten dieses Problem wahrscheinlich nicht.
Damit es aber anderen Anfängern nicht auch so geht, habe ich hier meine Ergebnisse noch einmal zusammengefasst:
define Tempalarm_high22WZ notify thermostat:measured-temp.* { \
if ((ReadingsVal("thermostat","measured-temp",20) > 22) && \
((time - AttrVal("Tempalarm_high22WZ","comment",time)) > 3600)){ \
FB_mail('mail@@online.de' (@@online.de'),'Temperaturalarmhigh','text 123');; \
{fhem("attr Tempalarm_high22WZ comment ".time)}} \
}
attr Tempalarm_high22WZ comment 1000000000
Zum einem funktioniert nämlich ReadingsVal mit Attributen nicht, deshalb AttrVal, zum anderen muss ein Anfangswert im Attribut comment stehen, sonst funktioniert es nicht.
Gruss,
Andreas
Hi,
wie kann ich feststellen ob ich fhem von fhem.de installiert habe?
Gruß und Dank
Prime1009