Geräteliste in PERL-Funktion

Begonnen von gromeck, 20 Juli 2016, 22:16:20

Vorheriges Thema - Nächstes Thema

gromeck

Hallo,

ich versuche pro Raum den jweiligen Status der darin enthaltenen Fenster in einen Wert zu aggregieren.
Die Fenster und Türen sind vom Muster (EG|OG).<Raumname>.(Fenster|Tuer|Haustuer).
Alle Fenster haben HM-RHS-Sensoren, sind in FHEM bekannt und das entsprechende notify spring an:

define Notify.Status.Fenster notify [^\.]*\.[^\.]*\.(Fenster|Tuer|Haustuer).*:(open|closed|tilted) {
    Log 1,"Notify.Status.Fenster: Name=".$NAME."  EVENT=".$EVENT;
    my ($area,$room,$device) = split /\./, $NAME;
    Log 1,"Notify.Status.Fenster: area=".$area."  room=".$room."  device=".$device;
    :
}


Wie komme ich denn nun in Perl an die Liste der Geräte pro Raum?
Gibt es einen Call wie etwa: getDevices("EG.Buero.(Fenster|Tuer).*")

Eine seperate Implementierung pro Raum würde ich gerne vermeiden.

Ich habe in der Doku nix gefunden.

Any hints? Danke.

gromeck

CoolTux


my $device = join( ",",devspec2array("room=Schlafzimmer") );
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

gromeck

Danke.
Gibt es eine Doku in der solche Calls drin stehen? In der CommanRef steht nix.

justme1968

zum beispiel im wiki: http://www.fhemwiki.de/wiki/DevelopmentModuleAPI#devspec2array.

gruss
  andre

ps: schau dir mal structure an. damit kann man auch aggregieren.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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