FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Init am 10 Mai 2013, 23:21:10

Titel: perl Group/Structure iteration
Beitrag von: Init am 10 Mai 2013, 23:21:10
Hallo zusammen,

würde gerne in meiner Perl-Routine über Gruppen und Strukturen iterieren.

Kann mir jemand auf die Sprünge helfen?

VG
Marc
Titel: Aw: perl Group/Structure iteration
Beitrag von: Init am 11 Mai 2013, 13:56:24
Hallo,

also via LIST und einer "regular Expression" komme ich ja auch an die benötigten Informationen, aber ich würde gerne die Möglichkeit von Gruppen nutzen und hier über die Geräte einer Gruppe iterieren.

So sieht mein Code bislang aus:
myTestPerl($) {
   # Parameter: Modus
   my $functionMode = shift;

   my @lines = split("\n", fhem "list  OG1.*.jalousie.*");

   foreach my $line (@lines) {
          Log 1, "Current line: $line";
       }
   }

Hatte gehofft, dass ich an die Liste der Geräte zu einer Gruppe folgendermaßen kommen: list TYPE=groupJalousieOG

Aber da bekomme ich keine Rückgabe.

Vielleicht hat noch jemand einen Tipp für mich.

Viele Grüße
Marc
Titel: Aw: perl Group/Structure iteration
Beitrag von: rudolfkoenig am 11 Mai 2013, 14:24:50
structure setzt ein Attribut auf alle beteiligten Elemente, diese kann man also auch mit
list attr=structname auflisten. Beispiel:
define kitchen structure room lamp1 lamp2
list room=kitchen
Dem http://fhem.de/commandref.html#devspec (//fhem.de/commandref.html#devspec) entsprechende interne Funktion ist devspec2array, man muesste also
foreach my $strEl (devspec2array("room=kitchen")) {
  Log 1, "Struct element is $strEl";
}
verwenden koennen. Alles ungetestet, also bitte mit Bedacht einsetzen.
Titel: Aw: perl Group/Structure iteration
Beitrag von: Init am 11 Mai 2013, 14:32:15
Vielen Dank, dass funktioniert super!!!
Gruß
Marc