Advertisement
Guest User

Untitled

a guest
Sep 19th, 2014
2,724
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.10 KB | None | 0 0
  1. #!/usr/local/bin/lua
  2.  
  3. print(4,33%0)
  4.  
  5. --[[
  6. %% properties
  7. 30 value
  8. 9 value
  9. %% globals
  10. --]]
  11. -- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
  12.  
  13. local scene = 1 -- ID dieser Szene
  14. local motion = 30 -- ID des Bewegungssensors
  15. local switch = 9 -- ID des Relay Switches
  16. -- Lösche doppelte Szene(n)
  17.  
  18. if (fibaro:countScenes()>1)
  19.   then
  20.     fibaro:abort();
  21. end
  22. -- SCHALTE LICHT EIN & AUS
  23. if (tonumber(fibaro:getValue(motion, "value"))) > 0
  24. and (tonumber(fibaro:getValue(switch, "value"))) < 1
  25. 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
  26.   then
  27.     fibaro:call(switch, "turnOn");
  28.     fibaro:debug("Schalte Licht ein");
  29. end
  30. -- Verzögerung in Sekunden nach der letzten erkannten Bewegung, bevor das Licht ausgeschaltet wird
  31. if (tonumber(fibaro:getValue(switch, "value"))) > 0
  32.   then  
  33.     local starttimer = 900;
  34.     local timer = (starttimer);
  35.     fibaro:debug("Starte Timer");
  36.     repeat
  37.       fibaro:sleep(1000);  
  38.       -- Schalte Licht aus, wenn Schalter manuell betätigt wird und warte 10 Sekunden, um ein
  39.       -- versehentliches (erneutes) Aktivieren der Szene zu verhindern
  40.       if (tonumber(fibaro:getValue(switch, "value"))) < 1
  41.         then
  42.           timer=1;
  43.           fibaro:call(switch, "turnOff");
  44.           fibaro:sleep(10000);
  45.           break
  46.       end
  47.       timer=timer-1;
  48.       -- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
  49.       if (tonumber(fibaro:getValue(motion, "value"))) > 0
  50.         then  
  51.           timer=starttimer;
  52.           fibaro:debug("Resete Time, Bewegung erkannt bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)");
  53.       end
  54.     until (timer<1)
  55.  
  56.   -- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
  57.   fibaro:call(switch, "turnOff");
  58.   fibaro:debug("Timer abgelaufen/Schalte Licht aus");
  59.   fibaro:killScenes(scene);
  60. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement