FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: dominik am 20 Mai 2020, 16:41:02

Titel: Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: dominik am 20 Mai 2020, 16:41:02
Hallo,

ich habe bei mir im Kühlschrank einen Temperatur/Feuchtigkeitssensor und möchte damit erkennen ob die Tür noch offen ist.

Laut den bisherigen Aufzeichnungen erhöht sich die Feuchtigkeit sehr sprungartig beim öffnen und geht dann auch wieder steil nach unten wenn die Tür zu ist. Nun habe ich bei DOIF :inc gefunden um die prozentuelle Steigerung zu berechnen. Leider finde ich keine Möglichkeit um die Differenz zwischen 2 Werten gegen die Zeitspanne zu dividieren.

Beispiel (Humidity, Zeit):
50% 16:00
55% 16:10 (normale Erhöhung während des Betriebs)
60% 16:11 (Tür wurde geöffnet)
55% 16:12 (Tür geschlossen)
50% 16:30 (normale Absenkung während des Betriebs)

Wie man sieht, ist zwischen den ersten beiden Werten 5% Unterschied, danach geht die Tür auf und der Wert steigt innerhalb einer Minuten um 5%. Genau diese Steigerung in kurzer Zeit möchte ich gerne im DOIF erkennen. Wenn jemand eine Idee hat, bitte gerne melden. Danke!
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: Damian am 20 Mai 2020, 17:02:13
Das könntest du mit diff lösen: https://fhem.de/commandref_DE.html#DOIF_Reading_Funktionen

Wenn der Sensor nicht regelmäßig sendet, kannst du bei diesem event-min-interval setzen.

Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: dominik am 20 Mai 2020, 17:15:22
diff habe ich mir auch schon angeschaut, da bekomme ich aber nicht die Zeitinfo. Da würde immer 5 zurück kommen.

Beim Beispiel würde ich folgende Werte benötigen:
50% 16:00
55% 16:10 (normale Erhöhung während des Betriebs) => 5%/10min=0.5
60% 16:11 (Tür wurde geöffnet) => 5/1=5
55% 16:12 (Tür geschlossen) => 5/1=5
50% 16:30 (normale Absenkung während des Betriebs) => 5/28=0.18

Immer wenn der Wert > 1 ist, könnte ich damit eine Türänderung erkennen. event-min-interval müsste ich in diesem Bsp auch auf 1 Minute setzen und damit hilft es mir auch nicht, oder?
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: Damian am 20 Mai 2020, 17:28:28
Zitat von: dominik am 20 Mai 2020, 17:15:22
diff habe ich mir auch schon angeschaut, da bekomme ich aber nicht die Zeitinfo. Da würde immer 5 zurück kommen.

Beim Beispiel würde ich folgende Werte benötigen:
50% 16:00
55% 16:10 (normale Erhöhung während des Betriebs) => 5%/10min=0.5
60% 16:11 (Tür wurde geöffnet) => 5/1=5
55% 16:12 (Tür geschlossen) => 5/1=5
50% 16:30 (normale Absenkung während des Betriebs) => 5/28=0.18

Immer wenn der Wert > 1 ist, könnte ich damit eine Türänderung erkennen. event-min-interval müsste ich in diesem Bsp auch auf 1 Minute setzen und damit hilft es mir auch nicht, oder?

event-min-interval  auf 1 setzen

und diff5 angeben
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: dominik am 20 Mai 2020, 17:34:43
Mit diff5 bekomme ich ja eine Differenz vom aktuellen Wert zum 5. letzten. Da kann es leicht sein, dass der 5. letzte Wert ebenfalls einer war wo die Tuer offen war und damit ist die Differenz zu klein.
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: Damian am 20 Mai 2020, 17:40:56
Zitat von: dominik am 20 Mai 2020, 17:34:43
Mit diff5 bekomme ich ja eine Differenz vom aktuellen Wert zum 5. letzten. Da kann es leicht sein, dass der 5. letzte Wert ebenfalls einer war wo die Tuer offen war und damit ist die Differenz zu klein.

Der fünftletzter ist immer der vor 5 Minuten und das wolltest du doch haben. Wenn die Tür offen ist, werden die späteren Differenzen kleiner sein, was egal ist, da der vorherige aufgrund größerer Differenz bereits zugeschlagen hat.
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: dominik am 20 Mai 2020, 17:48:09
Das muss nicht sein, dass der 5. letzte vor 5 Minuten war. Der Sensor liefert teilweise auch erst nach 30 Minuten einen neuen Wert wenn sich dazwischen nichts aendert. Oder habe ich event-min-interval falsch verstanden?

Im Anhang ein Diagramm mit der Luftfeuchtigkeit, da sieht man gut die Spitzen. Das sind die Zeiten wo die Tuer offen war.
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: Damian am 20 Mai 2020, 18:00:00
Zitat von: dominik am 20 Mai 2020, 17:48:09
Das muss nicht sein, dass der 5. letzte vor 5 Minuten war. Der Sensor liefert teilweise auch erst nach 30 Minuten einen neuen Wert wenn sich dazwischen nichts aendert. Oder habe ich event-min-interval falsch verstanden?

Im Anhang ein Diagramm mit der Luftfeuchtigkeit, da sieht man gut die Spitzen. Das sind die Zeiten wo die Tuer offen war.

Die Frage ist, ob du zuvor event-on-change-reading gesetzt hast.
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: dominik am 20 Mai 2020, 18:04:44
Nein, event-on-change-reading ist nicht gesetzt. Ist ein Xiaomi Zigbee Sensor.

Schön wäre eine Funktion :steigung die (aktueller Wert - letzter Wert)/Zeitspanne in Sekunde rechnet. Das wäre ideal.
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: Damian am 20 Mai 2020, 18:30:14
Zitat von: dominik am 20 Mai 2020, 18:04:44
Nein, event-on-change-reading ist nicht gesetzt. Ist ein Xiaomi Zigbee Sensor.

Schön wäre eine Funktion :steigung die (aktueller Wert - letzter Wert)/Zeitspanne in Sekunde rechnet. Das wäre ideal.

Du kannst es auch mit https://wiki.fhem.de/wiki/Event-aggregator probieren
Titel: Antw:Zeitspanne zwischen 2 Reading Änderungen
Beitrag von: dominik am 20 Mai 2020, 19:26:31
Danke fuer den Tipp! Das schau ich mir gleich an.