diff --git a/fhem/FHEM/32_TechemWZ.pm b/fhem/FHEM/32_TechemWZ.pm index 485002855..fa08c75d8 100644 --- a/fhem/FHEM/32_TechemWZ.pm +++ b/fhem/FHEM/32_TechemWZ.pm @@ -140,6 +140,7 @@ TechemWZ_Receive(@) { $hash->{VERSION} = $msg->{version}; $hash->{METER} = $typeText{$msg->{type}}; + delete $hash->{CHANGETIME}; # clean up, workaround for fhem prior http://forum.fhem.de/index.php/topic,47474.msg391964.html#msg391964 # day period changed $ats = ReadingsTimestamp($hash->{NAME},"current_period", "0"); @@ -149,9 +150,8 @@ TechemWZ_Receive(@) { $hash->{".updateTimestamp"} = $ts; readingsBulkUpdate($hash, "meter", $msg->{meter}); readingsBulkUpdate($hash, "current_period", $msg->{actualVal}); - $hash->{CHANGETIME}->[0] = $ts; + $hash->{CHANGETIME}->[$#{ $hash->{CHANGED} }] = $ts; readingsEndUpdate($hash, 1); - delete $hash->{CHANGETIME}; } # billing period changed @@ -161,9 +161,8 @@ TechemWZ_Receive(@) { readingsBeginUpdate($hash); $hash->{".updateTimestamp"} = $ts; readingsBulkUpdate($hash, "previous_period", $msg->{lastVal}); - $hash->{CHANGETIME}->[0] = $ts; + $hash->{CHANGETIME}->[$#{ $hash->{CHANGED} }] = $ts; readingsEndUpdate($hash, 1); - delete $hash->{CHANGETIME}; } return undef; @@ -242,7 +241,11 @@ TechemWZ_Parse(@) { push @d, $deviceHash->{NAME}; } - return (@d); + if defined($d[0]) { + return (@d); + } else { + return (''); # discard neighbor devices + } } sub