diff --git a/fhem/docs/commandref_frame.html b/fhem/docs/commandref_frame.html
index 3078f94fe..e54be62b4 100644
--- a/fhem/docs/commandref_frame.html
+++ b/fhem/docs/commandref_frame.html
@@ -457,7 +457,8 @@ attribute list if you want to know if a device supports these attributes.
If set, then every word in the argument is replaced by the value of the
reading if such a reading for the current device exists. If the value of
this attribute is enclused in {}, then it is evaluated. This attribute is
- evaluated each time a reading is updated.
+ evaluated each time a reading is updated.
+ The "set magic" described here is also applied.
@@ -1109,6 +1110,7 @@ The following local attributes are used by a wider range of devices:
name.
+ These replacements are also known as "set magic".
diff --git a/fhem/docs/commandref_frame_DE.html b/fhem/docs/commandref_frame_DE.html
index 2c8c1ab25..795d75d58 100644
--- a/fhem/docs/commandref_frame_DE.html
+++ b/fhem/docs/commandref_frame_DE.html
@@ -467,7 +467,8 @@ Gerät dokumentiert.
alle Wörter im Wert des Attributes durch das entsprechende Reading des
Gerätes ersetzt (soweit vorhanden). Falls der Wert in {}
eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die
- Auswertung passiert bei jeder Änderung eines Readings.
+ Auswertung passiert bei jeder Änderung eines Readings.
+ Die hier beschriebene "set magic" wird auch angewendet.
@@ -1175,6 +1176,7 @@ Die folgenden lokalen Attribute werden von mehreren Geräten verwendet:
$DEV wird dabei mit dem Namen des vom set betroffenen Gerätes ersetzt.
+ Diese Ersetzungen sind unter dem Namen "set magic" bekannt.
diff --git a/fhem/fhem.pl b/fhem/fhem.pl
index fa6376062..e9ccdc910 100755
--- a/fhem/fhem.pl
+++ b/fhem/fhem.pl
@@ -4165,7 +4165,10 @@ evalStateFormat($)
# Substitute reading names with their values, leave the rest untouched.
$st = $sr;
my $r = $hash->{READINGS};
- $st =~ s/\b([A-Za-z\d_\.-]+)\b/($r->{$1} ? $r->{$1}{VAL} : $1)/ge;
+ $st =~ s/\$name/$name/g;
+ (undef, $st) = ReplaceSetMagic($hash, 1, $st);
+ $st =~ s/\b([A-Za-z\d_\.-]+)\b/($r->{$1} ? $r->{$1}{VAL} : $1)/ge
+ if($st eq $sr);
}
$hash->{STATE} = ReplaceEventMap($name, $st, 1) if(defined($st));