Ultraschall Füllstandsmessung - unrealistische Werte filtern

Begonnen von maci, 27 April 2019, 10:30:14

Vorheriges Thema - Nächstes Thema

maci

Hallo,

Ich habe an einen ESP8266 einen Ultraschall Entfernungsmesser zur Füllstandsmessung hängen.
Das funktioniert ganz gut, aber hin und wieder kommt es vor dass 3-4 Werte plötzlich um bis zu 150 cm daneben liegen.
Ich messe alle 10 min, wobei der ESP8266 in den DeepSleep Modus geht.

Wie kann ich diese "unrealistischen" Werte ausfiltern?
Ich habe mich auch schon mit dem Attribut adjustValue auseinander gesetzt.
Doch ich komme nicht hin.

Wenn ich das setze
attr DeviceName adjustValue Distance:-30
wird nur der Messwert um diesen Faktor verändert.
Ich möchte aber erreichen dass Werte, die sich plötzlich um den Faktor x, gegenüber den anderen Werten, ändern gefiltert werden.
So eine schnelle Änderung ist unmöglich. So schnell füllt sich meine Zisterne nicht.

Wie kann ich das mit einer Formel hinbekommen?
zB. Ich errechne zB. einen Average Wert aus den letzten 4 Messungen, dies ist dann mein Referenzwert zum Filten.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

steffen83

Frage vorweg, was nimmst du für ein Sensor?

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

maci

Habe den HC-SR04 verbaut.
Platine gut in Heißkleber verpackt, damit nichts feucht wird.

Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

steffen83

Ich dachte dass die Sensoren anfangen zu rosten.
Hatte da andere, so Rückfahrsensoren vom Auto aber das läuft im Moment nicht.

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

Papa Romeo

#4
...den SR04 gibt´s auch wasserdicht und "rostfrei".... ;) ;D

Habe ich z.B. zum automatischen Ein- und Ausfahren des Landegestell´s bei meiner Drohne im Einsatz.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

maci

Nein mit rosten ist da noch nichts, denn ich habe das erst seit einer Woche im Einsatz.

Ein Nachbar von mir hat diesen Sensor auch im Einsatz, das aber schon ohne Probleme schon seit fast 2 Jahren.

Ich denke, dass bei mir von Zeit zu Zeit der Saugschlauch, der ja mit Filter an einem Schwimmer hängt, in das Messfeld treibt.
Das kann ich aber schlecht verhindern.

Daher bin ich auf den Gedanken gekommen, diese Werte auszufiltern.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Wzut

Zitat von: maci am 27 April 2019, 10:30:14
zB. Ich errechne zB. einen Average Wert aus den letzten 4 Messungen, dies ist dann mein Referenzwert zum Filten.
ein userReading anlegen das nur mit dem aktuellen Wert versorgt wird wenn dieser nicht mehr als x % von deiner Referenz abweicht.
Mache ich bei meinem Öltank auch so , da ab und an auch Werte vorkommen die nicht logisch sind.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Otto123

Hallo Maci,

schau mal hier, das war eine ähnliche Problemstellung. Nun musst Du bloß noch aus allen sinnvollen Werten einen gleitenden Mittelwert bilden den Du als Kriterium verwendest. Das gab es auch schon mal was ...

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

maci

Danke mal für die Antworten. Denke, dass da gute Ansätze dabei sind.
Halt euch am laufenden, wenn ich mal eine Ansatz habe.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

duke-f

Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Tedious

Ich berechne dazu einen gleitenden Mittelwert über die letzten 12 Stunden, das minimiert den Fehler falls mal eine "krumme" Messung dabei ist.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

maci

Zitat von: Tedious am 30 April 2019, 15:44:47
Ich berechne dazu einen gleitenden Mittelwert über die letzten 12 Stunden, das minimiert den Fehler falls mal eine "krumme" Messung dabei ist.

Krumme Messung ist gut.

Seit es vorgestern wieder mal geregnet hat, ist auch meine Zisterne wieder etwas voller.
Da ist dann mein Sauger der ja schwimmt ziemlich herumgekommen.
Daher ist die Messung per Ultraschall fast unbrauchbar. Da sind sehr viele krumme Messungen dabei.
Siehe Bild.

Ich habe nun beschlossen ist stellen meine Messung um auf die Methode nach diesem Thread hier.
https://forum.fhem.de/index.php/topic,100029.0.html
China Sensor ist bereits bestellt.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Papa Romeo

..kannst du den Sauger nicht irgendwie so anlegen, dass er nicht in den Erfassungsbereich des Ultraschallsensor´s kommen kann?
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

fiedel

#13
Hi,
ich würde Fehlmessungen nicht in eine Mittelwertsberechnung einfließen lassen,
da diese dann den Istwert ungewünscht verändern. Mein Füllstandsmesser macht sowas auch
und ich schließe die Fehlwerte einfach aus.

Gruß
Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423