FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Chk1971 am 06 Dezember 2018, 21:17:08

Titel: Wie prüfen, ob in einem bestimmten Zeitraum ein Mindestmessdelta vorliegt
Beitrag von: Chk1971 am 06 Dezember 2018, 21:17:08
Liebe Forumsteilnehmer,

ich habe ein Brauchwasserspeicher, der oben und unten Temperaturmesswerte an FHEM liefert. Der Gasbrenner ist über FHEM steuerbar. Ich würde nun gerne folgendes erreichen: Es soll erkannt werden, wenn jemand duscht und dann der Brenner Warmwasser bereitstellen. Erkannt werden kann das Duschen, indem innerhalb eines Zeitraums von z.B. 2 Minuten die Temperatur des Speichers oben um X Grad sinkt.
Ich habe mich durch Suchfunktionen und Commandref gearbeitet, aber keinen Befehl gefunden, der das könnte. Ich dachte, ein notify mit einer event-on-change oder einem event-aggregator sollte funktionieren, komme aber schon bei der Beschreibung in der commandref nicht zur Einsicht, wie das funktionieren soll.

Letztlich geht es um die folgende Regelung: Wenn TemperaturzuBeginn - Temperaturnach2Minuten >6, dann Warmwasser an.

Hat jemand eine Idee, wie man das umsetzen kann?

Vielen Dank,
Christoph
Titel: Antw:Wie prüfen, ob in einem bestimmten Zeitraum ein Mindestmessdelta vorliegt
Beitrag von: amenomade am 06 Dezember 2018, 21:32:29
https://forum.fhem.de/index.php/topic,50014.msg417545.html#msg417545
Titel: Antw:Wie prüfen, ob in einem bestimmten Zeitraum ein Mindestmessdelta vorliegt
Beitrag von: Chk1971 am 06 Dezember 2018, 21:37:06
Vielen Dank, auf diesen Beitrag war ich nicht gestoßen. Ich versuche mal, das bei mir zum Laufen zu bringen!
Noch einen schönen Abend,
Christoph

Titel: Antw:Wie prüfen, ob in einem bestimmten Zeitraum ein Mindestmessdelta vorliegt
Beitrag von: crusader am 07 Dezember 2018, 18:10:23

Falls die Temperaturmesswerte in konstanten Zeitabständen vorliegen, könntest Du ein digitales Filter verwenden (missbrauchen).

siehe dazu: https://forum.fhem.de/index.php/topic,49261.msg409317.html#msg409317 (https://forum.fhem.de/index.php/topic,49261.msg409317.html#msg409317)

Benötigt wird ein FIR-Filter , das so viele Stützpunkte besitzt, wie Messwerte innerhalb des Betrachtungszeitraums anfallen und mit dem Koeffizienten 1 beginnt und -1 endet.

Zur Veranschaulichung an Beispiel, mit einem steigenden Temperatur-Messwert alle 15s:

define test DOIF ([+0:00:15]) \
\
  ((setreading $SELF temperature {( [$SELF:temperature,0]+0.1)} ))
attr test userattr temperature.filter temperature.numerator
attr test do always
attr test event-on-update-reading temperature
attr test temperature.filter FIRn
attr test temperature.numerator 1 0 0 0 0 0 0 0 -1
attr test userReadings Delta:temperature.*  { DigitalFilter($name,"temperature") }


Das Filter berechnet den Differenzwert des aktuellen und des 2 Minuten zurücklegenden Wertes.
Bitte dazu den Code aus dem Anhang verwenden, da nur hier der Filtertyp FIRn (Filter ohne Normierung) zur Verfügung steht.
Titel: Antw:Wie prüfen, ob in einem bestimmten Zeitraum ein Mindestmessdelta vorliegt
Beitrag von: Damian am 07 Dezember 2018, 20:44:51
Oder hier ein Beispiel wie ich Ansagen zum Fenster öffnen aufgrund steigender Feuchtigkeit, bzw. zum Fenster schließen aufgrund fallender Temperatur bei mir zuletzt umgesetzt habe:

defmod di_fenster_bad DOIF {if ([$SELF:increase]) {fhem_set("Echo_Bad speak Bitte Fenster öffnen");;set_State("Ansage Öffnen")}}\
{if ([BadFenster:state] eq "open") {set_Reading ("temp",ReadingsVal("TH_Bad_HM","measured-temp",0));;set_State("Fenster geöffnet")}}\
{if ([$SELF:cold]) {fhem_set("Echo_Bad speak Bitte Fenster schließen");;set_State("Ansage Schließen")}}

attr di_fenster_bad DOIF_Readings increase: [?BadFenster] eq "closed" and ([TH_Bad_HM:humidity]/OldReadingsVal("TH_Bad_HM","humidity",50)-1)*100 > 10,\
cold:[?BadFenster] eq "open" and ([$SELF:temp]-[TH_Bad_HM:measured-temp])>0.5


siehe auch hier: https://forum.fhem.de/index.php/topic,84969.msg857063.html#msg857063
Titel: Antw:Wie prüfen, ob in einem bestimmten Zeitraum ein Mindestmessdelta vorliegt
Beitrag von: Chk1971 am 13 Dezember 2018, 23:18:24
Crusader und Damian,

vielen Dank für Eure Beiträge! Ich bin immer wieder begeistert, was man mit den Erweiterungen von FHEM alles erreichen kann. Ich muss mir beide Vorschläge mal näher ansehen, was für mich am besten passt.

Noch einen schönen Abend,
Christoph