Hallo, ich habe ziemlich viele Funk-Steckdosen.
Die verwende ich immer wieder für unterschiedliche Aufgaben.
Ich würde gerne jeder Steckdose ein userattr zuweisen.
Zum Beispiel userattr Licht und dann per notify alle Steckdosen schalten, die dieses Attribut haben.
Meine Frau wechselt gerne mal die Beleuchtung und ich möchte gerne die Beleuchtungsszenarien ändern. Da wäre es einfacher nur schnell das Attribut zu setzen als jedes mal eine structure.
Wie kann ich am einfachsten alle Devices bekommen mit einem bestimmten userattr?
Wäre da für einen Hinweis, auch gerne nur auf die Commandref, dankbar.
Das geht mit Perl und devspec2array.
Nehmen wir an Du setzt ein userattr "automation" auf "Licht".
my @devices = devspec2array("automation=Licht")
Jetzt hättest Du in @devices ein Array mit allen Devices bei denen "automation" auf "Licht" gesetzt ist.
Über ein weiteres foreach könntest Du alle Device Namen herausholen und als Liste ausgeben.
my @names;
foreach my $dev (@devices)
{
push @names,$dev->{NAME};
}
my $lichterliste = join(",",@names);
Nun hast Du eine kommaseparierte Liste der Devicenamen in $lichterliste.
Gruß
Dan
schau dir in der commandref bei devspec den FILTER an.
set .*:FILTER=automation=Licht ...
gruss
andre
Hey klasse, die Variante mit dem Filter ist es geworden.
Vielen Dank für den Hinweis !!!