Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/bin/lua
- --[[
- %% properties
- 30 value
- 9 value
- %% globals
- --]]
- -- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
- local scene = 1 -- ID dieser Szene
- local motion = 30 -- ID des Bewegungssensors
- local switch = 9 -- ID des Relay Switches
- -- Lösche doppelte Szene(n)
- if (fibaro:countScenes()>1)
- then
- fibaro:abort();
- end
- -- SCHALTE LICHT EIN & AUS
- if (tonumber(fibaro:getValue(motion, "value"))) > 0
- and (tonumber(fibaro:getValue(switch, "value"))) < 1
- and ((tonumber(os.date("%H%M"))) >= (tonumber(string.format("%02d%02d", "19", "30"))) or (tonumber(os.date("%H%M"))) <= (tonumber(string.format("%02d%02d", "07", "00")))) --wenn die zeit größer als 1930 oder kleiner als 0700 ist. also zwischen 19.30 und 7.00 Uhr geht das licht an
- then
- fibaro:call(switch, "turnOn");
- fibaro:debug("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 = 900;
- local timer = (starttimer);
- fibaro:debug("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");
- fibaro:sleep(10000);
- break
- end
- timer=timer-1;
- -- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
- if (tonumber(fibaro:getValue(motion, "value"))) > 0
- then
- timer=starttimer;
- fibaro:debug("Resete Time, Bewegung erkannt bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)");
- end
- until (timer<1)
- -- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
- fibaro:call(switch, "turnOff");
- fibaro:debug("Timer abgelaufen/Schalte Licht aus");
- fibaro:killScenes(scene);
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement