Forum użytkowników automatyki budynkowej
Z-wave => Fibaro - sceny => Wątek zaczęty przez: tom3sko w Kwiecień 18, 2015, 08:37:32 pm
-
Witajcie, chciałem sobie zrobić scene która będzie mi sprawdzać stan okien, a mianowicie czy są zamknięte wszystkie okna czy tez wszystkie okna są otwarte i tutaj mam kłopot, bo przy zastosowaniu kodu znajdującego się poniżej oba warunki zostają spełnione. Jak to zrobić inaczej ?
if (
( tonumber(fibaro:getValue(534, "value")) > 0 and tonumber(fibaro:getValue(194, "value")) > 0 and tonumber(fibaro:getValue(198, "value")) > 0 )
or
startSource["type"] == "other"
)
then
fibaro:call(583, "pressButton", "13");
end
if (
( tonumber(fibaro:getValue(534, "value")) == 0 and tonumber(fibaro:getValue(194, "value")) == 0 and tonumber(fibaro:getValue(198, "value")) == 0 )
or
startSource["type"] == "other"
)
then
fibaro:call(12, "turnOn");
end
-
Wklej całą scenę. Jak ją wyzwalasz? Jeśli uruchomisz ją ręcznie to faktycznie oba warunki spełnione.
Wysłane z iPhone za pomocą Tapatalk
-
urzadzenie wirtualne ma za zadanie odpalic ta scene a reszte ma zrobic scena
--[[
%% properties
value 534
value 194
value 198
%% globals
--]]
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(534, "value")) > 0 and tonumber(fibaro:getValue(194, "value")) > 0 and tonumber(fibaro:getValue(198, "value")) > 0 )
or
startSource["type"] == "other"
)
then
fibaro:call(583, "pressButton", "13");
end
if (
( tonumber(fibaro:getValue(534, "value")) == 0 and tonumber(fibaro:getValue(194, "value")) == 0 and tonumber(fibaro:getValue(198, "value")) == 0 )
or
startSource["type"] == "other"
)
then
fibaro:call(12, "turnOn");
end
-
W ogóle to przymierzałem się do napisania sceny sprawdzającej które okno w domu jest otwarte i przed opuszczeniem domu scena miala mnie o tym powiadomic, ale przy dzisiejszych testach zauważyłem ze warunki w ogole nie dzialaja, jest spelniony zawsze warunek ze wszystkie czujniki sa nie naruszone bądź wszystkie są naruszone mimo to że jedno okno jest otwarte. Teraz już wiem że bez zmiennych się nie obejdzie. Czy mógłby mi ktoś podpowiedzieć jak umieścić w skrypcie kod który zmieniał by wartość zmiennej po otwarciu bądź zamknięciu okna?
-
W ogóle to przymierzałem się do napisania sceny sprawdzającej które okno w domu jest otwarte i przed ......
--[[
%% properties
%% globals
--]]
local okonA = ( tonumber(fibaro:getValue(534, "value"));
local okonB = ( tonumber(fibaro:getValue(194, "value"));
local oknoC = ( tonumber(fibaro:getValue(198, "value"));
if okonA+oknoB+oknoC > 0 then
fibaro:debug("okna lub okno otwarte !");
end
-
Jeśli urządzenie wirtualne wyzwala tą scenę, to ZAWSZE spełniony jest warunek "startSource["type"] == other", więc wartości value okien nie mają żadnego znaczenia. Wywal warunki startsource.
-
Dzieki za pomoc oczywiscie kod dziala, ale co z tego jak sie okazalo ze moje czujniki na oknach sa na ozdobę i w ogóle nie reagują na otwarcie. Już mam dosyc tego systemu, miarka się przebiera !!!
co najlepsze przy wyborze miękkiej rekonfiguracji urządzenia zawiesza się centralka ;(