FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: gestein am 06 April 2022, 19:17:22

Titel: DOIF als Warnung bei zu hoher Temperatur
Beitrag von: gestein am 06 April 2022, 19:17:22
Hallo,

ich nutze meine JeeLink Temperatur-Sensoren um meine Kühlschränke und Tiefkühler zu überwachen.
Wenn es zu warm wird, bekomme ich eine Meldung per Telegramm.
Das funktioniert mittlerweile auch ganz gut.
defmod di_Bad.Tiefkuehler DOIF ([Bad.Tiefkuehler:temperature:d] > [dyParameter:Bad.Tiefkuehler_limit:d]) (msg 'Der Tiefkühler im Bad ist zu warm ([Bad.Tiefkuehler:temperature]° statt [dyParameter:Bad.Tiefkuehler_limit]°)! Ist die Tür eventuell offen?')\
DOELSE\
(msg 'Zieltemperatur im Tiefkühler im Bad ([Bad.Tiefkuehler:temperature]°) wieder erreicht')
attr di_Bad.Tiefkuehler repeatcmd {min(ReadingsNum("dyParameter","Dauer_Meldung_Kuehlschraenke",300)*ReadingsNum("$SELF","cmd_count",1),5400)}
attr di_Bad.Tiefkuehler repeatsame 400:1
attr di_Bad.Tiefkuehler room Z_System->LaCrosse


Allerdings habe ich ein Problem mit den Temperatursensoren beim Erreichen der Zieltemperatur.
Anscheinend springen die Messwerte immer wieder hin und her.
Besonders lästig ist das, wenn der Zielwert knapp erreicht wurde.
Da löst das DOIF dann natürlich immer wieder aus, weil ja der Zielwert erreicht ist und dann wieder nicht, dann wieder schon....

Wie kann ich Den Temperatursensor quasi "entprellen"?

Danke im Voraus
lg, Gerhard
Titel: Antw:DOIF als Warnung bei zu hoher Temperatur
Beitrag von: Damian am 06 April 2022, 19:19:55
Zitat von: gestein am 06 April 2022, 19:17:22
Hallo,

ich nutze meine JeeLink Temperatur-Sensoren um meine Kühlschränke und Tiefkühler zu überwachen.
Wenn es zu warm wird, bekomme ich eine Meldung per Telegramm.
Das funktioniert mittlerweile auch ganz gut.
defmod di_Bad.Tiefkuehler DOIF ([Bad.Tiefkuehler:temperature:d] > [dyParameter:Bad.Tiefkuehler_limit:d]) (msg 'Der Tiefkühler im Bad ist zu warm ([Bad.Tiefkuehler:temperature]° statt [dyParameter:Bad.Tiefkuehler_limit]°)! Ist die Tür eventuell offen?')\
DOELSE\
(msg 'Zieltemperatur im Tiefkühler im Bad ([Bad.Tiefkuehler:temperature]°) wieder erreicht')
attr di_Bad.Tiefkuehler repeatcmd {min(ReadingsNum("dyParameter","Dauer_Meldung_Kuehlschraenke",300)*ReadingsNum("$SELF","cmd_count",1),5400)}
attr di_Bad.Tiefkuehler repeatsame 400:1
attr di_Bad.Tiefkuehler room Z_System->LaCrosse


Allerdings habe ich ein Problem mit den Temperatursensoren beim Erreichen der Zieltemperatur.
Anscheinend springen die Messwerte immer wieder hin und her.
Besonders lästig ist das, wenn der Zielwert knapp erreicht wurde.
Da löst das DOIF dann natürlich immer wieder aus, weil ja der Zielwert erreicht ist und dann wieder nicht, dann wieder schon....

Wie kann ich Den Temperatursensor quasi "entprellen"?

Danke im Voraus
lg, Gerhard

Ich würde den Median nehmen : https://fhem.de/commandref_DE.html#DOIF_Reading_Funktionen
Titel: Antw:DOIF als Warnung bei zu hoher Temperatur
Beitrag von: det. am 07 April 2022, 09:09:29
Ich habe das seit langem erfolgreich anders gelöst: es gibt eine Telegramm Meldung wenn die höchst zulässige Temperatur überschritten ist. Danach einen Test, ob die darauf folgende Temperaturmessung einen niedrigeren Wert ergibt - wenn ja, funktioniert der Gefrierschrank - wenn nicht gibt es einen neue Meldung - dann ist der Stecker draußen oder Gerät defekt und es wird so lange weitergewarnt bis das Problem beseitigt ist. Durch eine ausreichend lange Zeit zwischen 2 Messungen (3 min) kommt es zu keinem Fehlalarm
Titel: Antw:DOIF als Warnung bei zu hoher Temperatur
Beitrag von: Per am 24 April 2022, 13:23:55
Statt DOELSE würde ich DOELSEIF und eine entsprechende Hysterese nutzen.