From 9835ea0971237bfda6d60be0f2f78f5e0ffb9a4d Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Fri, 19 Jan 2018 12:15:44 +0000 Subject: [PATCH] fhem.pl: add resolveAttrRename (Forum #82337) git-svn-id: https://svn.fhem.de/fhem/trunk@15926 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index b0d02be59..8b4736cf3 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -136,6 +136,7 @@ sub readingsEndUpdate($$); sub readingsSingleUpdate($$$$); sub redirectStdinStdErr(); sub rejectDuplicate($$$); +sub resolveAttrRename($$); sub restoreDir_init(); sub restoreDir_rmTree($); sub restoreDir_saveFile($$); @@ -2685,6 +2686,8 @@ CommandAttr($$) push @rets, "$sdev: unknown attribute $attrName, choose one of $list"; next; } + + $attrName = resolveAttrRename($sdev,$attrName); if(" $list " !~ m/ ${attrName}[ :;]/) { my $found = 0; @@ -4049,6 +4052,21 @@ setGlobalAttrBeforeFork($) } } +sub +resolveAttrRename($$) +{ + my ($d,$n) = @_; + + return $n if(!$d || !$defs{$d}); + my $m = $modules{$defs{$d}{TYPE}}; + if($m->{AttrRenameMap} && defined($m->{AttrRenameMap}{$n})) { + Log 3, "WARNING: $d attribute $n was renamed to ".$m->{AttrRenameMap}{$n}; + return $m->{AttrRenameMap}{$n}; + } + + return $n; +} + ########################################### # Functions used to make fhem-oneliners more readable, @@ -4151,6 +4169,7 @@ sub AttrVal($$$) { my ($d,$n,$default) = @_; + $n = resolveAttrRename($d, $n); return $attr{$d}{$n} if(defined($attr{$d}) && defined($attr{$d}{$n})); return $default; }