ich habe mir die Beiträge von crissxcross angeschaut.
Sehr gut.
Die perfekte Lichtsteuerung habe ich übernommen.
Nun meine Frage:
Wenn ich bei Zeile 61 den Wert für meinen Schalter ( der das Licht steuert) eingebe - erhalte ich die Meldung " no lighst set for evening.
lightsEvening = {id=185, setValue=„30“, onTime=30};
Wenn ich die Zeile 61 modifiziere
lightsEvening = {{id=471, setValue=„60“, onTime=60},{id=491, setValue=„60“, onTime=60},{id=117, setValue=„turnOn“, onTime=60}};
So, da ich leider keine Antwort erhalten habe nun hier meine zusammen gestellte Scene.
Was mein Ihr dazu?
Was kann man besser machen?
cu
karlk
–[[
%% properties
50 value
52 value
117 value
124 value
%% globals
–]]
– VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 13 – ID dieser Szene
local motion = 50 – ID des Bewegungssensors
local lux = 52 – ID des Lichtsensors
local door = 124 – ID des Türsensors
local switch = 117 – ID des Relay Switches
debug = function ( color, message )
fibaro:debug(string.format(’<%s style=„color:%s;“>%s’, „span“, color, message, „span“))
end
– Lösche doppelte Szene(n)
if (fibaro:countScenes()>1) then
debug(‚salmon‘,„lösche doppelte Scene!“)
fibaro:abort();
end
– SCHALTE LICHT EIN & AUS
if ((tonumber(fibaro:getValue(motion, „value“)) > 0 ) or (tonumber(fibaro:getValue(door, „value“)) > 0 ))
and (tonumber(fibaro:getValue(switch, „value“)) < 1 )
and (tonumber(fibaro:getValue(lux, „value“)) <= 10 )
then fibaro:call(switch, „turnOn“);
debug(‚steelblue‘,„Schalte Licht ein“);
end
– Verzögerung in Sekunden nach der letzten erkannten Bewegung, bevor das Licht ausgeschaltet wird
if (tonumber(fibaro:getValue(switch, „value“))) > 0 then
local starttimer = 180;
local timer = (starttimer);
debug(‚gold‘,„Starte Timer“);
repeat
fibaro:sleep(1000);
– Schalte Licht aus, wenn Schalter manuell betätigt wird und warte 10 Sekunden, um ein
– versehentliches (erneutes) Aktivieren der Szene zu verhindern
if (tonumber(fibaro:getValue(switch, „value“))) < 1 then
timer=1;
fibaro:call(switch, „turnOff“);
debug(‚red‘,„Licht manuell ausgeschaltet“);
fibaro:sleep(10000);
break
end
timer=timer-1;
– Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)
if (tonumber(fibaro:getValue(motion, „value“))) > 0 then
timer=starttimer;
fibaro:debug(„Resete Time, Bewegung erkannt“);
end
until (timer<1)
– Schalte Licht aus, wenn Timer vollständig abgelaufen ist
fibaro:call(switch, „turnOff“);
debug(‚red‘,„Timer abgelaufen/Schalte Licht aus“);
fibaro:killScenes(scene);
end