AN45 Sekvence zapínání výstupů po zapnutí elektrického proudu (Lua skript) | Chytré zásuvky NETIO ovládané pomocí WiFi a LAN
Tagy: 
User library

AN45 obsahuje Lua skript, který po startu časuje prvotní sekvenci zapínání a vypínání jednotlivých výstupů. Lze tak přesně definovat postupné zapínání napájení jednotlivých zařízení po zapnutí napájení.

Můžeme Vám nějak pomoci?

Podporovaná zařízení: NETIO PowerPDU 4C

 

Pomocí Lua skriptu AN45 je možné nastavit časovou sekvenci pro jednotlivé výstupy (proměnné output1 - output4), která bude přepínat výstupy do nastavených stavů.

Skript se spouští ihned po zapnutí napájení zařízení (po cca minutě na nabootování systému).

 

Doporučujeme všem výstupům nastavit hodnotu PowerUpState = Off.

  • Výhodou Lua scriptu oproti jedné předvolené hodnotě PowerUp sequence je možnost složitějších kombinací sekvencí
  • Nevýhodou je čekání cca 60 sekund po startu napájení pro NETIO zařízení

 

Jak funguje AN45

  • NETIO potřebuje určitý čas (cca 1 minuta) pro nabootování systému. V tuto dobu jsou výstupy vypnuty (pokud platí, že PowerUpState = Off).
  • Pro každý výstup lze nastavit zapínací sekvenci s přesným časováním.
  • Časy jsou relativní, každá sekvence trvá nějaký čas a ten se píše na první místo do závorky.

 

  • Output 1:
    • V čase 2 (po 2 sekundách) se zapne.
    • Po dalších 2 sekundách se vypne (v čase 4).
    • Po dalších 3 sekundách se na 1 sekundu zapne, poté již zůstane vypnutý.
  • Output 2:
    • V čase 0 se zapne.
    • Po dalších 7 sekundách čekání se vypne
  • Output 3:
    • Pro tento výstup není nastavena žádná sekvence
  • Output 4:
    • 6 sekund po nabootování systému se výstup zapne
       

 

PowerUp State - nastavení výchozího stavu

Jako první je potřeba nastavit, aby výstupy po startu zařízení byly vypnuté.

  • Ve webové aplikaci v sekci Outputs je možné po kliknutí na příslušný výstup nastavit proměnnou Output PowerUp state. Tuto proměnnou je potřeba nastavit na OFF.
  • Tato proměnná musí být nastavena na OFF pro každý jeden výstup..

 

Vytvoření pravidla (rule)

Pro vytvoření a spuštění Lua skriptu je nutné následující:

1) Ve webové administraci NETIO 4 v sekci Actions, přidejte pravidlo pomocí tlačítka Create Rule

 

2) Vyplňte následující parametry:

  • Enabled: zaškrtnuto
  • Name: PowerUp sequence (uživatelsky definovatelné)
  • Description: Set PowerUp sequence (uživatelsky definovatelné)
  • Trigger: System started up
  • Schedule: Always

3) Do pole pro skript v jazyce Lua zkopírujte následující kód:

------------NETIO AN45------------
-- Output PowerUp state must be set to OFF

------------Section 1------------
-- format: {time [sec], value [0=Off, 1=On]}
local output1 = {{0,1},{60,0}}
local output2 = {{60,1},{10,0},{10,1},{10,0},{10,1}}
local output3 = {}
local output4 = {{1,1},{1,0},{1,1},{1,0},{1,1},{1,0},{1,1},{1,0},{1,1},{1,0}}
---------End of Section 1---------


function setTimer(sequence,output)
  local time = 0
  for k, v in pairs(sequence) do
    time = time + v[1]
    local action = v[2]

    if time == 0 then
      devices.system.SetOut{output=output,value=action}
    else
      delay(time,function() devices.system.SetOut{output=output,value=action} end)
    end
  end
end

function checkFormat(sequence)
  for k, v in pairs(sequence) do
    local time = tonumber(v[1])
    local action = tonumber(v[2])
    if time == nil then
      log("Time must be a number!")
      return false
    end
    if time < 0 then
      log("Time must be higher then 0!")
      return false
    end
    if action ~= 0 and action ~= 1 then
      log(tostring(action))
      log("Action can be only 0 or 1!")
      return false
    end
  end
  return true
end

local format1 = checkFormat(output1)
local format2 = checkFormat(output2)
local format3 = checkFormat(output3)
local format4 = checkFormat(output4)

local format = (format1 and format2) and (format3 and format4)

log(tostring(format))
if format then
  setTimer(output1,1)
  setTimer(output2,2)
  setTimer(output3,3)
  setTimer(output4,4)
end


4) Tvorbu pravidla ukončete stisknutím kliknutím na tlačítko Create Rule v dolní části obrazovky.

 

Princip

  • Skript se spustí po spuštění zařízení NETIO 4x.
  • Nejprve se provede kontrola formátu proměnných output1, output2, output3, output4. Pokud je formát v pořádku, skript začne nastavovat výstupy do příslušných stavů.

 

Nastavení proměnných

  • output1
    • Tato proměnná obsahuje informace o přepínací sekvenci pro výstup 1.
    • Sekvence má následující formát: local output1 = {{čas, akce}, {čas, akce}, {čas, akce}, ...}
    • Čas určuje dobu v sekundách za kterou bude vykonána akce od minulého přepnutí.
    • Časové hodnoty se nastavují v sekundách. První hodnotu je možné nastavit na 0, v tom případě dojde k provedení akce ihned po spuštění skriptu. Ostatní hodnoty musí být větší než 0.
    • Akce je hodnota 0 (vypnout) nebo 1 (zapnout).
    • Pokud se s výstupem nemá dít nic, je nutné nechat proměnnou prázdnou (local output1 = {})
    • Příklad pro zapnutí výstupu ihned po spuštění skriptu a vypnutí po 10 sekundách: local output1 = {{0,1},{10,0}}.

 

  • output2, output3, output4
    • Tyto proměnné slouží k nastavení sekvence pro výstupy 2, 3 a 4. Nastavují se stejně jako output1.

 

  • Příklad:
    • Výstup 1: Po spuštění ihned zapnout a po 60 sekundách vypnout.
    • Výstup 2: Po 60 sekundách od spuštění zapnout a následně 2x vypnout a zapnout vždy po 10 sekundách.
    • Výstup 3: Nedělat nic
    • Výstup 4: Po zapnutí 5x zapnout a vypnout vždy po 1 sekundě.

 

------------Section 1------------
local output1 = {{0,1},{60,0}}
local output2 = {{60,1},{10,0},{10,1},{10,0},{10,1}}
local output3 = {}
local output4 = {{1,1},{1,0},{1,1},{1,0},{1,1},{1,0},{1,1},{1,0},{1,1},{1,0}}
---------End of Section 1---------


Spuštění skriptu

Skript se spustí vždy po zapnutí zařízení NETIO. Pokud k tomu nedojde, zkontrolujte nastavení, popřípadě formát jednotlivých sekvencí.

 

FAQ

1) Je možné nastavit čas menší než 1 sekunda?

Ne, 1 sekunda je nejnižší možná hodnota.

 

2) Vstupy se nepřepínají ihned po startu zařízení, ale až po určité době, co je špatně?

Špatně není nic, jedná se o prodlevu mezi zapnutím zařízení a spuštěním Lua skriptu. Tato prodleva trvá zhruba jednu minutu.

 

3) Lze nastavit spínání přesně v nějaký čas?

Ano, podrobný postup včetně skriptu je možné najít v AN17.

 

4) Lze kombinovat tyto startovní sekvence s ovládáním přes web nebo tlačítky?

Ano, pokud během trvání časové sekvence jiný zdroj výstup přepne, AN45 jej již na předchozí hodnotu neopraví a zareaguje zase až v dalším čase.

 

5) Je možné nastavit PowerUp sekvenci i pro zařízení bez Lua?

V zařízeních bez Lua je pouze možné nastavit časy pro zapnutí jednotlivých výstupů (https://www.netio-products.com/en/glossary/powerup-sequence).

 

Podporované verze FW:

3.3.1 a vyšší

 

Zeptejte se na cenu nebo technické parametry

Pro otestování zařízení použijte jméno/heslo demo/demo