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é

  1. Klikněte vlevo na ozubené kolo (tlačítko Nastavení)
  2. Klikněte na 6. Obecné
  3. V horní záložce klikněte na Události.
  4. Vpravo klikněte na Přidat událost.
  5. Zadejte název události a popis.
  6. 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