Modulgruppen mit einem Befehl steuern

Hi,

gibt es eine Möglichkeit alle Module (also z.B. Lampen oder Räume) mit einem Befehl zu schalten?

Bei den Modulen gibt es unter “Erweitert” die Angabe “Modul steuert…” (z.B. Licht). So könnte man nur die Steckdosen / Schalter steuern, die wirklich Licht schalten.
Oder mit einem Befehl das ges. Licht im Haus ein und aus schalten, anstatt endlose Listen mit den einzelnen Modulen zu erstellen (die man ja auch immer pflegen muss…). Also statt 10x fibaro:call(458, “turnOn”) (oder mit array) sowas wie fibaro:call(Gartenlicht, “turnOn”)…
Leider finde ich dazu nichts, aber das müsste doch in vielen Situationen helfen?

LG TT

Hi,

nein, so einen Befehl gibt es nicht. Du kannst aber die Module gruppieren, beziehungsweise assoziieren. Dann verhalten sich die Module immer gleich, wenn du also einen ausschaltest, dann schalten sich die anderen auch aus. Alternativ bleibt nur ein Array.

Gruß

Hallo TT,

scripten könnte man sowas schon. Du könntest in einen Raum z.B nach DeviceTypen wie z.B den WallPlug (com.fibaro.FGWP101) suchen
und diese dann schalten. Daniel hat sowas bestimmt schnell zusammen geklöppelt.

mit


fibaro:getType(ID des Gerätes)

findest Du den DeviceTypen heraus

Gruß
ChrisBeat

Hi,

das ginge natürlich :slight_smile: aber das läuft wie beschrieben, wieder auf ein Array hinaus…

Gruß

Hi,

vielen Dank für Eure Antworten! Wenn ich die Module gruppiere, kann ich sie ja leider immer nur gemeinsam schalten.
Meine Hoffnung war, dass ich Tags wie deviceControlType oder isLight abfragen kann und daraus entweder raumbezogen oder im ganzen Haus (z.B. beim Verlassen über PresentState) alle Lichter ausschalten kann.
Das Doofe bei den Arrays ist ja, dass man doch öfter mal ein Modul neu inkludieren muss, dann muss man wieder alle Szenen anfassen und gucken, was man updaten muss. Bei inzwischen ziemlich vielen Modulen verhühnere ich mich da öfter mal und dann passieren die komischsten Dinge…

LG TT

Hallo,

habe heute im forum.fibaro.com von User seiq

folgenden Code entdeckt:

-- get light id's
local ids = fibaro:getDevicesId(
  {
    interfaces = {
      "light",
    },
    properties = {
      dead = false,  
    },
    enabled = true,
    visible = true, -- optional
  }
);
    
-- loop through light ids
for i, id in ipairs(ids) do
    fibaro:debug("Turning off " .. fibaro:getName(id));
    -- turn light off
    fibaro:call(id, "turnOff");
end

Vielleicht hilft es ja wem!

Hi chrisbeat,

super, vielen Dank für den Code!
Scheint ja genau die Funktion zu sein, die ich suche.
Hast Du eventuell noch den Link zu dem Thread?

Werde das ausprobieren und dann Rückmeldung geben!

LG TT

Eine weitere Möglichkeit ist es alle Aktoren und Sensoren in Variablen abzulegen und in Laufzeit in den Scripts abzuarbeiten.
Habe dies mit dem z.B. Alarm Skript so gemacht.
Tür und Fenstersensoren sind dort gespeichert, sowie alle Lampen welche ausgeschalten werden müssen.
Bei jeder Änderung der verbauten Sensoren werden nur die Variablen geändert.
Skripte muss man nur ändern wenn man Änderungen an den Triggern durchführen muss.

PredinedVariable: LichtArmedDayOff = 210,350,337,339,341,177,163,237

for match in string.gmatch(fibaro:getGlobal('LichtArmedDayOff'), '[^,]+') do
     fibaro:call(tonumber(match), "turnOff")
end

lg,

Markus

Hier der Link zu All Lights off
https://forum.fibaro.com/index.php?/topic/21758-all-off-lighting-scene-example/#comment-92806

Und zur Speicher der IDs an einer Stelle:
https://forum.fibaro.com/index.php?/topic/23942-tutorial-using-a-hometable-to-store-device-and-scene-ids/

Viele Grüße Hoggle

Hoogle,

Danke für den Link.
Habe alle meine Variablen direkt angelegt und dann Die Speichertaste rechts gedrückt.
Konnte bis jetzt keine Problem mit korrupten Variablen feststellen.
Schaden kanns sicher nicht über ein Skript zu gehen.

lg,

Markus