FHEM Forum

FHEM => Automatisierung => Thema gestartet von: BeamterAD am 11 Februar 2014, 20:42:00

Titel: attr einschalten setlist state: room oder group oder typ oder etwas in der art?
Beitrag von: BeamterAD am 11 Februar 2014, 20:42:00
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!)
Titel: Antw:attr einschalten setlist state: room oder group oder typ oder etwas in der art?
Beitrag von: Hans Franz am 12 Februar 2014, 01:26:10
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
Titel: Antw:attr einschalten setlist state: room oder group oder typ oder etwas in der art?
Beitrag von: chris1284 am 12 Februar 2014, 06:35:01
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.
Titel: Antw:attr einschalten setlist state: room oder group oder typ oder etwas in der art?
Beitrag von: rudolfkoenig am 12 Februar 2014, 07:49:37
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.