diff --git a/fhem/CHANGED b/fhem/CHANGED index 0fb498c41..746ab0f10 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -334,3 +334,4 @@ - feature: added archivedir/archivecmd to the FileLog - feature: added EM1010PC/EM1000WZ/EM1000EM support - bugfix: undefined messages for unknown HMS devs (Peter, 8.6) + - bugfix: em1010 and %oldvalue bugs (Peter, 9.6) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index d5d5507c6..2aa07f411 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -1169,9 +1169,12 @@ CommandRename($$) $defs{$new} = $defs{$old}; delete($defs{$old}); - $attr{$new} = $attr{$old}; + $attr{$new} = $attr{$old} if(defined($attr{$old})); delete($attr{$old}); + $oldvalue{$new} = $oldvalue{$old} if(defined($oldvalue{$old})); + delete($oldvalue{$old}); + return undef; } @@ -1345,13 +1348,15 @@ CommandSetstate($$) if(!$d->{READINGS}{$b[2]} || $d->{READINGS}{$b[2]}{TIME} lt $tim) { $d->{READINGS}{$b[2]}{VAL} = $b[3]; $d->{READINGS}{$b[2]}{TIME} = $tim; - - $oldvalue{$a[0]}{TIME} = $tim; - $oldvalue{$a[0]}{VAL} = $b[2]; } } else { $d->{STATE} = $a[1]; + + $oldvalue{$a[0]}{VAL} = $a[1]; + # This time is not the correct one, but we do not store a timestamp for + # this reading. + $oldvalue{$a[0]}{TIME} = TimeNow(); } return $ret; diff --git a/fhem/test/fhem.save b/fhem/test/fhem.save index 4507b5003..6f54532a3 100644 --- a/fhem/test/fhem.save +++ b/fhem/test/fhem.save @@ -1,4 +1,4 @@ -#Fri Jun 8 08:37:17 2007 +#Sat Jun 9 10:53:09 2007 setstate FHZ fhtbuf: 1c setstate FHZ 2006-02-12 14:03:39 fhtbuf 23 setstate FHZ 2006-03-26 08:47:36 init2 deadbeefdeadbe