diff --git a/FHEM/09_BS.pm b/FHEM/09_BS.pm
index 4fe226849..30e4f6716 100644
--- a/FHEM/09_BS.pm
+++ b/FHEM/09_BS.pm
@@ -22,7 +22,7 @@ BS_Initialize($)
$hash->{UndefFn} = "BS_Undef";
$hash->{ParseFn} = "BS_Parse";
$hash->{AttrList} = "do_not_notify:1,0 showtime:0,1 ".
- "ignore:1,0 model:BS loglevel:0,1,2,3,4,5,6";
+ "ignore:1,0 model:BS loglevel:0,1,2,3,4,5,6 " . $readingFnAttributes;
}
@@ -110,18 +110,13 @@ BS_Parse($$)
my $state= sprintf("brightness: %.2f lux: %.0f flags: %d",
$brightness, $lux, $flags);
- $def->{CHANGED}[0] = $state;
- $def->{STATE} = $state;
- $def->{READINGS}{state}{TIME} = $t;
- $def->{READINGS}{state}{VAL} = $state;
- Log GetLogLevel($name, 4), "BS $name: $state";
-
- $def->{READINGS}{brightness}{TIME} = $t;
- $def->{READINGS}{brightness}{VAL} = $brightness;
- $def->{READINGS}{lux}{TIME} = $t;
- $def->{READINGS}{lux}{VAL} = $lux;
- $def->{READINGS}{flags}{TIME} = $t;
- $def->{READINGS}{flags}{VAL} = $flags;
+ readingsBeginUpdate($def);
+ readingsBulkUpdate($def, "state", $state);
+ #Log GetLogLevel($name, 4), "BS $name: $state";
+ readingsBulkUpdate($def, "brightness", $brightness);
+ readingsBulkUpdate($def, "lux", $lux);
+ readingsBulkUpdate($def, "flags", $flags);
+ readingsEndUpdate($def, 0);
return $name;
@@ -194,6 +189,7 @@ BS_Parse($$)
loglevel
model (bs)
ignore
+ readingFnAttributes
diff --git a/FHEM/09_USF1000.pm b/FHEM/09_USF1000.pm
index 7a6985c0e..7971d3a86 100644
--- a/FHEM/09_USF1000.pm
+++ b/FHEM/09_USF1000.pm
@@ -26,7 +26,7 @@ USF1000_Initialize($)
$hash->{UndefFn} = "USF1000_Undef";
$hash->{ParseFn} = "USF1000_Parse";
$hash->{AttrList} = "IODev do_not_notify:1,0 ignore:0,1 showtime:0,1 " .
- "model:usf1000s loglevel:0,1,2,3,4,5,6";
+ "model:usf1000s loglevel:0,1,2,3,4,5,6 " . $readingFnAttributes;
}
@@ -116,6 +116,7 @@ USF1000_Parse($$)
my $distance= hex($xx)/100.0; # in meters
my $valid= (($distance>0.00) && ($distance<2.55));
+ readingsBeginUpdate($def);
if($valid) {
my $wlevel = $def->{HEIGHT}-($distance-$def->{OFFSET}); # water level
@@ -144,18 +145,14 @@ USF1000_Parse($$)
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";
+ readingsBulkUpdate($def, "state", $state);
+ readingsBulkUpdate($def, "distance", $distance);
+ readingsBulkUpdate($def, "level", $flevel);
+ readingsBulkUpdate($def, "volume", $volume);
+
+ #Log GetLogLevel($name, 4), "USF1000 $name: $state";
+ #Debug "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;
}
}
@@ -166,8 +163,9 @@ USF1000_Parse($$)
}
$warnings= $warnings ? $warnings : "none";
- $def->{READINGS}{"warnings"}{TIME} = $t;
- $def->{READINGS}{"warnings"}{VAL} = $warnings;
+ readingsBulkUpdate($def, "warnings", $warnings);
+
+ readingsEndUpdate($def, 0);
return $name;
@@ -246,6 +244,7 @@ USF1000_Parse($$)
loglevel
model (usf1000s)
ignore
+ readingFnAttributes