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?
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.
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.
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…
-- 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
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.
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.