From ed3b186322a060378ca04a6d369c4676ac3b16b0 Mon Sep 17 00:00:00 2001 From: borisneubert Date: Sat, 15 May 2010 17:20:21 +0000 Subject: [PATCH] allow only meaningful readings (fill level > -5%) in USF1000 git-svn-id: https://svn.fhem.de/fhem/trunk@633 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 5 +++-- fhem/FHEM/09_USF1000.pm | 28 ++++++++++++++++------------ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index 892738561..90208aaa9 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -577,7 +577,7 @@ (Gerhard Pfeffer / MartinH) - feature: pgm2 style changes, SVG in background, optional compression -- =DATE= (5.0) +- =DATE= (4.10) - feature: KM271: Read only - bugfix: 99_SUNRISE_EL endless loop bug - feature: CUL: optional baudrate spec in definition @@ -586,4 +586,5 @@ - bugfix: DST change: absolute at and relative sunrise fix - feature: FHEMWEB javascript additions for SVG plots (click on lines/labels) - feature: FHEMWEB smallscreen attribute - - feature: Dimmer function of X10 module changed to match FS20 dimmer functions. \ No newline at end of file + - feature: Dimmer function of X10 module changed to match FS20 dimmer functions. + - feature: allow only meaningful readings (fill level > -5%) in USF1000 \ No newline at end of file diff --git a/fhem/FHEM/09_USF1000.pm b/fhem/FHEM/09_USF1000.pm index 2319080e7..490ce178e 100644 --- a/fhem/FHEM/09_USF1000.pm +++ b/fhem/FHEM/09_USF1000.pm @@ -137,21 +137,25 @@ USF1000_Parse($$) $flevel = int($volume/$capacity*100.0+0.5); $volume= int($volume/10.0+0.5)*10.0; + if($flevel>-5) { + # reflections may lead to false reading (distance too large) + # the meaningless results are suppressed - my $state= sprintf("v: %d V: %d", $flevel, $volume); + my $state= sprintf("v: %d V: %d", $flevel, $volume); - $def->{CHANGED}[0] = $state; - $def->{STATE} = $state; - $def->{READINGS}{state}{TIME} = $t; - $def->{READINGS}{state}{VAL} = $state; - Log GetLogLevel($name, 4), "USF1000 $name: $state"; + $def->{CHANGED}[0] = $state; + $def->{STATE} = $state; + $def->{READINGS}{state}{TIME} = $t; + $def->{READINGS}{state}{VAL} = $state; + Log GetLogLevel($name, 4), "USF1000 $name: $state"; - $def->{READINGS}{distance}{TIME} = $t; - $def->{READINGS}{distance}{VAL} = $distance; - $def->{READINGS}{level}{TIME} = $t; - $def->{READINGS}{level}{VAL} = $flevel; - $def->{READINGS}{volume}{TIME} = $t; - $def->{READINGS}{volume}{VAL} = $volume; + $def->{READINGS}{distance}{TIME} = $t; + $def->{READINGS}{distance}{VAL} = $distance; + $def->{READINGS}{level}{TIME} = $t; + $def->{READINGS}{level}{VAL} = $flevel; + $def->{READINGS}{volume}{TIME} = $t; + $def->{READINGS}{volume}{VAL} = $volume; + } } my $warnings= ($lowbattery ? "Battery low" : "");