Fibaro HC2: LUA riadenie závlahy

Fibaro HC2: LUA riadenie závlahy

Regulujte závlahu pomocou systému Fibaro HC2 a Netatmo Meteostanice s dažďovým senzorom, pomocou LUA scény.

Scéna bude spúšťať závlahu v určité časy cez deň na definované časové úseky. Napr. o 8:00 a o 20:00 na 10 minút.

Uvedené budú dve varianty spustenia závlahy:

  • vo všetkých dostupných zónach súčasne (všetky postrekovače sa spustia na definovaný čas)
  • postupné zapínanie jednotlivých zón (najprv sa spustí na 10 min jedna zóna, potom druhá, atď.)

Primárnou podmienkou týchto scén bude, či zrážky v mm presiahli určitú úroveň, napr. 3mm. Scéna bude bežať v nekonečnej slučke, porovnávať reálny čas s časom kedy by sa mala závlaha spustiť. Ak je hodnota akumulovaných zrážok za posledných 24 hodín z Netatmo meteostanice vyššia ako 3mm, zavlažovanie sa nepustí. Ak je hodnota zrážok menšia, zavlažovanie sa spustí. Limitnú hodnotu zrážok viete zmeniť podľa potreby v LUA scéne.

Ovládanie závlahy a solenoidových ventilov môže byť regulované napr. pomocou Fibaro Relay Switch 1x2,5kW (FGS-212) a Fibaro Relay Switch 2x1,5kW (FGS-222).

 

Fibaro irrigation

 

Prerekvizity - zariadenia a náležitosti, ktoré je nutné vlastniť/spraviť vopred aby ste mohli LUA scénu používať:

1. Fibaro HC2 – potrebné kvôli možnosti vytvorenia LUA scény

2. Netatmo Urban Station + Rain Gauge – monitorovanie množstva zrážok za posledných 24 hodín

3. Realizovaná integrácia Netatmo Urban Station + Rain Gauge do Fibaro HC2 s názvom Netatmo Weather Station VD-scene standalone 3.0 // kredit za prácu patrí užívateľovi Fibaro fóra SANKOTRONIC

-> viac nájdete na https://forum.fibaro.com/files/file/93-netatmo-weather-station-vd-scene-standalone/

-> resp. súbory na stiahnutie aj s anglickým manuálom

 

Integrácia Netatmo Urban Station + Rain Gauge do Fibaro HC2

V skratke:

1. Potrebné naimportovať Virtuálne Zariadenia zodpovedajúce jednotlivým Netatmo modulom do Fibaro HC2, čiže:

  • Virtuálne zariadenie pre Netatmo hlavný vnútorný modul – názov súboru - SA_Base_station_v3.0.vfib
  • Virtuálne zariadenie pre Netatmo vonkajší modul – názov súboru - SA_Outdoor_v3.0.vfib
  • Virtuálne zariadenie pre Netatmo dažďový modul – názov súboru - SA_Rain_gauge_v3.0.vfib
  • Virtuálne zariadenie pre Netatmo veterný modul – názov súboru - SA_Wind_gauge_v3.0.vfib

Pozn.: Vo vyššie uvedenom manuáli je popis aj ako nastaviť týmto Virtuálnym zariadeniam pekné ikony.

 

2. Vytvoriť LUA scénu, kde nakopírujete obsah zo súbora z názvu SA Netatmo Weather Station scene v3.0.lua

 

3. Upraviť vytvorenú LUA scénu, potrebné vyplniť riadky v LUA scéne:

  • Riadok 16 - > client_id = " " | Riadok 17 - > client_secret = " " - Na získanie týchto údajov potrebujete ísť na stránku https://dev.netatmo.com, tam vytvoriť novú appku Create an App, vyplniť povinné údaje a následne nižšie sa Vám zobrazia údaje Client ID aj Client Secret.
  • Riadok 18 - > username = " " - prihlasovacie meno, ktoré ste použili pri registrácii Netatmo meteostanice v mobilnej aplikácie, alebo ktoré používate na prihlásenie do https://my.netatmo.com
  • Riadok 19 - > password = " " - prihlasovacie heslo, ktoré ste použili pri registrácii Netatmo meteostanice v mobilnej aplikácie, alebo ktoré používate na prihlásenie do https://my.netatmo.com
  • Riadok 23 - > station_id = " " - MAC adresa vnútorného modulu Netatmo meteostanice pripojenej na lokálnu WiFi sieť, zistíte buď v routri alebo po prihlásení do https://my.netatmo.com, kliknite Manage my Station a po preskrolovaní vyskočeného okna uvidíte MAC address

 

4. Po spustení scény by mali byť vytvorené Globálne premenné v systéme Fibaro. Pre istotu si v Paneloch -> Panel premenných skontrolujte, či sa tam nachádzajú premenné s názvami:

  • NetatmoLang
  • NetatmoMain
  • NetatmoWeather

 

5. Teraz ak sa naimportované zariadenia v 1. bode neaktualizovali automaticky, refreshnite ich manuálne.

 

6. Následne aktualizácia údajov z Netatmo serverov do virtuálnych zariadení priebieha automaticky.

Fibaro irrigation


LUA SCÉNA - 1. Varianta – Spustenie všetkých zón súčasne.

Potrebné riadky, kde je potrebné vykonať zmenu sú vyznačené zelenou farbou. Rozdiel medzi LUA SCÉNA 1. Varianta a LUA SCÉNA 2. Varianta je vo funkcii "sprinkling" a počte použitých FOR cyklov.

--[[
%% autostart
%% properties
%% events
%% globals
--]]

local sprinklers = {135, 137}; -- ID rele modulov ovladajucich postrekovace
local startTime = {"08:00", "14:00", "20:00"}; -- casy, kedy sa ma spustit zavlaha
local min = 10 -- minuty ako dlho ma trvat zavlazovanie
local sectionTime = min*60*1000; -- nemenit, prepocet minut
local rainfall_treshold = 3 -- limit kolko mm zrazok sa povazuje za dostacne vlhko, ak je nameranych menej tak sa zavlaha spusti
local startSource = fibaro:getSourceTrigger(); -- manualne spustenie sceny

-- zistenie aktualneho lokalneho casu
function localTime()
local currentDate = os.date("*t");
local localTime = currentDate.day .. "/" .. currentDate.month .. "/" .. currentDate.year .. " " .. string.format("%02d", currentDate.hour) .. ":".. string.format("%02d", currentDate.min) .. ":".. string.format("%02d", currentDate.sec) .. ": "
return localTime
end

-- kontrola mnozstva zrazok
function isRaining()
local wT = json.decode(fibaro:getGlobalValue("NetatmoWeather")) -- nacitanie udajov z netatmo
local stationNo = 1 -- nacitanie udajov z netatmo
if wT.netatmo[stationNo].rain.day > tonumber(rainfall_treshold) then
print(tonumber(wT.netatmo[stationNo].rain.day))
return true;
else
print(tonumber(wT.netatmo[stationNo].rain.day))
return false;
end
end

--funkcia zavlahy, vsetky postrekovace sa spustia naraz
function sprinkling()
fibaro:debug(localTime() .. "Spustam zavlahu.");
for i in pairs(sprinklers) do
fibaro:debug(localTime() .. "Zona " .. i .. " spustena. Zavlaha spustena na " ..sectionTime/60000 .. " minut.");
fibaro:call(sprinklers[i], "turnOn");
end
fibaro:sleep(sectionTime);
for i in pairs(sprinklers) do
fibaro:call(sprinklers[i], "turnOff");
fibaro:debug(localTime() .. "Zona " .. i .. " vypnuta.");
end
fibaro:debug(localTime() .. "Vypinam zavlahu.");
return true;
end

-- funkcia volajuca spustenie zavlahy
function mainLoop()
sprinkling();
end


---------- nekonecna slucka
if (startSource["type"] == "autostart") then
fibaro:debug(localTime() .. "Scena spustena automaticky");
while true do
currentDate = os.date("*t");
Time = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min)
for i in pairs(startTime) do
if (Time == startTime[i]) then
if(isRaining() == false) then
fibaro:debug(localTime() .. "Zavlaha spustena automaticky (ziadny dazd).");
mainLoop()
else
fibaro:debug("Zavlaha nespustena (prsi).")
end
end
end
fibaro:sleep(30*1000);
end

-- podmienka pre manualne spustenie sceny
elseif(startSource["type"] == "other") then
fibaro:debug(localTime() .. "Zavlaha spustena manualne.");
mainLoop()
end

 

LUA SCÉNA - 2. Varianta – Postupné spúštanie zón, po skončení zavlažovania jednej zóny sa spustí druhá.

Potrebné riadky, kde je potrebné vykonať zmenu sú vyznačené zelenou farbou. Rozdiel medzi LUA SCÉNA 1. Varianta a LUA SCÉNA 2. Varianta je vo funkcii "sprinkling" a počte použitých FOR cyklov.

--[[
%% autostart
%% properties
%% events
%% globals
--]]

local sprinklers = {135, 137}; -- ID rele modulov ovladajucich postrekovace
local startTime = {"08:00", "14:00", "20:00"}; -- casy, kedy sa ma spustit zavlaha
local min = 10 -- minuty ako dlho ma trvat zavlazovanie
local sectionTime = min*60*1000; -- nemenit, prepocet minut
local rainfall_treshold = 3 -- limit kolko mm zrazok sa povazuje za dostacne vlhko, ak je nameranych menej tak sa zavlaha spusti
local startSource = fibaro:getSourceTrigger(); -- manualne spustenie sceny

-- zistenie aktualneho lokalneho casu
function localTime()
local currentDate = os.date("*t");
local localTime = currentDate.day .. "/" .. currentDate.month .. "/" .. currentDate.year .. " " .. string.format("%02d", currentDate.hour) .. ":".. string.format("%02d", currentDate.min) .. ":".. string.format("%02d", currentDate.sec) .. ": "
return localTime
end

-- kontrola mnozstva zrazok
function isRaining()
local wT = json.decode(fibaro:getGlobalValue("NetatmoWeather")) -- nacitanie udajov z netatmo
local stationNo = 1 -- nacitanie udajov z netatmo
if wT.netatmo[stationNo].rain.day > tonumber(rainfall_treshold) then
print(tonumber(wT.netatmo[stationNo].rain.day))
return true;
else
print(tonumber(wT.netatmo[stationNo].rain.day))
return false;
end
end

--funkcia zavlahy, postrekovace sa spustaju postupne od prveho zadaneho ID po posledne v "sprinklers"
function sprinkling()
fibaro:debug(localTime() .. "Spustam zavlahu.");
for i in pairs(sprinklers) do
fibaro:debug(localTime() .. "Zona " .. i .. " spustena. Zavlaha spustena na " ..sectionTime/60000 .. " minut.");
fibaro:call(sprinklers[i], "turnOn");
fibaro:sleep(sectionTime);
fibaro:call(sprinklers[i], "turnOff");
fibaro:debug(localTime() .. "Zona " .. i .. " vypnuta.");
end
fibaro:debug(localTime() .. "Vypinam zavlahu.");
return true;
end

-- funkcia volajuca spustenie zavlahy
function mainLoop()
sprinkling();
end


---------- nekonecna slucka
if (startSource["type"] == "autostart") then
fibaro:debug(localTime() .. "Scena spustena automaticky");
while true do
currentDate = os.date("*t");
Time = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min)
for i in pairs(startTime) do
if (Time == startTime[i]) then
if(isRaining() == false) then
fibaro:debug(localTime() .. "Zavlaha spustena automaticky (ziadny dazd).");
mainLoop()
else
fibaro:debug("Zavlaha nespustena (prsi).")
end
end
end
fibaro:sleep(30*1000);
end

-- podmienka pre manualne spustenie sceny
elseif(startSource["type"] == "other") then
fibaro:debug(localTime() .. "Zavlaha spustena manualne.");
mainLoop()
end

Zanechajte nám Váš názorZanechajte odpoveď

Vyhľadávanie v blogu

Najnovšie názory

Naposledy navštívené

Žiadne produkty

Menu

Porovnať 0