Forum użytkowników automatyki budynkowej
Z-wave => Fibaro - skrypty itp => Wątek zaczęty przez: amis w Listopad 12, 2017, 02:03:58 pm
-
Hej, ;)
Mam prośbę, czy może ktoś powiedzieć mi dlaczego nie chce działać takie polecenie
w pętli chcę sprawdzić czy urządzenie ma baterię i jak ma to coś tam
local isBatOperated = (fibaro:get (i, 'isbattery') == "1")
if isBatOperated then
...
end if
pozdro
-
Źle sprawdzasz. Tu masz przykład.
--[[
%% properties
%% events
%% globals
--]]
local zm1 = 18;
local zm2 = 206;
if(fibaro:getValue(zm1, "batteryLevel") == '') then
fibaro:debug("Niebateryjne");
else
fibaro:debug("Bateryjne" .. fibaro:getValue(zm1, "batteryLevel") .. "%");
end
if(fibaro:getValue(zm2, "batteryLevel") == '') then
fibaro:debug("Niebateryjne");
else
fibaro:debug("Bateryjne " .. fibaro:getValue(zm2, "batteryLevel") .. "%");
end
[DEBUG] 21:27:58: Niebateryjne
[DEBUG] 21:27:58: Bateryjne 92%
-
dzięki tak jak piszesz działa na każde urządzenie, ale chcę sprawdzić wszystkie urządzenia np. 150 szt.
chciałem
for i = 0, 150 do
local isBatOperated = (fibaro:get (i, 'isbattery') == "1")
if isBatOperated then
...
end
end
-
w pętlę for musisz wstawić co innego twoja wersja z fibaro:get jest błędna. Podałem prawidłową wersję z pobraniem informacji czy jest to bateria.
Dodatkowo skrypt z bateriami jest już stworzony przez innego kolegę, gdzie podajemy ID konkretnych urządzeń.
-
dzięki za info.
wpiszę na stałe numery urządzeń.