Scéna je spuštěna (trigger) změnou vlastnosti (property) value zařízení s ID 48 (může jít např. o hodnotu virtuálního 2. relé v FGS 221, tudíž je tak možné reagovat na vstup S2), jak je deklarováno v sekci %%properties.
Následně podmínka ověří, že ke spuštění došlo skutečně pomocí změny vlastnosti (nikoli např. stisknutím tlačítka Spustit nebo jinou spouštěcí událostí).
Nakonec je povelem fibaro:startScene() spuštěna jiná scéna s ID 2 – např. jednoduše vytvořená v grafickém režimu. ID scény zjistíte nejsnadněji v adresním řádku webového prohlížeče poté, co požadovanou scénu vyberete k editování.
Kód
--[[ %% properties 48 value %% globals --]] fibaro:debug ("scene triggered"); local trigger = fibaro:getSourceTrigger(); if (trigger['type'] ~= "property") then fibaro:debug ("Unexpected source trigger '" .. trigger['type'] .. "'"); fibaro:abort (); end fibaro:debug ("scene activated"); fibaro:startScene(2);
Jiná varianta
Následující kód umožňuje na různěnásobné kliky na vstupech S1 a S2 spustit rozdílné scény.
--[[ %% properties 507 sceneActivation %% globals --]] local id= 507; local name = fibaro:getName(id) fibaro:debug(name); local name = tonumber(fibaro:getValue(id, "sceneActivation")); if (tonumber(fibaro:getValue(id, "sceneActivation"))==16) then fibaro:debug("1 click s1 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==26) then fibaro:debug("1 click s2 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==25) then fibaro:debug("3 click s2 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==15) then fibaro:debug("3 click s1 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==14) then fibaro:debug("2 click s1 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==24) then fibaro:debug("2 click s2 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==12) then fibaro:debug("hold click s1 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==13) then fibaro:debug("release click s1 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==22) then fibaro:debug("hold click s2 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==23) then fibaro:debug("release click s2 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==10) then fibaro:debug("change from turn off to turn on s1 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==11) then fibaro:debug("change from turn on to turn off s1 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==20) then fibaro:debug("change from turn off to turn on s2 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==21) then fibaro:debug("change from turn on to turn off s2 "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==17) then fibaro:debug("up "..name); elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==18) then fibaro:debug("down "..name); end;