Jedna z možností automatizace pro dům. Scéna níže umožňuje základní nastavení rolet (rolety nemají lamely) dle polohy slunce.
Je nutná Rychlá aplikace pro sledování polohy slunce, viz článek Rychlá aplikace | Pozice slunce.
Scéna reaguje na tzv spuštění události/makra, kdy je kód pouze na jednom místě a není rozkouskován na více menších kódů. Výhodou tak je nastavení automatizace rolet je na jednom místě.
Vytvoření události
Přechod do panelu Proměnné
- Klikněte vlevo na ozubené kolo (tlačítko Nastavení)
- Klikněte na 6. Obecné
- V horní záložce klikněte na Události.
- Vpravo klikněte na Přidat událost.
- Zadejte název události a popis.
- Klikněte na tlačítko Přidat.
Scéna vyvolávající událost
V této části je nutné vytvořit scénu, která bude na základě změny proměnné spouštět událost (vytvořena v předešlém kroku).
Podmínka scény:
{ conditions = { { isTrigger = true, -- jde o spouštěč operator = "==", -- operátor "je stejné jako" property = "wallLight", -- název globální proměnné type = "global-variable", -- jde o globální proměnnou value = "East" -- slunce svítí na Východ },{ isTrigger = true, -- jde o spouštěč operator = "==", -- operátor "je stejné jako" property = "wallLight", -- název globální proměnné type = "global-variable", -- jde o globální proměnnou value = "South" -- slunce svítí na Jih },{ isTrigger = true, -- jde o spouštěč operator = "==", -- operátor "je stejné jako" property = "wallLight", -- název globální proměnné type = "global-variable", -- jde o globální proměnnou value = "West" -- slunce svítí na Západ },{ isTrigger = true, -- jde o spouštěč operator = "==", -- operátor "je stejné jako" property = "wallLight", -- název globální proměnné type = "global-variable", -- jde o globální proměnnou value = "North" -- slunce svítí na Sever }}, operator = "any" -- jde o podmínku typu OR, tedy minimálně jedna z podmínek výše musí být splněny. }
Tělo scény:
fibaro.emitCustomEvent('Blinds') -- spuštění nadefinované události
Scéna ovládající žaluzie
Scéna se dělí na podmínku, kterou je Lua tabulka (Lua table), která je velmi podobná JSONu, a spouští scénu. Druhou částí je tělo scény, kde probíhají veškeré operace.
Podmínka scény
Podmínkou scény je spuštění události. V příkladě je Událost Blinds.
{ conditions = { { isTrigger = true, -- jde o spouštěč scény, tedy scéna se spustí při spuštění události operator = "==", -- operátor stejný jako property = "Blinds", -- název události type = "custom-event" -- typem je vlastní událost } }, operator = "all" -- all zamená, že jde o podmínku typu AND (vše musí platit), zatímco any zmanená, že jde o podmínku typu OR (min. 1 podmínka musí platit). }
Tělo scény
V těle scény jsou ve větší části definice, kdy se definují žaluzie na různých světových stranách a úroveň otevření, když slunce svítí na danou světovou stranu.
Definice žaluzií je typu řetězece (array), kdy se jednotlivé ID zadávají do složených závorek. Je nutné definovat všechny světové strany, ikdyž tam rolety nejsou, viz prázdné závorky v příkladu
- Definice více rolet: {1, 2, ..., n}
- Definice jedné rolety: {1}
- Pokud rolety na dané světové straně nejsou: {}
Příklad:
-- Jaké mám rolety local eastBlinds = {294,295} -- rolety na Východě local southBlinds = {} -- rolety na Jihu local westBlinds = {292,293} -- rolety na Západě local northBlinds = {} -- rolety na Severu
Po definici rolet je třeba definovat jak budou otevřeny rolety, když slunce svítí na určitou stranu. Toto je uživatelská definice. V tomto případě doporučujeme jeden den (nejlépe o víkendu) nastavit žaluzie tak jak vám vyhovuje při pozici slunce na Východ, Jih a Západ. Jen nad severem není nutné moc spekulovat, jelikož je noc, tak nastavíte jen jak se mají žaluzie chovat v noci.
Možnosti otevření jsou od 0 (zatažené) do 99 (plně otevřené).
Definice rolet, když je slunce na východě:
-- Jak moc chci zatažené ráno -> v době, kdy slunce je na Východě local eastEast = 50 -- žádaná úroveň rolet na Východě local eastSouth = 100 -- žádaná úroveň rolet na Jihu local eastWest = 100 -- žádaná úroveň rolet na Západě local eastNorth = 100 -- žádaná úroveň rolet na Severu
Definice rolet, když je slunce na Jihu:
-- Jak moc chci zatažené dopoledne -> v době, kdy slunce je na Jihu. local southEast = 100 -- žádaná úroveň rolet na Východě local southSouth = 80 -- žádaná úroveň rolet na Jihu local southWest = 50 -- žádaná úroveň rolet na Západě local southNorth = 100 -- žádaná úroveň rolet na Severu
Definice rolet, když je slunce na Západě:
-- Jak moc chci zatažené odpoledne -> v době, kdy slunce je na Západě. local westEast = 100 -- žádaná úroveň rolet na Východě local westSouth = 20 -- žádaná úroveň rolet na Jihu local westWest = 90 -- žádaná úroveň rolet na Západě local westhNorth = 100 -- žádaná úroveň rolet na Severu
Definice rolet, když je slunce na Severu (je tma):
-- Jak moc chci zatažené v noci -> v době, kdy slunce je na Severu. local norhtEast = 0 -- žádaná úroveň rolet na Východě local northSouth = 0 -- žádaná úroveň rolet na Jihu local nortsWest = 0 -- žádaná úroveň rolet na Západě local northNorth = 0 -- žádaná úroveň rolet na Severu
Jako poslední definice je získání údaje, na jakou zeď svítí slunce:
local wallLight = fibaro.getGlobalVariable("wallLight") -- Kam svítí slunce
Dále již probíhá automatizace na základě polohy slunce a zda na dané zeměpisné straně existují rolety.
---------------- NÍŽE NEMĚNIT / DO NOT CHANGE BELOW ------------------------------------- if wallLight == "East" then -- pokud je slunce na východě if eastBlinds ~= "" then fibaro.call(eastBlinds, "setValue", eastEast) end -- pokud existují východní rolety, nastav jejich úroveň if southBlinds ~= "" then fibaro.call(southBlinds, "setValue", eastSouth) end -- pokud existují jižní rolety, nastav jejich úroveň if westBlinds ~= "" then fibaro.call(westBlinds, "setValue", eastWest) end -- pokud existují západní rolety, nastav jejich úroveň if northBlinds ~= "" then fibaro.call(northBlinds, "setValue", eastNorth) end -- pokud existují severní rolety, nastav jejich úroveň --fibaro.alert('push', {[1] = 2, }, 'Slunce svítí na Východ') end if wallLight == "South" then -- pokud je slunce na jihu if eastBlinds ~= "" then fibaro.call(eastBlinds, "setValue", southEast) end -- pokud existují východní rolety, nastav jejich úroveň if southBlinds ~= "" then fibaro.call(southBlinds, "setValue", southSouth) end -- pokud existují jižní rolety, nastav jejich úroveň if westBlinds ~= "" then fibaro.call(westBlinds, "setValue", southWest) end -- pokud existují západní rolety, nastav jejich úroveň if northBlinds ~= "" then fibaro.call(northBlinds, "setValue", southNorth) end -- pokud existují severní rolety, nastav jejich úroveň --fibaro.alert('push', {[1] = 2, }, 'Slunce svítí na Jih') end if wallLight == "West" then -- pokud je slunce na západě if eastBlinds ~= "" then fibaro.call(eastBlinds, "setValue", westEast) end -- pokud existují východní rolety, nastav jejich úroveň if southBlinds ~= "" then fibaro.call(southBlinds, "setValue", westSouth) end -- pokud existují jižní rolety, nastav jejich úroveň if westBlinds ~= "" then fibaro.call(westBlinds, "setValue", westWest) end -- pokud existují západní rolety, nastav jejich úroveň if northBlinds ~= "" then fibaro.call(northBlinds, "setValue", westNorth) end -- pokud existují severní rolety, nastav jejich úroveň --fibaro.alert('push', {[1] = 2, }, 'Slunce svítí na Západ') end if wallLight == "Norht" then -- pokud je slunce na severu if eastBlinds ~= "" then fibaro.call(eastBlinds, "setValue", northEast) end -- pokud existují východní rolety, nastav jejich úroveň if southBlinds ~= "" then fibaro.call(southBlinds, "setValue", northSouth) end -- pokud existují jižní rolety, nastav jejich úroveň if westBlinds ~= "" then fibaro.call(westBlinds, "setValue", northWest) end -- pokud existují západní rolety, nastav jejich úroveň if northBlinds ~= "" then fibaro.call(northBlinds, "setValue", northNorth) end -- pokud existují severní rolety, nastav jejich úroveň --fibaro.alert('push', {[1] = 2, }, 'Slunce svítí na Sever') end