Neues Modul - THRESHOLD

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

Vorheriges Thema - Nächstes Thema

Damian

Hallo zusammen,

in Kombination mit dem dewpoint-Modul lässt sich mit der letzten Version eine Lüftungssteuerung ohne notifys realisieren.

Beispiel:

define dew_Aussensensor dewpoint dewpoint Aussensensor

define dew_Innensensor dewpoint dewpoint Innensensor

define TH_Lueftung THRESHOLD Aussensensor:dewpoint:2:Innensensor:dewpoint:-3 Luefter



Bedeutung: Der Lüfter springt an, wenn der Taupunkt außen 5 Grad (2+3) unter dem Taupunkt innen ist und geht wieder aus, wenn der Taupunkt außen 3 Grad unter dem Taupunkt innen ist.


Die Hysterese von 2 Grad und offset von -3 müssen natürlich den eigenen Bedürfnissen angepasst werden. Weitere Bedingungen der Steuerung lassen sich mit AND oder OR verknüpfen.

Ebenso können Alarme zum Fensteröffnen bzw. -schließen auf diese Weise realisiert werden.

Natürlich lässt sich eine Lüftungssteuerung genauso gut mit notifys, wie in der Doku des dewpoint-Moduls beschrieben, realisieren. Der Vorteil des obigen Beispiels ist jedoch, dass sich die Steuerung durch Kommandos wie: set TH_Lueftung desired <Wert>, set TH_Lueftung external, set TH_Lueftung hystersis <Wert>, set TH_Lueftung offset <Wert> beeinflussen lässt. Mit Heating_Control kann auch noch eine zeitliche Komponente der Steuerung hinzukommen.

Gruß

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

cwagner

Moin, Damian,

die neueste Ergänzung von Threshold, das zu meinen Lieblingsmodulen gehört, bringt mich noch einmal auf einen Feature-Vorschlag:
Ich nutze Threshold gerne als Thermostat im Heizungsumfeld. Dort gibt es einzelne Regelaufgaben, die von anderen Modulen/Ereignissen angestoßen werden. Die an sich sinnvolle Eigenschaft von Threshold, dass er nach einem Schaltvorgang auf das entgegengesetzte Ereignis wartet, um wieder aktiv zu werden, kommt mir da vereinzelt in die Quere.
Ich würde es gerne sehen, dass man einen manuellen Override auslösen mit zb.
set <name_threshold> on       oder off
Das sollte behandelt werden, als habe Threshold das Sensorereignis wahrgenommen und er soll nun auf das "Gegenereignis" warten: Off oder on und entsprechend handeln.

Könntest Du das als sinnvolle Ergänzung sehen oder hast Du gar einen Vorschlag das mit einem Dummy zu lösen?

Herzliche Grüße

Christian
PI 2B+/5 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

Hallo Christian,

meinst du set <name_threshold> cmd1_gt oder cmd2_lt?

Das habe ich speziell auf deinen Wunsch bereits eingebaut;) Siehe Commandref.

Gruß

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

cwagner

Moin, Damian,

wer lesen tut ist klar im Vorteil. Sorry - leider hatte ich nur die Neuerung mit dem zweiten Sensor wahrgenommen. Du hast tatsächlich meinen Wunsch aus dem Frühjahr umgesetzt, das werde ich jetzt mal ausprobieren.
Immerhin 8 Thresholds habe ich inzwischen im Einsatz und sie machen mir wirklich viel Freude. Inzwischen kann ich mir gar nicht mehr vorstellen, das alles mit Notifys und Begingungsmonstern zu bauen...

Herzliche Grüße

Christian
PI 2B+/5 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

ZitatImmerhin 8 Thresholds habe ich inzwischen im Einsatz

... das geht ja noch, bei mir sind es mittlerweile 20!


Ich weiß auch nicht mehr, wann ich mich zuletzt mit if-Abfragen rumgeschlagen habe;)


Noch mal zu deinem Problem von vorhin. Wichtig ist auch, gerade wenn Hysterese > 0 ist, cmd_default (beim Heizen auf 2) zu setzen, damit nicht gewartet werden muss, bis ein Grenzwert überschritten oder unterschritten wird, wenn man mit set ... desired oder set ... active das Modul in den Zustand "wait for next cmd" versetzt.

Gruß

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

tucka

Hi Damian,

sau geiles Modul, das Du da geschrieben hast!!!

Ich habe auch gleich schon mal meine Zirkulationspumpe (1-Wire Sensor + Homematic Funksteckdose) damit gesteuert.

Wie kann ich denn noch eine Zeitabhängige Schaltung mit einbauen? Ich will ja nicht, dass die Zirkulationspumpe auch die Nacht durchläuft....

Danke!!!
Tucka

Damian

Zitat von: tucka schrieb am Do, 10 Oktober 2013 18:48Hi Damian,

Wie kann ich denn noch eine Zeitabhängige Schaltung mit einbauen? Ich will ja nicht, dass die Zirkulationspumpe auch die Nacht durchläuft....

Indem du die Solltemperatur für die Nacht runter setzt, z. B.

define HC_Pumpe Heating_Control TH_Pumpe 06:00|40 22:00|10 set @ desired %

So etwas steht aber auch in der commandref des Modul bei den Beispielen:

siehe:

http://fhem.de/commandref_DE.html#THRESHOLD

Gruß

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

Vorhand

Hallo,

habe folgende Definition:
define GaesteDuscheFenster THRESHOLD fht.Gaestedusche:measured-temp:2:19:0  FS20_St02BueroSteckdose
Zweck:
Ich möchte über die Temperatur des FHT Reglers erinnert werden, dass das Fenster noch offen ist - über die Steckdose wird eine Lampe eingeschaltet.

Wenn ich mit set ... den Sollwert ändere, müsste dann das Modul sofort schalten? ( tut es derzeit nicht)
Ist was falsch an der Definition?

Grüße
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

Damian

Hat die Definition von GaesteDuscheFenster geklappt oder gab es Fehlermeldung bei der Definition?

"Wenn ich mit set ... den Sollwert ändere, müsste dann das Modul sofort schalten? ( tut es derzeit nicht)"

Das Modul arbeitet ereignisgesteuert, sofort heißt hier, wenn dein FHT wieder die aktuelle Temperatur sendet.

Wenn´s dann nicht klappt, bitte die Readings von GaesteDuscheFenster posten.

Gruß

Damian

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

volschin

Zitat von: Damian am 27 September 2013, 22:00:10
in Kombination mit dem dewpoint-Modul lässt sich mit der letzten Version eine Lüftungssteuerung ohne notifys realisieren.

Beispiel:

define dew_Aussensensor dewpoint dewpoint Aussensensor

define dew_Innensensor dewpoint dewpoint Innensensor

define TH_Lueftung THRESHOLD Aussensensor:dewpoint:2:Innensensor:dewpoint:-3 Luefter



Bedeutung: Der Lüfter springt an, wenn der Taupunkt außen 5 Grad (2+3) unter dem Taupunkt innen ist und geht wieder aus, wenn der Taupunkt außen 3 Grad unter dem Taupunkt innen ist.


Die Hysterese von 2 Grad und offset von -3 müssen natürlich den eigenen Bedürfnissen angepasst werden. Weitere Bedingungen der Steuerung lassen sich mit AND oder OR verknüpfen.
Super, nachdem ich an der Funktion von dewpoint im fan und alarm-Modus mit den Homematic TC's fast verzweifelt bin, kam mir das gerade richtig.
Genau diesen Taupunktvergleich wollte ich machen und mit einer Schwelle bei der Humidity koppeln. Das habe ich jetzt über 2 kombinierte Thresholds realisiert.
define Humidity.Wohnen THRESHOLD Thermostat.Wohnen_Weather:humidity:10:55:0||||on:off|_sc
define Lueftung.Wohnen THRESHOLD Thermostat.Wohnen_Weather:dewpoint:2:Wetter:dewpoint:1 AND Humidity.Wohnen Luefter.Wohnen|set @ on|set @ off|2||_sc _dv


Allerdings funktioniert das Update von Attributen bei Änderung der DEF nicht fehlerfrei, insbesondere wenn nicht alle optionalen Teile nach hinten angegeben sind. Bei mir hat es dann die Hysterese nicht mehr aktualisiert, bzw. auf 0 gesetzt.

Mit einer Lampe funktioniert das jetzt, mal testen, wie es produktiv ausschaut. 8)

Gruß,
Veit
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

Damian

#175
Zitat von: volschin am 20 Oktober 2013, 16:29:38
Allerdings funktioniert das Update von Attributen bei Änderung der DEF nicht fehlerfrei, insbesondere wenn nicht alle optionalen Teile nach hinten angegeben sind. Bei mir hat es dann die Hysterese nicht mehr aktualisiert, bzw. auf 0 gesetzt.

Das kann gut sein.

Wenn man z. B beim erstmaligen Define eines THRESHOLD-Moduls einen Aktor angegeben hat, dann werden bestimmte Default-Werte für den Status in den jeweiligen Attributen festgelegt, wenn man dann mit DEF den Aktor wegnimmt, wie bei deinem ersten THRESHOLD, dann gelten diese Default-Werte nicht mehr und müssen entweder in den Attributen manuell geändert werden oder durch vollständige Angabe in der THRESHOLD-Definition, wie bei dir jetzt, angegeben werden. Das Gleiche gilt auch für die Hysterese.

Wann welche Default-Werte gelten, steht in der commandref des Moduls.

Gruß

Damian

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

jps

Servus an alle hier im Forum -
bin ein Newbie...,

seit es wieder kälter wurde habe ich das geniale THRESHOLD Modul für meine Fußbodenheizung laufen - 4 Kreise.
Und es hat sofort funktioniert, a Traum - danke Damian!
Jetzt wird's noch kälter und ich will einen Frostwächter für den verglasten Balkon definieren.
Dabei habe ich ein Problem ähnlich wie det. im Juni. Ein einfacher HM THSensor soll einen HM Schalter steuern.
Im Eventmonitor kommen die Events des Sensors, aber der Schalter reagiert nicht - auch nicht, wenn ich die desired Temp höher
als die Außentemperatur (z.B. 18) setze.
Das ist mein Setup:
--> fhem.cfg
##### Tempertursensor Balkon unten #####
define T_Balkon_unten CUL_HM 1CCC74
attr T_Balkon_unten .devInfo 030100
attr T_Balkon_unten .stc 70
attr T_Balkon_unten actCycle 000:10
attr T_Balkon_unten actStatus unknown
attr T_Balkon_unten expert 2_full
attr T_Balkon_unten firmware 1.2
attr T_Balkon_unten model HM-WDS10-TH-O
attr T_Balkon_unten peerIDs
attr T_Balkon_unten room CUL_HM,Balkon
attr T_Balkon_unten serialNr JEQ0268211
attr T_Balkon_unten subType THSensor

##### Schalter Balkon #####
define HZ_Schalter_Balkon CUL_HM 1BF032
attr HZ_Schalter_Balkon .devInfo 010100
attr HZ_Schalter_Balkon .stc 10
attr HZ_Schalter_Balkon expert 2_full
attr HZ_Schalter_Balkon firmware 1.9
attr HZ_Schalter_Balkon model HM-LC-SW1-PL2
attr HZ_Schalter_Balkon peerIDs
attr HZ_Schalter_Balkon room CUL_HM,Balkon
attr HZ_Schalter_Balkon serialNr JEQ0462233
attr HZ_Schalter_Balkon subType switch
attr HZ_Schalter_Balkon webCmd toggle:on:off:statusRequest
define FileLog_HZ_Schalter_Balkon FileLog ./log/HZ_Schalter_Balkon-%Y.log HZ_Schalter_Balkon
attr FileLog_HZ_Schalter_Balkon logtype text
attr FileLog_HZ_Schalter_Balkon room CUL_HM

define Frostschutz_Balkon THRESHOLD T_Balkon_unten:temperature:1:0 HZ_Schalter_Balkon
attr Frostschutz_Balkon room Balkon
attr Frostschutz_Balkon state_cmd1_gt off
attr Frostschutz_Balkon state_cmd2_lt on
attr Frostschutz_Balkon state_format _m _dv _sc
define SVG_FileLog_HZ_Schalter_Balkon_1 SVG FileLog_HZ_Schalter_Balkon:SVG_FileLog_HZ_Schalter_Balkon_1:CURRENT
attr SVG_FileLog_HZ_Schalter_Balkon_1 room Balkon

-->
fhem> list Frostschutz_Balkon
Internals:
   DEF        T_Balkon_unten:temperature:1:0 HZ_Schalter_Balkon
   NAME       Frostschutz_Balkon
   NR         131
   NTFY_ORDER 50-Frostschutz_Balkon
   STATE      initialized
   TYPE       THRESHOLD
   cmd1_gt    set HZ_Schalter_Balkon off
   cmd2_lt    set HZ_Schalter_Balkon on
   cmd_default 2
   hysteresis 1
   init_desired_value 0
   offset     0
   sensor     T_Balkon_unten
   sensor_reading temperature
   Readings:
     2013-10-24 14:09:46   cmd             wait for next cmd
     2013-10-24 14:09:46   desired_value   0
     2013-10-24 14:09:46   mode            active
     2013-10-23 20:47:17   sensor_value    15.7
     2013-10-24 11:40:14   state           active 0
     2013-10-24 14:09:46   threshold_max   0
     2013-10-24 14:09:46   threshold_min   -1
Attributes:
   room       Balkon
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv _sc


Wahrscheinlich habe ich etwas Grundlegendes übersehen - aber ich komm nicht drauf.
Könnt ihr mir bitte helfen?

Grüße
Joachim

Damian

Hallo Joachim,

die Definition von Frostschutz_Balkon sieht ok aus, ob die Hysterese von 1 Grad sinnvoll ist, ist eine andere Frage.

Lt. Readings deines THRÈSHOLD-Moduls hat dein Sensor T_Balkon_unten zuletzt gestern um  20:47:17 gesendet.

Poste mal die Readings von  T_Balkon_unten.

Gruß

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

jps

Hallo Damian,

danke für die Express-Antwort...
Mit readings meinst du die Einträge z.B. im Log-File für T_Balkon_unten?
Das sieht so aus: - demnach sendet der Sensor alle 2-3 Min.
...
2013-10-24_15:09:47 T_Balkon_unten temperature: 19.4
2013-10-24_15:09:47 T_Balkon_unten humidity: 65
2013-10-24_15:09:47 T_Balkon_unten T: 19.4 H: 65
2013-10-24_15:12:05 T_Balkon_unten temperature: 19.4
2013-10-24_15:12:05 T_Balkon_unten humidity: 65
2013-10-24_15:12:05 T_Balkon_unten T: 19.4 H: 65
2013-10-24_15:14:09 T_Balkon_unten temperature: 19.4
2013-10-24_15:14:09 T_Balkon_unten humidity: 65
2013-10-24_15:14:09 T_Balkon_unten T: 19.4 H: 65
2013-10-24_15:17:02 T_Balkon_unten temperature: 19.4
2013-10-24_15:17:02 T_Balkon_unten humidity: 65
2013-10-24_15:17:02 T_Balkon_unten T: 19.4 H: 65
2013-10-24_15:19:40 T_Balkon_unten temperature: 19.4
2013-10-24_15:19:40 T_Balkon_unten humidity: 65
2013-10-24_15:19:40 T_Balkon_unten T: 19.4 H: 65


Grüße
Joachim

Damian

Nein, ich meinte nicht den Log.

Readings sind zu sehen beim Device selbst.

Mach einfach list T_Balkon_unten wie beim THRESHOLD-Modul, da sind die Readings mit dabei.

Gruß

Damian

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