Howto: flackernde / zappelnde Messwerte von Sensoren glätten

Begonnen von macfly, 08 Dezember 2017, 11:34:43

Vorheriges Thema - Nächstes Thema

macfly

Hallo,

ich wollte mal erklären, wie man schnell zappelnde Messwerte von Sensoren so bearbeiten kann, dass die Plots dazu wieder hübsch aussehen.

Ausgangslage (bei mir):  Ich habe den Aussensensor "Technoline Zusatzsensor TX 29 DTH", der sehr gut funktioniert (Temperatur und Luftfeuchtigkeit), der aber oft Daten sendet. Mal ein Auszug aus dem Log (nur auf temperatur gefiltert):
2017-12-06_12:33:04 Garten.TemperaturInnen humidity: 84
2017-12-06_12:33:08 Garten.TemperaturInnen humidity: 85
2017-12-06_12:33:13 Garten.TemperaturInnen humidity: 84
2017-12-06_12:33:17 Garten.TemperaturInnen humidity: 84
2017-12-06_12:33:22 Garten.TemperaturInnen humidity: 84
2017-12-06_12:33:26 Garten.TemperaturInnen humidity: 85
2017-12-06_12:33:31 Garten.TemperaturInnen humidity: 84
2017-12-06_12:33:35 Garten.TemperaturInnen humidity: 84
2017-12-06_12:33:40 Garten.TemperaturInnen humidity: 84
2017-12-06_12:33:48 Garten.TemperaturInnen humidity: 85
2017-12-06_12:33:53 Garten.TemperaturInnen humidity: 85
2017-12-06_12:33:57 Garten.TemperaturInnen humidity: 84
2017-12-06_12:34:02 Garten.TemperaturInnen humidity: 84
2017-12-06_12:34:06 Garten.TemperaturInnen humidity: 84
2017-12-06_12:34:15 Garten.TemperaturInnen humidity: 85
2017-12-06_12:34:20 Garten.TemperaturInnen humidity: 84
2017-12-06_12:34:24 Garten.TemperaturInnen humidity: 84
2017-12-06_12:34:29 Garten.TemperaturInnen humidity: 85
2017-12-06_12:34:33 Garten.TemperaturInnen humidity: 84
2017-12-06_12:34:38 Garten.TemperaturInnen humidity: 84
2017-12-06_12:34:43 Garten.TemperaturInnen humidity: 85
2017-12-06_12:34:47 Garten.TemperaturInnen humidity: 85
2017-12-06_12:34:51 Garten.TemperaturInnen humidity: 84
2017-12-06_12:34:56 Garten.TemperaturInnen humidity: 84


Das ist nicht nur Last auf dem System, das sieht auch noch doof im Plot aus, siehe Anhang.

Zur Abhilfe kann man aber direkt am Sensor die anfallenden Daten glätten:


   event-aggregator temperature:120:linear:mean,humidity:120:linear:mean
   event-on-change-reading battery
   event-on-update-reading humidity,temperature


event-aggregator Fasst mehrere Messwerte zusammen, und zwar im Zeitraum von 120 Sekunden. Linear bedeutet, dass alle Messwerte erfasst werden und die werden mit der Mittelwertfunktion (mean) aggregiert. Kommasepariert kann man weitere readings zusammenfassen. Bei mir wird also temperature und humidity gemittelt.

event-on-update-reading humidity,temperature sorgt dafür, dass trotzdem nicht alle 10 Sekunden im Log steht:
2017-12-06_12:33:04 Garten.TemperaturInnen battery: ok

damit aber die Batterieinfo nicht verloren geht, gibt es bei Änderung des Batteriestatus einen Eintrag mit event-on-change-reading battery

damit bekommt man zwar Temperaturen mit 10 Nachkommastellen (wegen der mittelwertfunktion), dafür aber nur einen pro 2 Minuten:
2017-12-08_06:37:04 Garten.TemperaturInnen humidity: 87
2017-12-08_06:39:01 Garten.TemperaturInnen humidity: 87
2017-12-08_06:40:57 Garten.TemperaturInnen humidity: 86.9588843322973
2017-12-08_06:42:49 Garten.TemperaturInnen humidity: 86.9615329299518
2017-12-08_06:44:46 Garten.TemperaturInnen humidity: 86.9799993854042
2017-12-08_06:46:42 Garten.TemperaturInnen humidity: 86.9615374311932
2017-12-08_06:48:35 Garten.TemperaturInnen humidity: 86.9583274920085
2017-12-08_06:50:31 Garten.TemperaturInnen humidity: 86.8800486511339
2017-12-08_06:52:19 Garten.TemperaturInnen humidity: 86.9615243511022
2017-12-08_06:54:15 Garten.TemperaturInnen humidity: 86.95999886928
2017-12-08_06:56:03 Garten.TemperaturInnen humidity: 86.960343222165
2017-12-08_06:57:55 Garten.TemperaturInnen humidity: 86.8789444472017
2017-12-08_06:59:52 Garten.TemperaturInnen humidity: 87
2017-12-08_07:01:48 Garten.TemperaturInnen humidity: 87


und die Plots dazu sehen auch wieder hübsch aus.


Vielleicht hilft es ja dem einen oder anderen.

schöne Grüße,
Friedhelm



Tedious

Schöne Idee. Alternativ kannst Du auch das Chart "glätten" indem Du Mix/Max definierst. Damit werden die Kurven auch grade gezogen und das Pulsen ist weg... (gleiche Sensoren, Siehe Bilder). Wenn Du die Spanne im Beispiel Humidity auf [0:100] setzt fallen kleine Ausrisse nicht mehr auf.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

macfly

du hast recht, sie fallen nicht mehr auf, sie sind aber noch da ;D
Und das Logfile ist immer noch so mördergroß.

aber es führen immer mehrere Wege nach Rom.

connormcl

Normalweise schränkt man doch einfach das Zeitintervall der Aufzeichnung ein...

Zitatattr LaCrosseSensorName event-min-interval state:600,battery:3600,temperature:300,humidity:300

Dann werden die Logs nicht zu gross und es müssen auch keine Werte miteinander verrechnet werden...


sash.sc

Habe es bei mir mit event-min-intervall .*:300 gemacht. Heißt alle 5 Minuten werden alle Werte ins log geschrieben.
Funktioniert ganz gut.

Gesendet von meinem SM-T560 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Hollo

Zitat von: macfly am 08 Dezember 2017, 11:34:43
...Zur Abhilfe kann man aber direkt am Sensor die anfallenden Daten glätten...
Der Sensor selbst sendet so oder so ca. alle 4 Sekunden; daran ändert auch kein Attribut oder Mittelwert etwas.

Du kannst nur wie in den vorherigen Beiträgen mit Event-irgendwas die Events verringern und Anzahl/Häufigkeit der Logwerte.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"