Neues Modul - THRESHOLD

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

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: egmontr am 01 November 2018, 16:02:47
Wo wird das userReading angegeben und wie wird es im Threshold angegeben.

Wo du willst, und dann wie in der Doku beschrieben: define <name> THRESHOLD <device>:<reading> ...
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Superwutz

Hallöchen

ich würde gerne meinen Heizstab in Abhängig von meine PV-Anlage steuern. Diese soll den Heizstab ab einem gewissen Wer einfach auf on oder off setzten.

Dazu habe ich folgenden code probiert:

define HeizstabControl THRESHOLD Wechselrichter:SPOT_PACTOT:2500 Heizstab|set @  on|set @ off

Leider passiert hier soweit ich das mitkriege gar nichts sobald der Wert überschritten wird.
Wo habe ich mich vertan? :(
FHEM unter Windows
Drölfzig Homematic IP Devices

Bartimaus

Moin,

an anderer Stelle hatte ich es bereits gepostet. Aber besser nochmal hier...

Ich fände es gut, wenn es ein Attribut "wait" geben würde, ähnlich wie bei DOIF.
Damit könnte man Falschmeldungen von Sensoren abpuffern.

LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

Zitat von: Bartimaus am 12 Februar 2019, 09:59:04
Moin,

an anderer Stelle hatte ich es bereits gepostet. Aber besser nochmal hier...

Ich fände es gut, wenn es ein Attribut "wait" geben würde, ähnlich wie bei DOIF.
Damit könnte man Falschmeldungen von Sensoren abpuffern.
Das stimmt, allerdings habe ich die Weiterentwicklung bei diesem Modul eingestellt und mache nur noch Korrekturen.

Ich habe bei mir auch schon viele THRESHOLDS durch DOIFs ersetzt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Bartimaus

Zitat von: Damian am 12 Februar 2019, 12:28:15
Ich habe bei mir auch schon viele THRESHOLDS durch DOIFs ersetzt.

:o :o

Schade
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

Zitat von: Bartimaus am 12 Februar 2019, 12:34:36
:o :o

Schade
ja, gerade bei wait wäre der Aufwand nicht unerheblich, weil man Timer ins THRESHOLD-Modul einbauen müsste. Z. Zt. kennt THRESHOLD kein timergesteuertes Verhalten.

Um Falschmeldungen, zu vermeiden, weil z. B. Temperatursensoren falsche Daten liefern, kann man sich neuerdings mit dem Median im DOIF behelfen:

define bereinigt DOIF ##
attr event_Readings outdoor:[outdoor:temperature:med]


Beim THRESHOLD muss man dann nur hier den Sensor outdoor:temperature auf bereingt:outdoor ändern.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Bartimaus

Ah, auch gut. Danke für den Hinweis.

Ich bereinige das jetzt allerdings nach einem Tip von Otto, direkt in OWTHERM bzw. OWAD mit einem Userreading

{ReadingsNum("Gerät","Reading","") if (ReadingsNum("Gerät","Reading","") < 100)}

das hat für mich noch einen weiteren Vorteil, das ich im FileLog des Temp_Devices die fehlerhaften Logeinträge nicht per "ignoreregexp" rausfiltern muss.

Aber wo ich Dich gerade schonmal am Apparat hab (  ::) )

Meinen Kellerentfeuchter schalte ich per THRESHOLD so wie in der Commandref beschrieben.

Sollwert 60%, Hysterese 5.
Dennoch hat sich der Entfeuchter bei 58% eingeschaltet. Ich dachte cmd_gt1 wird erst bei einem Wert > 60% eingeschaltet.....  :-\
Ich muss das später nochmal raussuchen
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

Zitat von: Bartimaus am 12 Februar 2019, 13:36:52
Sollwert 60%, Hysterese 5.
Dennoch hat sich der Entfeuchter bei 58% eingeschaltet. Ich dachte cmd_gt1 wird erst bei einem Wert > 60% eingeschaltet.....  :-\
Ich muss das später nochmal raussuchen

Sollwert 60%, Hysterese 5, bedeutet von 55 % bis 60 %, passt also.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Bartimaus

Hm,

dann habe ich das falsch interpretiert....

Es soll gelüftet werden, wenn die Feuchtigkeit im Zimmer über 70 % ist; bei 60 % geht der Lüfter wieder aus.
define TH_hum THRESHOLD sens:humidity:10:70 ventilator|set @ on|set @ off|1
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

Zitat von: Bartimaus am 12 Februar 2019, 18:24:14
Hm,

dann habe ich das falsch interpretiert....

Es soll gelüftet werden, wenn die Feuchtigkeit im Zimmer über 70 % ist; bei 60 % geht der Lüfter wieder aus.
define TH_hum THRESHOLD sens:humidity:10:70 ventilator|set @ on|set @ off|1


Ist im Wesentlichen das Gleiche, der desired-Wert ist immer die Obergrenze, Hysterese wird von der Obergrenze abgezogen und bestimmt die Untergrenze.

Warum bei dir bei 58% geschaltet wurde, ist mir nicht ganz klar, normalerweise sollte er bei über 60% einschalten.

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

Bartimaus

Zitat von: Damian am 12 Februar 2019, 19:30:54
.......normalerweise sollte er bei über 60% einschalten.

..... genau das hat mich gewundert. Wie gesagt, ich werde das nochmal beobachten.
Ansonsten bau ich mir ein DOIF  8)
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bartimaus

So,

habe mal die Hysterese auf 15|60 gestellt.

List des THRESHOLD:

Internals:
   DEF        Temp_Kino:Feuchte:15:60 Shelly.Luftentfeuchter |set @ on|set @ off|1
   NAME       Th_KellerLueftung
   NR         1443
   NTFY_ORDER 50-Th_KellerLueftung
   STATE      active 60.0
   TYPE       THRESHOLD
   cmd1_gt    set Shelly.Luftentfeuchter on
   cmd2_lt    set Shelly.Luftentfeuchter off
   cmd_default 1
   hysteresis 15
   init_desired_value 60
   offset     0
   sensor     Temp_Kino
   sensor_reading Feuchte
   READINGS:
     2019-02-12 21:03:31   cmd             cmd1_gt
     2019-02-12 20:24:43   desired_value   60
     2019-02-12 20:25:03   mode            active
     2019-02-12 21:03:31   sensor_value    49.000
     2019-02-12 21:03:31   state           active 60.0
     2019-02-12 20:24:43   threshold_max   60
     2019-02-12 20:24:43   threshold_min   45
Attributes:
   disable    0
   number_format %.1f
   room       Heizung,Kino
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv


Logauszug des THRESHOLD
2019-02-12_19:39:29 Th_KellerLueftung mode: deactivated
2019-02-12_20:24:43 Th_KellerLueftung threshold_min: 45
2019-02-12_20:24:43 Th_KellerLueftung threshold_max: 60
2019-02-12_20:24:43 Th_KellerLueftung cmd: wait for next cmd
2019-02-12_20:24:43 Th_KellerLueftung desired_value: 60
2019-02-12_20:24:43 Th_KellerLueftung mode: active
2019-02-12_20:25:03 Th_KellerLueftung initialized
2019-02-12_20:25:03 Th_KellerLueftung mode: active
2019-02-12_20:25:03 Th_KellerLueftung cmd: wait for next cmd
2019-02-12_21:03:31 Th_KellerLueftung sensor_value: 49.000
2019-02-12_21:03:31 Th_KellerLueftung cmd: cmd1_gt
2019-02-12_21:03:31 Th_KellerLueftung active 60.0


Log des Feuchtesensors:
2019-02-12_17:58:12 Temp_Kino Taupunkt: 8.9
2019-02-12_19:43:20 Temp_Kino Temperatur: 20.060
2019-02-12_19:43:20 Temp_Kino Taupunkt: 8.5
2019-02-12_19:48:21 Temp_Kino Temperatur: 20.640
2019-02-12_19:48:21 Temp_Kino Taupunkt: 8.9
2019-02-12_20:18:23 Temp_Kino Feuchte: 47.980
2019-02-12_20:18:23 Temp_Kino Taupunkt: 9.5
2019-02-12_21:03:30 Temp_Kino Feuchte: 49.000
2019-02-12_21:03:30 Temp_Kino Taupunkt: 9.9


Der Sensor war nie > 60%, aber grösser als 45%, deswegen ist er wohl angesprungen

Vielleicht erkennst Du ja den Fehler....
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

Wenn man das THRESHOLD Modul aktiviert, dann wird der Wert  ausgewertet und wenn er nicht unterhalb des minimalen Wertes liegt (hier 45) dann wird der Lüfter eingeschaltet. Das ist bewusst so programmiert, da der Anwender bis auf den minimalen Wert herunter will. Wenn man das Modul nicht manuell per set aktiviert, wird nach dem Abschalten bis zum maximalen Wert gewartet, bis der Lüfter wieder an geht. Also alles im grünen Bereich.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Bartimaus

Hallo Damian,

vielen Dank für die Analyse und erschöpfende Antwort.
LG
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Manfi

Hallo,

Habe mir eine Heizungssteuerung gebaut, bei der ich den Heizkessel wahlweise über ein konventionelles Raumthermostat oder über FHEM mit dem THRESHOLD Modul schalten kann.
Es funktioniert auch alles sehr gut, nur ist mir aufgefallen, daß bei Befehlen, wie z.B. set THRESHOLD_xyz active/deactivated Attribute gesetzt oder gelöscht werden und diese Strukturänderungen wollen dann auch gesichert werden . Ich habe das bei keinem anderen Modul so gesehen. Deshalb meine Frage: Ist das so gewollt, oder ist das ein Bug?

MfG

Manfi
Hardware: Raspberry Pi2, SignalDuino 433, Sonoff/Tasmota, NodeMCU/ESPEasy, FS10