[gelöst] Bett als Waage - Messwertfilter Umsetzung

Begonnen von chunter1, 28 November 2020, 11:15:34

Vorheriges Thema - Nächstes Thema

chunter1

Ich hab vor kurzem meinen Lattenrost mit vier Wägezellen bestückt um einen groben Überblick über mein Gewicht zu erhalten ohne mich jeden Tag auf die Waage stellen zu müssen.
Da die Werte logischerweise schwanken, benötige ich einen Filter (z.B. Mittelwert).
Das Problem ist jedoch, dass im FileLog alle Werte eines Tages, also auch jene des unbelegten Betts vorliegen.
Wie würdet ihr es z.B. umsetzen, dass nur Werte über z.B. 50 kg in die Mittelwertberechnung einfließen?
Und wie kann man überhaupt eine Mittelwertberechnung über die z.B. letzten 3 Tage machen?
Ich fürchte das geht nur mit einem Perl-Script?!

[EDIT]
Und da wäre noch die automatische Offset-Kompensation die den über den Tag gemessenen "Bett-leer" Wert vom Mittelwert abzieht. ;)





Damian

Ich würde es so lösen:

defmod di_gewicht DOIF init{$_summe=0;;$_anzahl=0}\
{if ([sensor:gewicht] > 50) {\
  $_summe=$_summe+[sensor:gewicht];;\
  set_State($_summe/++$_anzahl);;\
}\
}\
{[12:00];;set_Reading("Tagesgewicht",get_State(),1);;$_summe=0;;$_anzahl=0}


Im Status des Moduls siehst du dein aktuelles Gewicht der Nacht.
Um 12:00 Uhr steht dein Durchschnittsgewicht der Nacht im Reading Tagesgewicht, das du loggen kannst - hoffentlich bis du bis dahin schon aufgestanden. ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

chunter1

Super, das schaut nach der perfekten Lösung aus!
Danke!! :)
Ich war so in das FileLog als einzige Datenquelle verbohrt, dass ich gar nicht an eine Sensor-getriggerte Lösung gedacht habe.