Hiverize / FiPy

3 stars 11 forks source link

keine Ausreißer bei Temperaturmessung #10

Open didilamken opened 5 years ago

didilamken commented 5 years ago

Bei den Messungen mit dem DS18B20 haben mich die Ausreisser ( z.B. 85.5, 268.3 oder gar 1234.5 ) gestört. Falls ein Messwert eine Toleranz über- oder unterschreitet, wird er ignoriert und der letzte genommen: .... if (ds18b20tmp > ds18b20old + ds18b20tol): # Aktueller Wert > alter Wert print('korr> {}. Temp.: {} C -> old: {} C'.format(ds18b20index, ds18b20tmp, ds18b20old)) ds18b20tmp = ds18b20old ds18b20told[ds18b20index] = ds18b20tmp if (ds18b20tmp < ds18b20old - ds18b20tol): # Aktueller Wert < alter Wert print('korr< {}. Temp.: {} C -> old: {} C'.format(ds18b20index, ds18b20tmp, ds18b20old)) ds18b20tmp = ds18b20old ds18b20told[ds18b20index] = ds18b20tmp .... image

ClemensGruber commented 4 years ago

Wir haben Ausreißer über die Verbesserung der DS18B20-Treiber deutlich reduziert, eine Filterung der Werte auf node-Seite ist daher nicht mehr nötig. Ggf. auftretende Ausreißer werden nun serverseitig im Bob-Webinterfache per running median visuell unterdrückt. In die Datenbank werden sie aber aufgenommen, und damit dokumentiert um z.B. hier noch zu verbessern.