LUA Szene mit wiederholung für Licht an aus (suche)

Hallo an alle!

Ich würde gerne eine LUA Szene anlegen, die die Lichter/Relais die ich möchte im 3 oder 5sek. Takt für eine gewisse Zeit an und ausschaltet wenn sie angesteuert wird.

z.Zt. hab ich es so gelöst:

fibaro:call(157, "turnOn");
setTimeout(function()
	fibaro:call(157, "turnOff");
end, 5000)
setTimeout(function()
	fibaro:call(157, "turnOn");
end, 10000)
setTimeout(function()
	fibaro:call(157, "turnOff");
end, 15000)

usw…

Da gibt es doch bestimmt eine schönere Lösung oder? Hab auch probiert ein “repeat” oder “for” einzubauen aber da fehlet mir leider das wissen und deswegen läuft das nicht.

Über Hilfe würd ich mich freuen.

Danke und Gruß

Da kannst du eine Schleife bauen.
Das klingt als wenn du das suchst, was ich hier mal beschrieben habe: Alarm - Leuchten blinken solange Alarm

Danke für den Tipp. Die Szene hatte ich auch schon gefunden aber hat mir leider nicht weiter geholfen.
Du arbeitest mit “while” aber ich habe kein Gerät was den Zustand als Auslöser ändert. Es soll die Schleife einfach so lange ich will (Zeitangabe oder Anzahl) einfach wiederholt werden.

dann definiere eine Variable, setze diese auf 0 und in der Schleife zählst du diese Variable hoch.
Und sagst: solange die Variable kleiner 10 ist - wobei du den Wert 10 dann beliebig verändern kannst.

Hab es nach einigen Versuchen und viel lesen jetzt so lösen können.

local Wartezeit = 3000 --Zeit in ms der Variablen "Wartezeit"
local Schleife = 1 --Wert der Variablen "Schleife"
repeat
   print("value of Schleife:", Schleife) --Schleifenzähler Ausdruck
   Schleife = Schleife + 1 --Werterhöhung der Variablen "Schleife"
    fibaro:call(99, "turnOn"); --Modul AN
    fibaro:call(157, "turnOn"); --Modul AN
  fibaro:sleep(Wartezeit) --Wartezeit bis die Szene weiter läuft
    fibaro:call(99, "turnOff"); --Modul AUS
    fibaro:call(157, "turnOff"); --Modul AUS
  fibaro:sleep(Wartezeit) --Wartezeit bis die Szene weiter läuft
until( Schleife > 30 ) --Anzahl Wiederholungen

Schleife zählt von 1-30 hoch und in der Zeit werden die Aufgelisteten Module im 3000ms Takt an und ausgeschaltet.
Wenn es jetzt noch eine Möglichkeit gibt die ID´s der gewünschten Module zu bündeln wäre es schöner aber da bin ich (zumindest bis jetzt) nicht fündig geworden.

Gruß GR3

1 „Gefällt mir“

Moin,

Vielleicht meinst du sowas wie ein array?
Das würde man so definieren
arrayDevices = {71,44,108}

und würde mehrere Geräte unter einem Namen zusammenfassen.
Beste Grüße

Hab es schon probiert, aber leider bekomme ich immer ein Fehler mit "attemt to concatenate local ´deviceID´(a nil value). Die diversen Anleitungen zu array´s im I-Net haben mich leider auch nicht weitergebracht :frowning:.
Kann mir vielleicht einer noch ein Tipp geben, wie und wo ich dieses array in den Ablauf einfügen muss damit es funktioniert?

Es ist zwar nicht Lebenswichtig, da die Szene auch so funktioniert aber ich würde es gerne begreifen damit es übersichtlicher wird und ich es auch in anderen Szenen verwenden kann.

Danke & Gruß