kann ich irgendwie statt attr einschalten setlist state:Lampe1,Lampe2,Lampe3,Lampe4
,irgendwie sagen : liste alle Devices vom Modell HM-LC-SW1-FM oder aus der Gruppe Lampen oder Raum Wohnzimmer auf!
attr einschalten setlist state: room oder group oder typ oder etwas in der art
Ich brauch auch nicht den vorgekauten Code,ein Stichwort mitdem ich mich durch etwas Suche einarbeiten kann reicht mir vollkommen(erstmal, :P!)
Moin,
versuch es einmal so:
{set_List("mein_dummy","IT")}
sub
set_List($$)
{
my ($DEVICE,$type) = @_;
my $ret = "state: ";
my @type_array = devspec2array("TYPE=$type");
foreach(@type_array) {
$ret = $ret.$_." ";
}
fhem("attr $DEVICE setList $ret");
}
Universeller, aber auch fehlerträchtiger, wird es, wenn du die 6.Zeile durch
my @type_array = devspec2array($type);
ersetzt:
{set_List("mein_dummy","group=meineGruppe")}
müsste dann funktionieren.
Gruß
Hans
evtl geht hans seine Lösung auch mit model=HM-LC-SW1-FM
statt TYPE. Zu mindest mir xmllist model=HM... bekommst du alle Geräte des Models gelistet.
Als Einzeiler:
{ fhem("set einschalten setlist state:".join(",",devspec2array("room=MyRoom"))) }
Statt room=MyRoom gehen diverse andere Konstrukte, siehe dazu http://fhem.de/commandref.html#devspec
Der Haken: diese Zeile muss bei jeder Aenderung der Liste neu ausgefuehrt werden. Man koennte zwar manche Faelle mit einem notify abfangen (define, delete und fhem.cfg modifikation), aber nicht Attributaenderungen.