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
|
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
|
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
|
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>
|
</li>
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
@ -1109,6 +1110,7 @@ The following local attributes are used by a wider range of devices:
|
|||||||
name.
|
name.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
These replacements are also known as "set magic".
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<a name="setExtensions"></a>
|
<a name="setExtensions"></a>
|
||||||
|
@ -467,7 +467,8 @@ Gerät dokumentiert.
|
|||||||
alle Wörter im Wert des Attributes durch das entsprechende Reading des
|
alle Wörter im Wert des Attributes durch das entsprechende Reading des
|
||||||
Gerätes ersetzt (soweit vorhanden). Falls der Wert in {}
|
Gerätes ersetzt (soweit vorhanden). Falls der Wert in {}
|
||||||
eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die
|
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>
|
</li>
|
||||||
|
|
||||||
<a name="event-on-update-reading"></a>
|
<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.
|
$DEV wird dabei mit dem Namen des vom set betroffenen Gerätes ersetzt.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
Diese Ersetzungen sind unter dem Namen "set magic" bekannt.
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<a name="setExtensions"></a>
|
<a name="setExtensions"></a>
|
||||||
|
@ -4165,7 +4165,10 @@ evalStateFormat($)
|
|||||||
# Substitute reading names with their values, leave the rest untouched.
|
# Substitute reading names with their values, leave the rest untouched.
|
||||||
$st = $sr;
|
$st = $sr;
|
||||||
my $r = $hash->{READINGS};
|
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));
|
$hash->{STATE} = ReplaceEventMap($name, $st, 1) if(defined($st));
|
||||||
|
Loading…
Reference in New Issue
Block a user