mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-25 09:55:38 +00:00
98_structure.pm: add random as set "filter" (Forum #137517)
git-svn-id: https://svn.fhem.de/fhem/trunk@28671 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
5a630a3b1a
commit
980d5932df
@ -429,6 +429,21 @@ structure_Set($@)
|
|||||||
@devList = reverse @devList;
|
@devList = reverse @devList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(@list > 1 && $list[$#list] =~ m/^random:(\d+)/) { #137517
|
||||||
|
my $selCount = $1;
|
||||||
|
my $devCount = $#devList + 1;
|
||||||
|
$selCount = $devCount if ($selCount > $devCount || $selCount < 1);
|
||||||
|
my @selDev = @devList;
|
||||||
|
@devList = ();
|
||||||
|
for (1..$selCount) {
|
||||||
|
my $n = int(rand($devCount));
|
||||||
|
redo if ($selDev[$n] eq "");
|
||||||
|
push(@devList,$selDev[$n]);
|
||||||
|
$selDev[$n] = "";
|
||||||
|
}
|
||||||
|
pop @list;
|
||||||
|
}
|
||||||
|
|
||||||
if($list[1] =~ m/^(save|restore)StructState$/) {
|
if($list[1] =~ m/^(save|restore)StructState$/) {
|
||||||
return "Usage: set $me $list[1] readingName" if(@list != 3);
|
return "Usage: set $me $list[1] readingName" if(@list != 3);
|
||||||
return "Bad reading name $list[2]" if(!goodReadingName($list[2]));
|
return "Bad reading name $list[2]" if(!goodReadingName($list[2]));
|
||||||
@ -670,7 +685,9 @@ structure_Attr($@)
|
|||||||
propagated set for the attached devices like this: <code>set
|
propagated set for the attached devices like this: <code>set
|
||||||
<devN>:FILTER=<filter> <type-specific></code><br>
|
<devN>:FILTER=<filter> <type-specific></code><br>
|
||||||
If the last set parameter is "reverse", then execute the set commands in
|
If the last set parameter is "reverse", then execute the set commands in
|
||||||
the reverse order.
|
the reverse order.<br/>
|
||||||
|
If the last set parameter is given as "random:4" only 4 structure members will
|
||||||
|
be selected randomly which will receive the given command.<br/>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@ -899,15 +916,17 @@ structure_Attr($@)
|
|||||||
</li><br>
|
</li><br>
|
||||||
Jedes andere set Kommando wird an alle Devices dieser Struktur
|
Jedes andere set Kommando wird an alle Devices dieser Struktur
|
||||||
weitergegeben.<br>
|
weitergegeben.<br>
|
||||||
Aussnahme: das Attribut structexclude ist in einem Device definiert und
|
Ausnahme: das Attribut structexclude ist in einem Device definiert und
|
||||||
dessen Attributwert matched als Regexp zum Namen der aktuellen
|
dessen Attributwert matched als Regexp zum Namen der aktuellen
|
||||||
Struktur.<br> Wenn das set Kommando diese Form hat <code>set
|
Struktur.<br> Wenn das set Kommando diese Form hat <code>set
|
||||||
<structure> [FILTER=<filter>] <type-specific></code> wird
|
<structure> [FILTER=<filter>] <type-specific></code> wird
|
||||||
:FILTER=<filter> bei der Weitergebe der set an jeden Devicenamen wie
|
:FILTER=<filter> bei der Weitergabe der set an jeden Devicenamen wie
|
||||||
folgt angehängt: <code>set <devN>:FILTER=<filter>
|
folgt angehängt: <code>set <devN>:FILTER=<filter>
|
||||||
<type-specific></code><br>
|
<type-specific></code><br>
|
||||||
Falls der letzte Parameter reverse ist, dann werden die Befehle in der
|
Falls der letzte Parameter reverse ist, dann werden die Befehle in der
|
||||||
umgekehrten Reihenfolge ausgeführt.
|
umgekehrten Reihenfolge ausgeführt.<br/>
|
||||||
|
Falls der letzte Parameter dem Muster "random:4" entspricht, erhalten nur 4
|
||||||
|
zufällig ausgewählte Devices den Befehl.<br/>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
<a id="structure-get"></a>
|
<a id="structure-get"></a>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user