Hallo,
ich habe ein Alarm für den Gefrieschrank angelegt. Wenn der Gefrierschrank eine Temperatur >-16° errecht,
wird eine Email an mich gesendet. Wenn die Temperatur nach 30min. immer noch >16° ist, wird eine weitere Emailwarnung gesendet. Das funktioniert schon mal.
Jetzt würde ich gerne die aktuelle Temperatur in der Email angeben. Das bekomme ich einfach nicht hin.
Kann mir jemand sagen, wie ich das umsetzen kann?
Hier meine aktuelle Konfiguration:
Gefrierschrank:temperature:.* {
if ( (ReadingsVal("Gefrierschrank","temperature",0) > -16.0) && (time > $main::NewMailtime)) {DebianMail(######@#####.de','FHEM-Temperatur-Alarm Gefrierschrank','ACHTUNG - die Temperatur vom Gefrierschrank ist über -16° gestiegen!');$main::NewMailtime = time+1800;
}
}
Moin,
genaugenommen steht der Wert schon im $EVENT, du brauchst nicht mal neu auslesen.
Du kannst auch ReadingsVal("Gefrierschrank","temperature",0) durch $EVTPART1 ersetzen. (Ich hoffe $EVTPART1 ist richtig, die Zählung beginnt bei 0, musst Du genau im Eventmonitor schauen)
https://commandref.fhem.de/#notify
Gruß Otto
Und pass auf, dass innerhalb von single quotes die Variables nicht interpretiert werden.
Guter Hinweis :)
@onix20 und nimm bitte beim posten von Code die Code Tags - die # Taste über dem :-X Smiley
Hallo Otto,
dein Hinweis hat funktioniert.
Ich habe es so geändert:
Gefrierschrank:temperature:.* {
if (($EVTPART1 > -16.0) && (time > $main::NewMailtime)) {DebianMail('#####@#####.de','FHEM-Temperatur-Alarm Gefrierschrank','ACHTUNG - die Temperatur vom Gefrierschrank ist auf'.$EVTPART1);$main::NewMailtime = time+1800;
}
}
Die Ausgabe sieht so aus:
ACHTUNG - die Temperatur vom Gefrierschrank ist auf -13.3
Wie kriege ich nun die Ausgabe formatiert, dass sie so aussieht:
ACHTUNG - die Temperatur vom Gefrierschrank ist auf -13.3°C gestiegen
'ACHTUNG - die Temperatur vom Gefrierschrank ist auf'.$EVTPART1.' gestiegen'
?
Oder so sollte es auch gehen.
"ACHTUNG - die Temperatur vom Gefrierschrank ist auf $EVTPART1 gestiegen"
@ Jürgen Du wolltest doch Deine Email schwärzen? ;)
Zitat von: Otto123 am 16 Juni 2018, 13:14:46
Oder so sollte es auch gehen.
"ACHTUNG - die Temperatur vom Gefrierschrank ist auf $EVTPART1 gestiegen"
@ Jürgen Du wolltest doch Deine Email schwärzen? ;)
Ups, danke für den Hinweis
Kann ich wenn Alarm ausgelöst, die Pollingzeit irgendwie vergrößern so das ich nicht alle 3 Minuten eine Mail bekomme ? Oder nur einmalig eine beim Unter/Überschreiten des Wertes erhalten ?
Uh ... Leichenfledderei :-)
Aber wo wir schon mal dabei sind:
In diesem Fall wäre DOIF dein Freund. Zustandswechsel (Temperatur ok/nicht ok), Warnungen in definierten Abständen mit definierter Wiederholungszahl usw. Meines Wissens gibt es sogar ein Beispiel in der commandref.
Ein notify wird direkt durch das Event der Temperaturmeldung getriggert. Man kann da auch was bauen, aber es ist m.M.n. ungleich komplizierter.
Hi,
hier geht es normal nicht um Polling sondern darauf auf eine Event zu reagieren.
Du kannst also die Events verändern oder die Reaktion auf die Events.
event-on-change-reading würde die Events am Temperatur sensor verringern helfen.
disabledAfterTrigger beim notify würde die Reaktion des notify verändern.
ZitatdisabledAfterTrigger someSeconds
disable the execution for someSeconds after it triggered.
Es gibt sicher 100 andere Ansätze...
Gruß Otto