Forum użytkowników automatyki budynkowej
Z-wave => Fibaro - skrypty itp => Wątek zaczęty przez: K.opatrzyk w Marzec 02, 2017, 03:31:25 pm
-
Witam mam problem mianowicie chce zrobić scenę, jeśli motionsensor wykryje ruch to włącz światło na 15 min jeśli po 15 min mię będzie ruchu wyłącz i jeśli włączę światło z przycisku to żeby świeciło 30 min a później jeśli nie bd ruchu niech się zgasi. Czy jest coś takiego wygodę możliwe? Mam kod który włącza mi światło z włącznika i czujki ale tylko na określony czas i w obu przypadkach na ten sam czas, Co mam robić zmienić? Bardzo proszę o pomoc
Kod:--[[
%% properties
59 value
119 value
%% globals
--]]
fibaro:debug("SCENE START --------------------------")
fibaro:debug("sceneInstance: "..fibaro:countScenes())
if fibaro:countScenes() > 1 then
fibaro:debug("SCENE ABORT --------------------------")
fibaro:abort()
end
local sensorID = 59
local lightID = 119
local delay = 10
local sensorMoved = (tonumber(fibaro:getValue(sensorID, "value")) > 0);
local isLightOn = (tonumber(fibaro:getValue(lightID, "value")) > 0);
fibaro:debug("isLightOn: "..tostring(isLightOn));
fibaro:debug("sensorMoved: "..tostring(sensorMoved));
if sensorMoved
then
fibaro:call(119, "turnOn")
fibaro:debug("Action: turnOn")
if isLightOn then
local turnOffTime = os.time() + delay
while turnOffTime > os.time() do
if (tonumber(fibaro:getValue(sensorID, "value"))) > 0
then turnOffTime = os.time() + delay
end
fibaro:debug("zwłoka: "..tostring(turnOffTime - os.time()))
fibaro:sleep(5000)
end
fibaro:call(119, "turnOff")
fibaro:debug("Action: turnOff")
end
end
fibaro:debug("SCENE STOP")
-
nie analizowałem kodu, ale ja bym to zrobił tak (bez zabawy w czas lokalny):
stwórz zmienną globalną : czas_do_wygaśnięcia
uruchamiasz scenę i
jeśli trigger to czujka ruchu, wtedy czas_do_wygaśnięcia = 15
jeśli nie to zmniejsz czas_do_wygaśnięcia o 1
jeśli czas_do_wygaśnięcia > 0 włącz światło
w przeciwnym przypadku wyłącz światło
uśpij na minutę.
nie testowałem co się dzieje gdy włączasz włączone światło, ale raczej nie powinno być problemu.
najwygodniej byłoby to zrobić w dwóch scenach : jedna włącza światło na 15 min w zmiennej globalnej, a druga zmniejsza licznik co minutę i gasi gdy dojdzie do zera. byłoby wtedy wielowątkowo ;-)
-
mógłbyś podpowiedzieć jak zacząć ? bo dopiero zaczynam z Lua i jakoś mam dziure jak zacząć, wielkie dzięki
-
Po pierwsze jak zrobiłeś włączenie światła z przycisku, jeżeli używasz tego samego modułu to nie zrobisz tego.
Ja mam zrobione to w ten sposób że do jednego punktu świetlnego mam
1 x relay switch jako włącznik (przycik do włączania ręcznego) "P1"
1 x relay switch jako zapalanie światła "W1"
1 x motion sensor jako wyzwalacz automatyczny "M1"
zrobiłem to w ten sposób że P1 jest w asocjacji z W1 tak na wszelki wypadek jak by padła (zawiesiła się ) centralka
do tego działanie jest następujące
w momencie kiedy wejdziesz w czujkę odpalam światło czyli M1 -> W1 na 3 minuty, gdy w tym czasie ktoś wejdzie w czujkę nie zwiększam czasu uruchomienia czujki czas ten "resetuje" gdy zostaje 30 sekund( zwiększam znów czas do 3 minut).
gdy włączę z P1 -> W1 wtedy zależy gdzie ale ustawiam 6 godzin świecenia bez możliwości udziału motion sensora.
Oczywiście na noc mam inne czasy zapalania przez M1, ale przycisk działa w ten sam sposób zarówno w nocy jak i w dzień.
-
Po pierwsze jak zrobiłeś włączenie światła z przycisku, jeżeli używasz tego samego modułu to nie zrobisz tego.
Ja mam zrobione to w ten sposób że do jednego punktu świetlnego mam
1 x relay switch jako włącznik (przycik do włączania ręcznego) "P1"
1 x relay switch jako zapalanie światła "W1"
1 x motion sensor jako wyzwalacz automatyczny "M1"
zrobiłem to w ten sposób że P1 jest w asocjacji z W1 tak na wszelki wypadek jak by padła (zawiesiła się ) centralka
do tego działanie jest następujące
w momencie kiedy wejdziesz w czujkę odpalam światło czyli M1 -> W1 na 3 minuty, gdy w tym czasie ktoś wejdzie w czujkę nie zwiększam czasu uruchomienia czujki czas ten "resetuje" gdy zostaje 30 sekund( zwiększam znów czas do 3 minut).
gdy włączę z P1 -> W1 wtedy zależy gdzie ale ustawiam 6 godzin świecenia bez możliwości udziału motion sensora.
Oczywiście na noc mam inne czasy zapalania przez M1, ale przycisk działa w ten sam sposób zarówno w nocy jak i w dzień.
Można pobrać informacje na jednym module, który steruje światłem informacje czy z przycisku włączyliśmy czy na ruch. Kwestia napisania sceny w LUA (są triki na to).
-
[/quote]
Można pobrać informacje na jednym module, który steruje światłem informacje czy z przycisku włączyliśmy czy na ruch. Kwestia napisania sceny w LUA (są triki na to).
[/quote]
A dałoby sie jakis taki skrypt podeslac?
-
:) da sie jakiś skrypcik?
-
Gotowych jest wiele skryptów tutaj i na forum fibaro. Tutaj można poczytać pouczyć się itd.
Jak się chce gotowca to można to komuś zlecić.
-
dzieki za odpowiedz,
Sledze to Forum (specjalnie z duzej, bo na prawde da sie duzo z niego nauczyc), ale nie trafiłem nigdzie (z gory zaznaczam, ze nie mowie ze nie ma) na informację jak dowiedzieć sie czy przełacznik został załączony przez scene lub przez wyłacznik.
W moich scenach mam prosty problem - chce skasować odliczanie czau do wyłaczenia oswietlenia jak ktoś przełaczy wyłacznik (niezależnie od tego jak było właczone oświetlenie) i do tego potrzebna jest mi informacja czy przelacznik był przełaczony.
Oczywiście moge zlecić zrobienie sceny (czy nawet kupic gotowca) - ale chaciłem sie czegoś nauczyć i dlatego liczyłem na jakąś podpowiedź ludzi którzy już wiedzą jak to zrobić.
Pozdrawiam
Piotr Br
-
dzieki za odpowiedz,
Sledze to Forum (specjalnie z duzej, bo na prawde da sie duzo z niego nauczyc), ale nie trafiłem nigdzie (z gory zaznaczam, ze nie mowie ze nie ma) na informację jak dowiedzieć sie czy przełacznik został załączony przez scene lub przez wyłacznik.
W moich scenach mam prosty problem - chce skasować odliczanie czau do wyłaczenia oswietlenia jak ktoś przełaczy wyłacznik (niezależnie od tego jak było właczone oświetlenie) i do tego potrzebna jest mi informacja czy przelacznik był przełaczony.
Oczywiście moge zlecić zrobienie sceny (czy nawet kupic gotowca) - ale chaciłem sie czegoś nauczyć i dlatego liczyłem na jakąś podpowiedź ludzi którzy już wiedzą jak to zrobić.
Pozdrawiam
Piotr Br
Witam, znalazles jak mozna sie dowiedziec czy przycisk byl aktywowany manualnie?
-
Niestety nie :(
-
Jeśli przełącznik jest w z-wave to informacja pojawia się w panelu zdarzeń, tak samo scena. Można dodać powiadomienie do każdego z nich na tel lub e-mail i będzie wiadomo co załączyło światło.