attr einschalten setlist state: room oder group oder typ oder etwas in der art?

Begonnen von BeamterAD, 11 Februar 2014, 20:42:00

Vorheriges Thema - Nächstes Thema

BeamterAD

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!)

Hans Franz

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
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

chris1284

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.

rudolfkoenig

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.