Notify für devices mit userattr

Begonnen von HansDampfHH, 11 Februar 2017, 10:51:30

Vorheriges Thema - Nächstes Thema

HansDampfHH

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.
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

justme1968

schau dir in der commandref bei devspec den FILTER an.

set .*:FILTER=automation=Licht ...

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

HansDampfHH

Hey klasse, die Variante mit dem Filter ist es geworden.
Vielen  Dank für den Hinweis !!!
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink