Forum użytkowników automatyki budynkowej

Z-wave => Fibaro - sceny => Wątek zaczęty przez: tom3sko w Kwiecień 18, 2015, 08:37:32 pm

Tytuł: Sprawdzenie kodu LUA
Wiadomość wysłana 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
Tytuł: Odp: Sprawdzenie kodu LUA
Wiadomość wysłana przez: damian w Kwiecień 18, 2015, 11:06:13 pm
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
Tytuł: Odp: Sprawdzenie kodu LUA
Wiadomość wysłana przez: tom3sko w Kwiecień 19, 2015, 09:53:49 am
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
Tytuł: Odp: Sprawdzenie kodu LUA
Wiadomość wysłana przez: tom3sko w Kwiecień 19, 2015, 10:11:05 am
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?
Tytuł: Odp: Sprawdzenie kodu LUA
Wiadomość wysłana przez: Jacek w Kwiecień 19, 2015, 12:52:01 pm
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

Tytuł: Odp: Sprawdzenie kodu LUA
Wiadomość wysłana przez: damian w Kwiecień 19, 2015, 01:51:35 pm
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.
Tytuł: Odp: Sprawdzenie kodu LUA
Wiadomość wysłana przez: tom3sko w Kwiecień 19, 2015, 05:20:12 pm
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 ;(