Forum użytkowników automatyki budynkowej
Z-wave => Fibaro - urządzenia => Wątek zaczęty przez: v41n w Wrzesień 27, 2016, 06:42:39 pm
-
Cześć,
Czy ktoś się już tym bawił i wie jak używać parametru 28 lub 29 - aktywacja scen?
https://www.dropbox.com/s/2zpw6yn15tzx3d8/double%20switch.png?dl=0
Z góry dzięki.
-
Odpowiedź z supportu fibaro. Jak by ktoś potrzebował:
Modułu Singe/Doble Switch posiadają nową funkcję CentralScene Event. Niestety na chwilę obecną funkcję tą dla Switch’y można wykorzystywać w kodzie LUA (nie ma możliwości za pomocą bloczków).
Tak więc tworząc scenkę w LUA w pierwszej kolejności podajemy trigger w “%% events”
%% events
xxx CentralSceneEven
gdzie:
xxx – to ID urządzenia (ale ID urządzenie z node.0)
Kolejną rzeczą jest podanie poniższej komendy, aby pobierać zmienne:
local startSource = fibaro:getSourceTrigger();
W tym momencie mamy do pobrania zwie wartości:
local keyId = startSource[“event”][“data”][“keyId”]; - pobieranie key ID, które ma wartość 1 lub 2. Mówi to który klawisz S1 (wartość 1) czy S2 (wartość 2) został kliknięty niezależenie ile razy,
local keyAttribute = startSource[“event”][“data”][“keyAttribute”]; - pobieranie keyAttribute, które mają wartość string’a (nazwy) informującej ile razy został kliknięty klawisz (niezależnie czy to był S1 czy S2).
Tym samym jeżeli chcemy uruchomić coś po 1 kliknięciu klawisza S1 to podajemy:
if (keyId == 1 and keyAttribute == “Pressed1”)
then
….
end
-
Próbował już ktoś tego rozwiązania? Bo mi to coś nie działa.
Piotrek
-
Już sobie poradziłem.
-
To wklej scenę będzie dla potomnych :)
-
Nie chodzi o samą scenę bo z tym nie było problemu tylko o to, że nie działał triger.
W informacji z działu pomocy Fibaro była informacja, że ma to być ID urządzenia z node 0.
Moje urządzenie ma ID 1334 - a ID 1334.0 ma ID 1335(!) a widać to dopiero w lewym dolnym rogu po ustawieniu kursora na bloczku z numerem 1334.0
Może to jest jasne dla innych ale dla mnie nie było takie oczywiste.
W załączniku screen parametrów urządzenia.
Prosta scena, która sprawdza jaki klawisz został naciśnięty i ile razy:
--[[
%% properties
%% events
1335 CentralSceneEvent
%% globals
--]]
local startSource = fibaro:getSourceTrigger();
local keyId = startSource["event"]["data"]["keyId"];
local keyAttribute = startSource["event"]["data"]["keyAttribute"];
print(keyId)
print(keyAttribute)
-
Hej, czy ktoś ma jakąś działającą scenę, bo coś mi nie wychodzi :)
-
Cześć,
--[[
%% properties
%% events
1335 CentralSceneEvent
%% globals
--]]
fibaro:debug("START");
local startSource = fibaro:getSourceTrigger();
local keyId = startSource["event"]["data"]["keyId"];
local keyAttribute = startSource["event"]["data"]["keyAttribute"];
print(keyId)
print(keyAttribute)
-
No to mi ładnie działa tylko jak to zastosować do konkretnego polecenia, bo ja zielony.
-
No ale co chcesz zrobić?
Wysłane z mojego SM-G928F przy użyciu Tapatalka
-
No na przykład przy dwukrotnym przyciśnięciu żeby włączył lampę?
-
--[[
%% properties
%% events
1335 CentralSceneEvent
%% globals
--]]
local startSource = fibaro:getSourceTrigger();
local keyId = startSource["event"]["data"]["keyId"]
local keyAttribute = startSource["event"]["data"]["keyAttribute"];
if tonumber(keyId) == 1 and tostring(keyAttribute) == "Pressed" then
--tu coś co chcesz zrobić
elseif tonumber(keyId) == 1 and tostring(keyAttribute) == "Pressed2" then
--tu coś co chcesz zrobić
elseif tonumber(keyId) == 1 and tostring(keyAttribute) == "Pressed3" then
--tu coś co chcesz zrobić
end
Pisałem z pamięci i nie sprawdzałem kodu.
-
Ok działa tylko widzę, że długa droga przede mną :)
-
--[[
%% properties
%% events
152 CentralSceneEvent
%% globals
--]]
local startSource = fibaro:getSourceTrigger();
local keyId = startSource["event"]["data"]["keyId"]
local keyAttribute = startSource["event"]["data"]["keyAttribute"];
if tonumber(keyId) == 1 and tostring(keyAttribute) == "Pressed" then
elseif tonumber(keyId) == 1 and tostring(keyAttribute) == "Pressed2" then
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(158, "value")) > 0 )
or
startSource["type"] == "other"
)
then
local deviceValue1 = tonumber(fibaro:getValue(155, "value"));
if (deviceValue1 > 0) then
fibaro:call(155, "turnOff");
else
fibaro:call(155, "turnOn");
end
end
elseif tonumber(keyId) == 1 and tostring(keyAttribute) == "Pressed3" then
fibaro:call(65, "turnOff");
fibaro:call(10, "turnOff");
fibaro:call(154, "turnOff");
fibaro:call(155, "turnOff");
end
-
Moje wypociny
1 klik włącza lampę 1
2 klik włącza lampę 1 i 2
3 klik wyłącza wszystko w pokoju lampy i tv
Może komuś się przyda