Neues Modul - THRESHOLD

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

Vorheriges Thema - Nächstes Thema

Damian

In dem anderen Fall hätte es auch funktionieren müssen. Du musst dich nach dem Setzen der Solltemperatur solange gedulden, bis der Sensor den nächsten Wert liefert, bis dahin steht im Modul unter cmd: wait for next cmd.

Gruß

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

Charly

Hi Damian,

vielen Dank für die Info. Werde mal auf morgen warten. Jetzt ist die Heizung auf 18 Grad und da geht nix mehr. ;-)

Ach ja, ich würde gerne per Grafik mitloggen wann und wie das Heating Modul und dein Modul gearbeitet haben. Ist das möglich ?
Wenn ja wie ? Leider habe ich dazu nichts gefunden.

Einen Tempplot habe ich hinbekommen.

Gruß

Charly

Damian

Zitat von: Charly am 25 November 2013, 20:19:07
Hi Damian,

vielen Dank für die Info. Werde mal auf morgen warten. Jetzt ist die Heizung auf 18 Grad und da geht nix mehr. ;-)

Ach ja, ich würde gerne per Grafik mitloggen wann und wie das Heating Modul und dein Modul gearbeitet haben. Ist das möglich ?
Wenn ja wie ? Leider habe ich dazu nichts gefunden.

Einen Tempplot habe ich hinbekommen.

Gruß

Charly

siehe Anhang

H_.... sind meine Schaltaktoren, haben also nur den Zustand on/off. Die Funktion im Plot heißt: $fld[2]=~"on"?1:0 bis $fld[2]=~"on"?7:0




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

oliv06

Would it be possible to correct a typo in the THRESHOLD code :
grep deactiveted *
98_THRESHOLD.pm: readingsBulkUpdate   ($hash, "mode", "deactiveted");


deactiveted should be replaced by deactivated.

Damian

Zitat von: oliv06 am 22 Dezember 2013, 23:36:36
Would it be possible to correct a typo in the THRESHOLD code :
grep deactiveted *
98_THRESHOLD.pm: readingsBulkUpdate   ($hash, "mode", "deactiveted");


deactiveted should be replaced by deactivated.

It has been fixed.

Gruß

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

oliv06


oliv06

I found something strange in command refrence for THRESHOLD:
Original
ZitatExample for heating with window contact:

define thermostat THRESHOLD temp_sens OR win_sens heating


Example for heating with multiple window contacts:

define W_ALL structure W1 W2 W3 ...
attr W_ALL clientstate_behavior relative
attr W_ALL clientstate_priority closed open


What works for me :
Zitatdefine W_ALL structure w_all W1 W2 W3 ...
attr W_ALL clientstate_behavior relative
attr W_ALL clientstate_priority open closed

Could you check if I am wrong ?

Damian

define W_ALL structure W1 W2 W3 ...

The documentation is incomplete.

There is no Type. It must be, for example:

define W_ALL structure W_TYP W1 W2 W3 ...

Gruß

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

oliv06

#218
Zitat von: Damian am 24 Dezember 2013, 13:25:42
define W_ALL structure W1 W2 W3 ...

The documentation is incomplete.

There is no Type. It must be, for example:

define W_ALL structure W_TYP W1 W2 W3 ...
Ok. What about the order in attr W_ALL clientstate_priority closed open : isn't it "open closed" rather than "closed open" ?

What is the process to have the documentation changed ?

Damian

#219
Hello Oliver,

the order: closed open

means:

if one switch is closed, then structure is closed,
if all switches are open, then structure is open.

I see that the documentation is wrong here too.

The order must be: open closed

means:

if one switch is open, then structure is open,
if all switches are closed, then structure is closed.


The default value of state2 in THRESHOLD is open, that means with:

define thermostat THRESHOLD S1 OR W_ALL heating


cmd1_gt (e.g. off at heating) is executed if value of S1 > threshold_max or structure is open (one of the windows is open)


The documentation is in the source of THRESHOLD modul.

I will correct it.

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

cwagner

#220
Guten Tag, Damian,

inzwischen setzte ich THRESHOLD zehnmal ein - auch als Warner bei besonders Systemereignissen. Und das lässt sich bestimmt noch ausbauen. Das Modul ist und bleibt dem PID20, mit dem ich mich aktuell sehr beschäftige, mein Lieblingsmodul für die Heizungs- und Klimasteuerung.

Nach den jüngsten updates fällt mir nun auf der Console beim Neustart eine Fehlermeldung auf:
Zitat
# Argument "" isn't numeric in numeric gt (>) at ./FHEM/98_THRESHOLD.pm line 476

Hast Du eine Idee, was da schief geht? Ich habe natürlich THRESHOLDS, bei denen eine Bedingung "leer" ist, das war bisher auch kein Problem ("Warner", wenn zum Beispiel die Windstärke eine bestimmte Schwelle überschritten hat). In diesen Fällen liess ich den entsprechenden Teil der Definition bisher leer, also kein einziges Zeichen zwischen den Trennern (|).

Alle Definitionen bin ich durchgegangen - mir fällt nichts auf, zumal ich bis auf eine sie nicht verändert habe seit Wochen.

Herzliche Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

Zitat von: cwagner am 04 Januar 2014, 14:11:25
Alle Definitionen bin ich durchgegangen - mir fällt nichts auf, zumal ich bis auf eine sie nicht verändert habe seit Wochen.

Hallo Christian,

ich vermute, dass da noch etwas anders steht im Reading des Sensors als Zahl. Ich habe zwar filtern nach Zahlen eingebaut - womöglich funktioniert es aber nicht immer richtig.

Mache bitte:

list <das betroffene THRESHOLD-Modul>

und poste hier den Output.

Gruß

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

cwagner

Moin, Damian,

Deine Rückfrage hat mich auf die Spur gebracht: Da ich die Fehlermeldung ja nur beim Start bekam, wusste ich zunächst nicht, welcher der 10 THRESHOLDs den Auslöser darstellte. Ein Reload des Moduls im laufenden Betrieb führte aber auch nicht zur Fehlermeldung.
Das brachte mich dann auf die Idee: Kürzlich habe ich nämlich mit 1-Wire begonnen zu experimentieren, weil mir bei den Regelprozessen des Brenners und eines Fußbodenheizkreises die 3 Minuten Abstand zwischen den Sensormeldungen der bis dahin verwandten Homematic-Sensoren zu langsam waren (Burst beim verwendeten Sensortyp nichts brachte).

Und mein Brenner-THRESHOLD ist der erste, der nun alle 30 Sekunden einen Messwert bekommt (und somit im Zweifel 150 Sekunden früher das Erreichen des Schwellwertes erkennt, was durchaus die Auslösung des Sicherheitsthermostaten verhindern kann).

Bei diesem THRESHOLD fragte ich nach dem state  und bei meinem 1-Wire-Sensoren lautet das state-Reading, obwohl ich den STATUS so formatiert habe, dass er allen anderen Sensoren gleich ist:
Zitat
2014-01-04_16:49:32 T_Heizung T: 55.13 &deg;C ▾

Nachdem ich den THRESHOLD umgestellt habe von :
T_Heizung:state:10 SW_01_Brenner|set @ off|set @ on|0|aus:an
auf
T_Heizung:temperature:10 SW_01_Brenner|set @ off|set @ on|0|aus:an

ist der Spuk vorbei.

(An anderer Stelle werde ich mal fragen, warum OWTHERM überhaupt so expressiv formatiert).

Danke für den Anstoß - Problem gelöst.

Herzliche Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

jeanette0404

Hallo,

kann mir jemand bitte helfen?

Ich wollte eine Temp-Diff. mit THRESHOLD auswerten. Das heißt bei eine Temp.-Diff. von 5 Grad soll ein Wechselschalter (Actor fs20WS1) schalten.
Derzeit habe ich folgen Code verwendet:
define Solar1_WTauscher1 THRESHOLD WDS30_T1_T2:temperature:5 3Wege_WS_Solar|set @ on|set @ off|1

Die Temp.-Diff. wird auch angezeigt, aber es schaltet nichts.

Ich bräuchte mal eine Erklärung des Syntax.

Damian

Zitat von: jeanette0404 am 05 Januar 2014, 18:00:45
Hallo,

kann mir jemand bitte helfen?

Ich wollte eine Temp-Diff. mit THRESHOLD auswerten. Das heißt bei eine Temp.-Diff. von 5 Grad soll ein Wechselschalter (Actor fs20WS1) schalten.
Derzeit habe ich folgen Code verwendet:
define Solar1_WTauscher1 THRESHOLD WDS30_T1_T2:temperature:5 3Wege_WS_Solar|set @ on|set @ off|1

Die Temp.-Diff. wird auch angezeigt, aber es schaltet nichts.

Ich bräuchte mal eine Erklärung des Syntax.

Wenn 5 Watt die Schwelle sein soll, dann muss es so aussehen:

define Solar1_WTauscher1 THRESHOLD WDS30_T1_T2:temperature:0:5 3Wege_WS_Solar|set @ on|set @ off|1

Du hast die Hysterese von 5 definiert und keinen Vorgabewert, der kommt erst an zweiter Stelle.

Gruß

Damian

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