2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-13 05:06:35 +00:00

avoid unitialized value warnings for undefined readings in ReadingsBulkUpdate

git-svn-id: https://svn.fhem.de/fhem/trunk@2182 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
borisneubert 2012-11-24 13:48:12 +00:00
parent 6d6ec4d200
commit 259fbf8f37

View File

@ -2928,21 +2928,25 @@ readingsBulkUpdate($$$) {
# shorthand # shorthand
my $readings= $hash->{READINGS}; my $readings= $hash->{READINGS};
my $changed= 1;
# check for changes only if reading already exists
if(defined($readings->{$reading})) {
# these flags determine if any of the "event-on" attributes are set; # these flags determine if any of the "event-on" attributes are set;
my $attreocr= AttrVal($name, "event-on-change-reading", ""); my $attreocr= AttrVal($name, "event-on-change-reading", "");
my $attreour= AttrVal($name, "event-on-update-reading", ""); my $attreour= AttrVal($name, "event-on-update-reading", "");
# these flags determine whether the reading is listed in any of the attributes # these flags determine whether the reading is listed in any of the attributes
my $eocr= $attreocr && grep($_ eq $reading, split /,/,$attreocr); my $eocr= $attreocr && grep($_ eq $reading, split /,/,$attreocr);
my $eour= $attreour && grep($_ eq $reading, split /,/,$attreour); my $eour= $attreour && grep($_ eq $reading, split /,/,$attreour);
# determine if an event should be created # determine if an event should be created
my $changed= !($attreocr || $attreour) # always create event if no attribute is set my $changed= !($attreocr || $attreour) # always create event if no attribute is set
|| $eour # or if the reading is listed in event-on-update-reading || $eour # or if the reading is listed in event-on-update-reading
|| ($eocr && # or if the reading is listed in event-on-change-reading... || ($eocr && # or if the reading is listed in event-on-change-reading...
($value ne $readings->{$reading}{VAL})); # ...and its value has changed. ($value ne $readings->{$reading}{VAL})); # ...and its value has changed.
}
setReadingsVal($hash, $reading, $value, $hash->{helper}{updating}{latestUpdate}); setReadingsVal($hash, $reading, $value, $hash->{helper}{updating}{latestUpdate});