Neues Modul - THRESHOLD

Begonnen von Damian, 25 Januar 2013, 22:51:43

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: Damian schrieb am Di, 04 Juni 2013 15:11Dann kann ich die Doku so lassen, wie sie ist, denn die beschriebene Syntax bezieht sich nicht unbedingt auf die Eingabezeile und diese Problematik ist nicht Modul- sondern FHEM-spezifisch.

Gruß

Damian  

Ich sehe gerade, dass in der fhem.cfg auch ;; vorkommt. D. h. die einzige Stelle, wo der Anwender nur ein Semikolon sieht, ist im Web-Interface, weil es dort dynamisch für die Eingabe ausblendet wird - wieder was gelernt.

Dann ist es wohl doch besser in der Dokumentation auch ;; aufzunehmen, denn eine Zeile mit der Definition:

define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1

kann ja nur in der Eingabezeile oder der fhem.cfg vorkommen aber nicht in der DEF-Zeile der Web-Oberfläche, denn dort ist ja nur noch das Kommando drin.

Gruß

Damian



 
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hans88

Hallo,

ich versuche eine Mail bei einer bestimmten Termperatur
auszulösen.

ich habe es so probiert:
define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:28 ||{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Text');;}|

Wo liegt der Fehler ?

gruß Hans

Damian

Zitat von: hans88 schrieb am Mi, 05 Juni 2013 07:47Hallo,

ich versuche eine Mail bei einer bestimmten Termperatur
auszulösen.

ich habe es so probiert:
define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:28 ||{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Text');;}|

Wo liegt der Fehler ?

gruß Hans

Syntaktisch sehe ich keine. Gibt es irgendwelche Fehlermeldungen?

Poste hier mal das Ergebnis von List Temp_Alarm und List WTCX5

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Ich sehe gerade, du hast Hysterese von 28 gesetzt, wolltest aber sicherlich die Grenztemperatur setzen:

dann eher:


define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:28 ||{DebianMail('xxx@@online.de','THRESHOLD','Text');;}|

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hans88

Danke das wars !
Hat mich viel Zeit gekostet.
In diesem Fall darf man ausserdem offensichtlich nur 1x @ in der Email
Adresse verwenden.

Gruß Hans

hans88

Ich hab da noch eine Frage.
Wenn die Hysterese auf 0 gesetzt ist wie in meinem Beispiel
müsste der event doch direkt bei erreichen der threshold Temperatur
ausgelöst werden.
Es hat aber den Anschein als ob dies erst bei einem Grad drunter bzw. drüber
geschied. Ich erhalte die Temperatur nur in ganzen Zahlen.

Gruß Hans


Damian

Hallo Hans,

der Event wird durch deinen WTCX5 ausgelöst.

D. h. konkret in deinem Fall: die E-Mail wird verschickt, wenn der WTCX5 eine Temperatur über 28 Grad gemeldet hat und wenn der z. B. alle 5 Minuten sendet, dann musst du dich im Durchschnitt 2,5 Minuten gedulden;)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hans88

Hallo Damian,

das hab ich schon verstanden. Das entscheidente bei deiner Antwort ist
"Temperatur über 28 Grad gemeldet hat". Works as designt.
Ich habe gedacht dass ich mit hysterese 0 dirkekt bei 28° die Mail auslöse.

Gruß Hans
 

hans88

Mit den obigen Einstellungen bekomme ich jetzt bei ansteigender Temperatur
bei 29 ° eine mail und bei fallender Temperatur bei 27°.

Jetzt fehlt mir nur noch eine Sache zu meinem Glück
Wie krieg ich die aktuelle Temperatur aus dem reading in den mailtext ?

Gruß Hans
 

Damian

Hallo Hans,

bei dieser Definition:

define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:28 ||{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Text');;}|

wird jedes Mal nur beim Überschreiten von 28 Grad eine Mail geschickt.

Wenn du eine Mail auch beim Unterschreiten haben willst, dann musst du es so angeben:

define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:28 |{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Temperatur unterschritten')|{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Temperatur überschritten')|


Eine Temperaturübergabe sollte wie folgt funktionieren:

define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:28 |{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Temperatur unterschritten'.ReadingsVal("WTCX5", "Vorlauf-Ist", "0"))|{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Temperatur überschritten'.ReadingsVal("WTCX5", "Vorlauf-Ist", "0"))|

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hans88

Hallo Damian,

es funktioniert genau so wie du es beschrieben hast.
Mit einer Heizung um Sommerbetrieb war es nicht so einfach mit dem testen.

Hier noch mal der Eintrag mit allen Semikolon in der fhem.cfg ;)

define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:60 |{DebianMail('xxx@online.de' ('xxx@online.de'),'Temperatur ueberschritten','Temperatur von 60 Grad wurde ueberschritten aktuelle Temperatur '.ReadingsVal("WTCX5", "Vorlauf-Ist", "0") .' Grad');;}|{DebianMail('xxx@online.de' ('xxx@online.de'),'Temperatur unterschritten','Temperatur von 60 Grad wurde unterschritten aktuelle Temperatur '.ReadingsVal("WTCX5", "Vorlauf-Ist", "0") .' Grad');;}|

Danke und Gruß

Hans

 

det.

Hallo Damian, hallo Hans,

habe versucht das Beispiel von Hans mit einem 1-wire Temperatursensor  nachzunutzen ( zum überwachen von Kühltruhe und Kühlschrank).  Der Mailversand funktioniert perfekt, allerdings hatte ich bei einem Abfrageintervall von 5 s sehr schnell über 100 Mail, bevor ich die Sache auf dem Test RPI stoppen konnte. Ich war bisher der Auffassung, dass THRESHOLD nur je ein Event feuert bei über oder unterschreiten des Schwellen-wertes?
LG
det.

Damian

... dann hat die Temperatur 100-mal um die vorgegebene Temperatur (hier 60 Grad) "geschwankt". Es wird nur ein Kommando für´s Überschreiten ausgeführt, wenn zuvor die Temperatur unterschritten wurde und umgekehrt. Für diesen Fall solltest du die Hysterese (hier 0 Grad) etwas erhöhen z. B. auf ein Grad setzen (die Zahl vor der 60) damit nicht die kleinste Schwankung ein Kommando auslöst.

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

det.

hallo Damian,

danke für die schnelle Antwort, rascher als ich es testen kann. Es kam eine Mail für jede Temperaturänderung - z.B. Schwellenwert 30 grd
- Sensor zum Testen an die Schreibtischleuchte geklemmt - Mail bei 32 grd - bei 34 grd - bei 36 grd etc. ebenso bei unterschreiten der Temperatur Mail bei 28 grd - 26 grd - 24 grd etc. Dabei gab es keinen Durchgang des Threshold Wertes.
LG
det.

Damian

hmm, das wäre ein Fehler. Passiert das auch, wenn dein Intervall höher als 5 Sekunden ist (z. B. 30 Sekunden)?

Poste hier genau deine Definition.

Was steht beim Reading "cmd" beim definierten THRESHOLD-Modul im Falle des wiederholten Sendens?

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF