Scena, która jest przeze mnie używana w kilku innych scenach.
Scena sprawdza wszystkie światła w naszym domu czy są włączone. Jeżeli tak, to gasi je.
Obsługuje urządzenia typu Switch/Dimmer oraz RGBW.
--[[
%% properties
%% events
%% globals
--]]
if (fibaro:countScenes() > 1) then
fibaro:debug("! Koncze scene");
fibaro:abort();
end
-- dynamicznie pobieram identyfikatory urządzeń z interfejsem "light"
local idSwiatel = fibaro:getDevicesId(
{
interfaces = {
"light",
},
properties = {
dead = false,
},
enabled = true,
visible = true,
}
);
-- wypisuje w logach jakie urządzenia znalazłem
fibaro:debug(os.date("%Y-%m-%d")..". idSwiatel: " .. json.encode(idSwiatel));
for i, swiatloId in ipairs(idSwiatel) do
local swieci = tonumber(fibaro:getValue(swiatloId, "value")) > 0;
local programRGB = fibaro:getValue(swiatloId, "currentProgramID");
if (swieci or
programRGB ~= nil and tonumber(programRGB) ~= 0) then
-- zapisuję w logach jakie światło i w jakim pokoju
fibaro:debug(os.date("%Y-%m-%d")..". Wyłączam " .. fibaro:getName(swiatloId) .. " w " .. fibaro:getRoomNameByDeviceID(swiatloId));
-- zapalone światło, więc je wyłączam
fibaro:call(swiatloId, "turnOff");
end
end
Ikonka:
Aby uruchomić tę scenę we własnych scenach lub urządzeniach wirtualnych należy wywołać taki kod:
fibaro:startScene(id_sceny_wylacz_swiatla);