Neues Modul - THRESHOLD

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

Vorheriges Thema - Nächstes Thema

cwagner

Hallo Damian,
bei meinem neuesten Threshld-Projekt bin ich auf einen Wunsch gestossen: Auch hier realisiere ich eine Tag-/Nachabsenkung über die Manipulation des desired-Wertes über Heating_Control, wie Du es ja auch vorschlägst.
Bei diesem Threshold habe ich nun einen extrem trägen Verlauf des Sensorwertes. Wie üblich, ist der Sensorwert über on-change-update so eingestellt, dass wirklich nur bei einer Änderung der Wert ins Log geschrieben wird uns als event rausgepustet wird. Manchmal ändert sich der Sensorwert erst nach einer Stunde mit dem Ergebnis, dass der neue Desired-Wert auch wirklich erst nach einer Stunde zu einem CMD vom Threshold führt - bis dahin "waiting".
Was hälst Du davon, bei einer Änderung des desired-wertes, das ist für Dein Programm ja ein event, den Vergleich sensorwert?desired sofort auszuführen. Dann würde beim Zutreffen der Bedingung Threshold auch zeitnah schalten.

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

Hallo Christian,

die Problematik ist bei mir noch nicht aufgefallen, da ich bisher on-change-update noch nicht genutzt hatte und davon ausging, dass die Ist-Werte regelmäßig kommen.
Dein Vorschlag macht Sinn. Ich muss noch schauen, wie ich es im Einzelnen sinnvoll realisieren kann.

Gruß

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

cwagner

Moin, Damian,

freut mich, dass Du Dich so positiv mit meinem Einwand beschäftigst.

event-on-change-reading oder event-on-update-reading setzte ich eigentlich durchgängig ein, um Logs schlanker zu halten und die Zahl der einprasselnden Events (210 Entitäten) überschaubar zu halten auf vergleichsweise langsamer Hardware.

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

Liebe Gemeinde,

wer aufmerksam diesen Thread verfolgt hat, dürfte feststellen, dass heute der Jahrestag dieses Threads ist. Genau vor einem Jahr habe ich das erste Modul hier zum Download angeboten - damals war es noch kein Bestandteil von FHEM. Mit über 20.000 Klicks scheint es, neben Heating_Control-Thread, eines der meist gelesenen Threads hier im Forum zu sein.

Nun gibt es zum Geburtstag meistens Geschenke. Ich habe auf Wunsch von Christian die Reaktionszeit des Moduls beim Setzen von desired, offset, active, hysteresis beschleunigt, sodass jetzt sofort reagiert wird. Die ersten Tests sind bei mir bereits positiv verlaufen. Wenn sich keine negativen Randerscheinungen mehr ergeben, gibt es morgen ein Update des Moduls.

Gruß

Damian

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

cwagner

Juchuuuu!

Und: Gratulation!  THRESHOLD => http://youtu.be/JZC7Hng4AWc


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

Holgi0815

Hallo Damian,
ich nutze Dein Modul gern und vorallem stabil/erfolgreich!
Nun habe ich aber ein "drolliges" Verhalten festgestellt, wobei ich nicht sicher bin, ob dies am Modul oder an FHRM generell liegt.
ich möchte das Ergebnis (hier on/off) in 1/0 umsetzen, um gleich ein entsprechendes Logfile zu füllen, das dann wieder ein schickes Plot ergibt.

vereinfacht zum nachstellen:
   - define test_THRESHOLD THRESHOLD dy_Innen_Durchschnitt DUMMY  <-dy_Innen_Durchschnitt ist der Sensor/DUMMY zum spielen
   - attr test_THRESHOLD eventMap on:1 off:0
   - set test_THRESHOLD desired 20.2
alles funktioniert bestens - Logfile ist GUT! DUMMY hat 0 oder 1
aber
   - set test_THRESHOLD desired 20.0
ergibt "test_THRESHOLD: set desired value:20.off, desired value needs a numeric parameter"
bei "desired" wäre mir das glatt wurscht, da "20" ja geht, aber bei "hysteresis" z.B. würde ich gern auf 0.7 gehen (oder so) hier ist der gleiche Effekt durch das eventMap.
ich hab gerade nochmal geschaut: $Id: 98_THRESHOLD.pm 4740 2014-01-25 18:48:59Z damian-s $
das Verhalten ist aber schon länger(immer) so und

BTW auch von mir: Alles gute zum Geburtstag sozusagen :)
Viele Grüße
Holger

Damian

Zitat von: Holgi0815 am 28 Januar 2014, 19:37:33
ich möchte das Ergebnis (hier on/off) in 1/0 umsetzen, um gleich ein entsprechendes Logfile zu füllen, das dann wieder ein schickes Plot ergibt.
Hallo Holger,

ich befürchte, ich habe da wenig Einfluss auf das Mapping, denn ich erhalte von außen im Modul THRESHOLD bereits den ersetzten String mit on bzw. off.

Schöne Plots mit on/off habe ich bei mir auch ohne Mapping. Du brauchst nur im Plotmenü in der Spalte: Function: $fld[2]=~"on"?1:0 einzugeben, dann kannst du auch on/off visualisieren. Wenn du mehrere Devices mit on/off in einem Plot darstellen willst, dann kannst du unterschiedliche Zahlen für unterschiedliche Höhen nehmen (siehe Screenshot unten).

Gruß

Damian



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

cwagner

Hallo Damian,

das geänderte Schaltverhalten von Threshold bei Änderungen von desired und anderen Parametern hat sich bei mir nun seit dem update sehr bewährt. Danke für dieses Geburtstagsgeschenk für Dein Kleinkind. Aus dem Nuckelalter ist THRESHOLD ja nun schon längst raus:-)
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

Holgi0815

Hallo Damian,
ich hatte bis gerade angenommen, daß das Attr eventMap nur den "Ausgang" also das Event beinflusst. So ist mir jetzt klar, daß Module und somit auch Deins, solche globalen Dinge nicht beachten (sollten?!!).
Aber vor allem auf die naheligende Idee, die "Aufbereitung" nur da zu machen, wo sie auch gebraucht wird, nämlich im Plotmenue bin ich garnicht gekommen!
Danke für Deinen Anschupser, und ich mach mich mal ans Umbauen...
Grüße Holger

Bennemannc

Hallo,

ich habe mit dem Modul THRESHOLD probleme. Das Modul, was ich nutzen möchte ist ein Homematic Heizkörperthremostat. Bei einer Ventilöffnung von unter 5% soll die Pumpe abschalten.

define Thermostat_1_Clima CUL_HM 21F2E504
attr Thermostat_1_Clima alias Heizung Bad Ventil
attr Thermostat_1_Clima autoReadReg 4_reqStatus
attr Thermostat_1_Clima event-on-change-reading .*
attr Thermostat_1_Clima expert 1
attr Thermostat_1_Clima group Heizung Bad
attr Thermostat_1_Clima icon sani_heating
attr Thermostat_1_Clima model HM-CC-RT-DN
attr Thermostat_1_Clima peerIDs
attr Thermostat_1_Clima room Bad
attr Thermostat_1_Clima stateFormat Soll: desired-temp C°, Ist: measured-temp C°<br>Ventil:ValvePosition
attr Thermostat_1_Clima userReadings 1

define TEST THRESHOLD Thermostat_1_Clima:ValvePosition:1:5 Pumpe|set @ on|set @ off|1

erzeugt die Fehlermeldung "Unkonwn sensor device Thermostat_1_Clima specified"

Kann ich diesen Wert überhaupt mit THRESHOLD arbeiten oder was ist daran falsch?

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Damian

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

Damian

#251
Hallo zusammen,

falls jemand nach einer einfachen Möglichkeit sucht, seine Heizung selbst nach Heizkennlinie zu steuern, ohne dafür ein Modul zu programmieren oder Perl zu bemühen, der kann das einfach mit dem THRESHOLD-Modul realisieren.

Beispiel zum Heizen der Fußbodenheizung mit der 0,8 Heizkennlinie:

setreading T_Vorlauf Vorgabe 0
define TH_Heizung THRESHOLD T_Vorlauf:temperature:5:T_Vorlauf:Vorgabe Heizung
define n_Vorlauftemp notify Aussensensor.T.* IF ($hms gt "06:00" and $hms lt "22:00") (setreading T_Vorlauf Vorgabe {[Aussensensor:temperature]*(-0.578)+33.56})
define a_Vorlauftemp at *22:01 setreading T_Vorlauf Vorgabe 0


Hier wird das THRESHOLD-Modul mit einem Pseudo-Vorgabe-Sensor als Reading gesteuert. Dieser Vorgabe-Reading der Vorlauftemperatur wird im notify zwichen 06:00 und 22:00 Uhr anhand der Außentemperatur berechnet. Dazu habe ich den IF-Befehl aus dem Nachbar-Thread  http://forum.fhem.de/index.php/topic,17895.msg118503.html#msg118503 benutzt (kann man natürlich auch mit Perl ohne IF umsetzen). Um 22:01 soll die Heizung durch Vorgabe 0 ausgehen. Als Hysterese habe ich hier 5 Grad genommen.

Die Berechnung der Heizkennlinie kann natürlich nach Belieben angepasst werden.

Gruß

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

strauch

Bei dir kann ich immer was über logische Verbindungen/Verknüpfungen lernen ;-). Danke für das Beispiel. Ich frage mich aber wie ihr alle eure Heizungen (z.B. Gastherme) ansteuern könnt?!
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Damian

Zitat von: strauch am 20 März 2014, 17:46:24
Bei dir kann ich immer was über logische Verbindungen/Verknüpfungen lernen ;-). Danke für das Beispiel. Ich frage mich aber wie ihr alle eure Heizungen (z.B. Gastherme) ansteuern könnt?!

Das ist natürlich nur ein Beispiel und entstand, weil jemand mich nach einer Steuerung für seine Auflade-Heizung fragte. Meine Heizung wird zwar über FHEM an und ausgeschaltet, allerdings regelt sie natürlich selbst die Vorlauftemperatur.

Ich wollte allerdings den Vierzeiler ohne Perl der FHEM-Gemeinde nicht vorenthalten.

Gruß

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

Bartimaus

Danke für das tolle Tool. Bin ja noch blutiger Anfänger, steuere allerdings seit heute mit nem simplen DS18B20 und nem FS20ST meine Fussbodenheizung im KinoKeller.
LG
B.


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