mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
fhem.pl: add set magic to stateFormat (Forum #38276)
git-svn-id: https://svn.fhem.de/fhem/trunk@13917 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
885a8ca20a
commit
73d2ef4e0d
@ -457,7 +457,8 @@ attribute list if you want to know if a device supports these attributes. <br>
|
||||
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.<br>
|
||||
The "set magic" described <a href="#set">here</a> is also applied.
|
||||
</li>
|
||||
<p>
|
||||
|
||||
@ -1109,6 +1110,7 @@ The following local attributes are used by a wider range of devices:
|
||||
name.
|
||||
</li>
|
||||
</ul>
|
||||
These replacements are also known as "set magic".
|
||||
<br><br>
|
||||
|
||||
<a name="setExtensions"></a>
|
||||
|
@ -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.<br>
|
||||
Die <a href="#set">hier</a> beschriebene "set magic" wird auch angewendet.
|
||||
</li>
|
||||
|
||||
<a name="event-on-update-reading"></a>
|
||||
@ -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.
|
||||
</li>
|
||||
</ul>
|
||||
Diese Ersetzungen sind unter dem Namen "set magic" bekannt.
|
||||
<br><br>
|
||||
|
||||
<a name="setExtensions"></a>
|
||||
|
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user