Morgen,
naja bei mir laufen auch viele mit gleichen Variablen aber bei den Beiden Szene ist besonders das diese parallel laufen. Angetriggert werden Sie jeweils durch eine Blockszene. “Wenn Bewegung erkannt dann laufe los”. Hier die zwei Szenen:
--[[
%% properties
%% events
%% globals
--]]
--Ein Script welches das Wickellicht anschaltet und in einer Schleife auf
--Bewegung wartet und wenn nicht nach ca. 1 Minute ausschaltet
--
-- Lösche doppelte Szene(n)
if (fibaro:countScenes()>1) then
fibaro:abort();
fibaro:debug("Szene abgebrochen zu viele Szenen")
end
--
local led = 164 -- ID LED-Band
local xbcounter = 1
--
--
function LICHTSPEICHERN()
fibaro:debug("Lichteinstellungen speichern")
--Steuervariablen setzen
fibaro:setGlobal("g_kz_farbe", fibaro:getValue(led, "ui.hue.value"))
fibaro:setGlobal("g_kz_helligkeit", fibaro:getValue(led, "ui.brightness.value"))
fibaro:setGlobal("g_kz_saettigung", fibaro:getValue(led, "ui.saturation.value"))
fibaro:setGlobal("g_kz_licht", 0)
end
--
--
--Lichtfarbe, Sättigung sowie Helligkeit steuern
fibaro:call(led, "changeSaturation", 130)
fibaro:call(led, "changeBrightness", 127)
fibaro:call(led, "changeHue", 65535)
fibaro:call(led, "turnOn")
fibaro:setGlobal("g_kz_licht", 1)
--
--schleife durchlaufen .. wenn wieder bewegung registriert wird wert auf 1
--zurück gesetzt
while xbcounter <= 60 do
fibaro:debug(xbcounter ..' Sekunden')
fibaro:sleep(1000)
xbcounter = xbcounter + 1
--Bewegungsmelder prüfen wenn in der Schleife eine Bewegung auftritt wieder bei 1 anfangen
if ((tonumber(fibaro:getValue(22, "value")) > 0) or (tonumber(fibaro:getValue(179, "value")) > 0)) then
fibaro:debug("Bewegung, Counter wird zurückgesetzt")
xbcounter = 1
else
fibaro:debug("Keine Bewegung")
end
end
--Am ende der While wieder ausschalten und Lichtvariablen schreiben
fibaro:call(led, "turnOff")
LICHTSPEICHERN()
--
und hier die Andere:
--[[
%% properties
%% events
%% globals
--]]
--Ein Script welches das Badlicht anschaltet und in einer Schleife auf
--Bewegung wartet und wenn nicht nach ca. 1 Minute ausschaltet
--
-- Lösche doppelte Szene(n)
if (fibaro:countScenes()>1) then
fibaro:abort();
fibaro:debug("Szene abgebrochen zu viele Szenen")
end
--
local led = 211 -- ID LED-Band
local xbcounter = 1
--
--
function LICHTSPEICHERN()
fibaro:debug("Lichteinstellungen speichern")
--Steuervariablen setzen
fibaro:setGlobal("g_bz_farbe", fibaro:getValue(lbed, "ui.hue.value"))
fibaro:setGlobal("g_bz_helligkeit", fibaro:getValue(lbed, "ui.brightness.value"))
fibaro:setGlobal("g_bz_saettigung", fibaro:getValue(lbed, "ui.saturation.value"))
fibaro:setGlobal("g_bz_licht", 0)
end
--
--
--Lichtfarbe, Sättigung sowie Helligkeit steuern
fibaro:call(led, "changeSaturation", 180)
fibaro:call(led, "changeBrightness", 200)
fibaro:call(led, "changeHue", 43779)
fibaro:setGlobal("g_bz_licht", 1)
fibaro:call(led, "turnOn")
--
--schleife durchlaufen .. wenn wieder bewegung registriert wird wert auf 1
--zurückgesetzt
while xbcounter <= 60 do
fibaro:debug(xbcounter ..' Sekunden')
fibaro:sleep(1000)
xbcounter = xbcounter + 1
--Bewegungsmelder prüfen wenn in der Schleife eine Bewegung auftritt wieder bei 1 anfangen
if ((tonumber(fibaro:getValue(213, "value")) > 0) or (tonumber(fibaro:getValue(219, "value")) > 0)) then
fibaro:debug("Bewegung, Counter wird zurückgesetzt")
xbcounter = 1
else
fibaro:debug("Keine Bewegung")
end
end
--Am ende der While wieder ausschalten und Lichtvariablen schreiben
fibaro:call(led, "turnOff")
LICHTSPEICHERN()
--
Ich habe in der zweiten Szene nun die Variable “led” durch “bled” und die Variable “xbcounter” durch “xbbcounter” ersetzt. Seitdem läuft es reibungslos.
Viele Grüße und einen schönen Tag
Toni