FIBARO HC3 LUA: Zónové topení č.1 Radiátory a kotel

FIBARO HC3 LUA: Zónové topení č.1 Radiátory a kotel

Zónové topení - případ - Ovládání radiátorů a řízení kotle na základě stavu vytopení jednotlivých místností

Tento blog bude věnován nastavení topných zón v řídící jednotce FIBARO Home Center 3 pomocí panelu - Klíma. Každá teplotní zóna (nebo jinak řečeno radiátor) bude řízena termostatickou hlavicí na radiátoru, kotel bude zapnutí pokud v nějaké z místností bude potřeba topit. V jiném případě bude-li ve všech místnostech dosažena nastavená teplota tak se kotel vypne.

Po nastavení jednotlivých zón si uvedeme příklad LUA scény, která na základě porovnávání naměřené a nastavené teploty v dané místnosti vyhodnocuje, zda kotel má být zapnutý nebo naopak nepotřebuje ohřívat vodu pro topný systém.


Co potřebujete když chcete realizovat takový způsob ovládání topení:

1. řídící jednotku - FIBARO Home Center 3
2. Z-Wave radiátorovú hlavici, ideálně takovou, která má externí nebo vestavěný teplotní senzor pro měření pokojové teploty - např. Termostatická hlavice s teplotním senzorem - FIBARO The Heat Controller Starter Pack ZW5 nebo Popp Termostatická Hlavice
3. akční prvek pro ovládání kotle / bojleru - a to buď bezpotenciálové relé např. Spínací modul - FIBARO Relay Switch 1x2,5kW (FGS-212) nebo termostat se suchým relé výstupem např. SECURE SRT323 Bezdrátový Termostat


FIBARO Home Center 3 - nastavení klimatizačních zón v panelu Klíma

Nejprve je v řídící jednotce FIBARO Home Center 3 potřeba vytvořit si příslušné sekce (např. 1.patro) a místnosti (např. Místnost 1 - obývací pokoj, atd). Jak vytvořit místnosti se dozvíte na - https://manuals.fibaro.com/home-center-3/#post-14107

Následně je třeba si přidat Z-Wave zařízení jako jsou radiátorové hlavice a relé / termostat na ovládání kotle.

Po přidání těchto zařízení je vhodné přesunout je do odpovídajících místností.

Následně se přesuňte do Nastavení domácího centra FIBARO Home Center 3, kde klikněte na položku Climate = Klíma.
FIBARO HC3 LUA - Zónové kúrenie Radiátory a kotol

Po tomto kroku můžete nechat vytvořit Automaticky teplotní zóny (pouze pro radiátorové hlavice). Poznámka: Pokud používáte termostat k ovládání kotle / bojleru, nevytvářejte teplotní zónu pro termostat k ovládání kotle / bojleru. Jinými slovy, vymažte teplotní zónu pro termostat k ovládání kotle / bojleru pokud Vám ji systém automaticky vytvořil.
FIBARO HC3 LUA - Zónové kúrenie Radiátory a kotol

Pokud máte správné vytvořeny Sekce a Místnosti tak se Vám zóny vytvoří přehledně a korektně bez potřeby úpravy. V tomto kroku si už intuitivně víte nastavit teploty pro dané teplotní zóny v různých časových rozvrzích.
FIBARO HC3 LUA - Zónové kúrenie Radiátory a kotol


FIBARO Home Center 3 - vysvětlení LUA skriptu na řízení kotle na základě poptávky od radiátorových hlavic

V Nastaveních řídící jednotky FIBARO Home Center 3 vyberte Scény a přidejte LUA scénu, do které zkopírujte níže uvedený obsah podle toho, zda používáte:
- 1. řízení kotle pomocí bezpotenciálového relé modulu - Spínací modul - FIBARO Relay Switch 1x2,5kW (FGS-212)
- 2. řízení kotle pomocí termostatu se suchým relé výstupem např. SECURE SRT323 Bezdrátový Termostat

Zkopírujte obě bloky LUA scény i Ľavý blok = DECLARATIONS (Conditions/Triggers) i Pravý blok = ACTIONS

V levém bloku = Declarations (Conditions / Triggers) netřeba nic měnit. Funguje na spouštění scény každých 5 minut (300s). V řádku 9 si můžete změnit interval spuštění scény na delší / kratší podle potřeby.

V pravém bloku = ACTIONS, je třeba změnit řádky 1,2,3. Ostatní řádky neměňte.V 1. řádku zadejte ID označení zařízení, které měří teploty v jednotlivých místnostech. Např. teplotní senzory termostatických / radiátorových hlavic. Zařízení oddělujte čárkami, dejte si pozor na pořadí protože ID zařízení musí být ve stejném pořadí i ve druhém řádku. Příklad níže.

V 2. řádku zadejte ID označení zařízení, které nastavují teploty v jednotlivých místnostech. V tomto případě se jedná o zařízení radiátorových hlavic. Zařízení oddělujte čárkami, dejte si pozor na pořadí protože ID zařízení musí být ve stejném pořadí jako v prvním řádku. Příklad níže.

Ve 3. řádku zadejte ID označení akčního prvku pro ovládání kotle / bojleru - a to buď bezpotenciálové relé např. Spínací modul - FIBARO Relay Switch 1x2,5kW (FGS-212) nebo termostat se suchým relé výstupem např. SECURE SRT323 Bezdrátový Termostat

local fromID = {22,28} -- Teploměry (Naměřené teploty)
local toID = {21,27} -- Termostaty (Nastavené teploty / Setpoint)
local boiler = 33 -- Relé / Termostat pro ovládání kotle

ID 22 odpovídá teplotnímu senzoru v Místnosti 1 - např. Obývák
ID 21 odpovídá radiátorové hlavice v Místnosti 1 - např. Obývák

ID 28 odpovídá teplotnímu senzoru v Místnosti 2 - např. Kuchyň
ID 27 odpovídá radiátorové hlavice v Místnosti 2 - např. kuchyň


Jak zjistím ID jednotlivých zařízení.

V Nastavení panelu Devices = Zařízení - vidíte seznam všech zařízení pridaních do FIBARO Home Center 3 a systémové označení tzv. ID příslušející těmto zařízením, které se často používají právě v LUA scénách.
FIBARO HC3 LUA - Zónové kúrenie Radiátory a kotol

 


1. FIBARO Home Center 3 - LUA skript na řízení kotle pomocí relé modulu napr. FIBARO Relay Switch 1x2.5kW (FGS-212)

Levý blok = DECLARATIONS (Conditions/Triggers)

{
  conditions = { {
      isTrigger = true,
      operator = "matchInterval",
      property = "cron",
      type = "date",
      value = {
        date = { "00", "00", "1", "3", "*", "2020" },
        interval = 300
      }
    } },
  operator = "any"
}

Pravý blok = ACTIONS

local fromID = {22,28} -- Teplomery (Namerané teploty)
local toID = {21,27} -- Termostaty (Nastavené teploty / Setpoint)
local boiler = 33 -- Relé na ovládanie kotla
local flaq_1 = 0


for i=1,#toID do 

    local name1 = fibaro.getName(fromID[i])
    local room1 = fibaro.getRoomNameByDeviceID(fromID[i])
    local name2 = fibaro.getName(toID[i])
    local room2 = fibaro.getRoomNameByDeviceID(toID[i])

    if ( fibaro.getValue(toID[i], "heatingThermostatSetpoint") ~= fibaro.getValue(fromID[i],"value") ) then        
        fibaro.debug("", name1.. " / v miestnosti / " ..room1.. "  - Namerana Teplota: " ..fibaro.getValue(fromID[i], "value") )
        fibaro.debug("", name2.. " / v miestnosti / " ..room2.. "  - Nastavena Teplota: " ..fibaro.getValue(toID[i], "heatingThermostatSetpoint") )

                if ( fibaro.getValue(fromID[i],"value") < fibaro.getValue(toID[i], "heatingThermostatSetpoint") ) then              
                        flaq_1 = 1
                end                
    else
        flaq_1 = 0
        fibaro.call(boiler, "turnOff")
        fibaro.debug("","vypinam")
    end
end

if (flaq_1 == 1) then
    fibaro.call(boiler, "turnOn")
    fibaro.debug("","zapinam")
else
    fibaro.call(boiler, "turnOff")
    fibaro.debug("","vypinam")
end


2. FIBARO Home Center 3 - LUA skript na řízení kotle pomocí termostatu napr. SECURE SRT323 Bezdrátový Termostat

Levý blok = DECLARATIONS (Conditions/Triggers)

{
  conditions = { {
      isTrigger = true,
      operator = "matchInterval",
      property = "cron",
      type = "date",
      value = {
        date = { "00", "00", "1", "3", "*", "2020" },
        interval = 300
      }
    } },
  operator = "any"
}

Pravý blok = ACTIONS

local fromID = {22,28} -- Teplomery (Namerané teploty)
local toID = {21,27} -- Termostaty (Nastavené teploty / Setpoint)
local boiler = 30 -- Termostat na ovládanie kotla
local flaq_1 = 0


for i=1,#toID do 

    local name1 = fibaro.getName(fromID[i])
    local room1 = fibaro.getRoomNameByDeviceID(fromID[i])
    local name2 = fibaro.getName(toID[i])
    local room2 = fibaro.getRoomNameByDeviceID(toID[i])

    if ( fibaro.getValue(toID[i], "heatingThermostatSetpoint") ~= fibaro.getValue(fromID[i],"value") ) then        
        fibaro.debug("", name1.. " / v miestnosti / " ..room1.. "  - Namerana Teplota: " ..fibaro.getValue(fromID[i], "value") )
        fibaro.debug("", name2.. " / v miestnosti / " ..room2.. "  - Nastavena Teplota: " ..fibaro.getValue(toID[i], "heatingThermostatSetpoint") )

                if ( fibaro.getValue(fromID[i],"value") < fibaro.getValue(toID[i], "heatingThermostatSetpoint") ) then              
                        flaq_1 = 1
                end                
    else
        flaq_1 = 0
        fibaro.call(boiler, "setHeatingThermostatSetpoint", 15)
        --fibaro.call(boiler, "turnOff")
        fibaro.debug("","vypinam")
    end
end

if (flaq_1 == 1) then
    fibaro.call(boiler, "setHeatingThermostatSetpoint", 30)
    --fibaro.call(boiler, "turnOn")
    fibaro.debug("","zapinam")
else
    fibaro.call(boiler, "setHeatingThermostatSetpoint", 15)
    --fibaro.call(boiler, "turnOff")
    fibaro.debug("","vypinam")
end

21 Komentáre

  • Bogdan C

    Bogdan C 16.10.2023 Odpovedať

    Greetings guys,
    Thank you for the LUA script and for detailed information. Instead using Fibaro Relay Switch I used A Fibaro Smart Implant and worked perfectly.
    Thank you again.
    Good job, you deserve it!
  • Jakub Martínek

    Jakub Martínek 01.12.2021 Odpovedať

    Zdravím, používám HC3L+FIBARO hlavice a skript od "YATUN" podpory. Jaký by mohl být rozdíl od Vašeho skriptu?
    V komentářích jsem četl dotaz na maximální otevření hlavice (Juro 22.10.2021). Např. podle skriptu YATUN se sice pošle signál relé při poklesu teploty na požadovanou a relé pustí kotel ale hlavice která poslala signál se neotevře takže radiátor který má topit zůstane studený. Čekal bych že se hlavice otevře na maximum nebo na požadovanou teplotu +3°C dokud nedojde k "natopení" místnosti a pak se opět uzavře.
    Dá se na to nějak lehce napsat/upravit skript?
    Díky za rady!

    ODKAZ NA APLIKACI:
    https://podpora.yatun.cz/cs/support/solutions/articles/9000200372-automatick%C3%A9-sepnut%C3%AD-kotle-rychl%C3%A1-aplikace
    • SmarterHOME Team

      SmarterHOME Team 02.12.2021 Odpovedať

      Dobrý deň,
      momentálne neposkytujeme služby LUA skriptovania kvôli vyťaženosti.
      Hlavice sa riadiaca svojou internou logikou takže tá sama hlavica vyhodnocuje ako veľmi je otvorená za touto logikou stojí FIBARO.
      Tento skript len porovnáva nameranú a nastavenú teplotu.
      Pekný deň.
      SmarterHOME
  • Petr Patočka

    Petr Patočka 18.11.2021 Odpovedať

    Rád bych se zeptal, proč používat hodnoty teplot a né požadavek hlavive na dodávku tepla?

    U nového firmwaru, při změně parametrů, to hlavice umí předávat a pak použít podmínu

    if fibaro.getValue(toID[i], "heatRequired") then

    Mě to třeba jako teplotu při zapnutém ventilu ukazuje divně velikou. Zatím jsem ve fázi příprav, tak nevím co bude lepší.

    Díky.
    • SmarterHOME

      SmarterHOME 22.11.2021 Odpovedať

      Dobrý deň,
      môžete pri FIBARO hlaviciach používať aj
      if fibaro.getValue(toID[i], "heatRequired") then
      Avšak nie vždy sa to správalo korektne. Treba odskúšať čo Vám bude fungovať lepšie.
      Pekný deň.
      SmarterHOME
  • Juro

    Juro 22.10.2021 Odpovedať

    Dobrý deň,

    Chápem to dobre, že pri tom to LUA skripte ak príde k stavu ,že nameraná hodnota na snímači v jednej zmiestností bude nižšia ako nastavená na termostatickej hlavice následne skript spustí kotol a hlavica v danej miestnosti sa otvorí na maximum a v ostatných miestnostiach kde netreba kúriť sú hlavice uzavreté? Jedná sa mi o to či termostatická hlavica bude otvorená po celú dobu zopnutia kotla len v danej miestnosti.

    Ďakujem
    • SmarterHOME Team

      SmarterHOME Team 03.11.2021 Odpovedať

      Dobrý deň,
      skript funguje v princípe veľmi jednoducho a to tak, že porovnáva nastavenú teplotu na hlaviciach a nameranú teplotu v danej miestnosti.
      Keď je čo i len na jednej hlavici nastavená teplota vyššia ako nameraná v danej miestnosti - kotol beží.
      Pekný deň.
      SmarterHOME
  • Petr Dvořák

    Petr Dvořák 19.09.2021 Odpovedať

    Dobrý den, potřeboval bych do kódu vložit ještě podmínku (čerpadlo spustit jen tehdy když je teplota aku nádoby nad 40°C .Prosím o nasměrování kam a co vložit. Děkuji..
    • SmarterHOME Team

      SmarterHOME Team 14.10.2021 Odpovedať

      Dobrý deň,
      taká podmienka vyzerá nasledovne:

      if ( fibaro.getValue(ID_AKU_NADOBY, "value") nahradit znamienko väčšie ako 40 ) then
      ...
      end

      Len tento kúsok LUA kódu, treba správne umiestniť.
      Pekný deň.
      SmarterHOME
  • Petr

    Petr 12.02.2021 Odpovedať

    Dobrý den,
    použil jsem výše uvedený kód (řízení kotle pomocí relé modulu) a fungoval bezvadně do chvíle, než z mnou neznámého důvodu se přestala načítat hodnota z jednoho teploměru. Pak se relé nesepne. Jde tohle nějak ošetřit? Je to stejný případ, jako kdyby se rozbil teploměr, vybila se baterka apod.
    Děkuji
    • SmarterHOME Team

      SmarterHOME Team 13.02.2021 Odpovedať

      Dobrý deň,
      ďakujeme za dotaz.
      Ošetriť sa dá veľa vecí - napíšte nám prosím na podpora@smarterhome.sk a dohodneme sa na ďalšom postupe.
      Pekný deň.
      SmarterHOME Team
  • Roman Přichystal

    Roman Přichystal 12.11.2020 Odpovedať

    Bude scéna fungovat i s hlavicemi Danfoss? Po nastavení mám kotel trvale sepnutý bez ohledu na naměřené/nastavené teploty.
    • SmarterHOME Team

      SmarterHOME Team 16.11.2020 Odpovedať

      Dobrý deň,
      príklady sú práve riešené s POPP hlavicami, ktoré sú obdobou Danfoss hlavíc.
      Ak Vám skript nefunguje niečo nemáte správne nastavené.
      Skontrolujte si čím ovládate KOTOL, či relé prvkom alebo Z-Wave termostatom. Podľa toho aplikujte patričný LUA skript.
      Ďakujeme za pochopenie.
      Pekný deň.
  • Petr

    Petr 04.10.2020 Odpovedať

    Dobrý den,
    není v tom Actions LUA kódu chyba?

    První IF porovnává cílovou a aktuální teplotu (pro každou zónu). Pokud není stejná, přichází druhé IF, které testuje, zda je aktuální nižší než cílová. Jenomže v prvním IF je ELSE, které se vykoná, když cílová teplota rovná se aktuální. V tom případě vypne kotel a nastaví FLAG na 0.

    Proč ale vypínat kotel, pokud neprošly všechny srovnání na všech zónách (celý cyklus FOR)? Dle mého by celý blok za ELSE tam být neměl. Rozhodnutí, zda vypnu či ne by mělo být na základě celého cyklu FOR. Jestliže výchozí hodnota FLAG je 0, tak jakákoliv změna na 1 má mít za následek zapnutí kotle na závěr.

    Pokud by totiž v poslední testované zóně byla teplota dosažena a FLAG nastaven na 0, závěrečný test by vypl kotel, i když předchozí zóny by třeba neměly teplotu dosaženu.

    Čistší by navíc asi i bylo, kdyby ty 2 první IF byly spojeny do jedné podmínky, IF je aktuální nižší než cílová THEN FLAG = 1.

    Po konci FOR otestovat, jak je uvedeno v kódu, a vypnout nebo zapnout kotel.
    • SmarterHOME Team

      SmarterHOME Team 05.10.2020 Odpovedať

      Dobrý deň,
      ďakujeme za poznámku a tip.

      Máte pravdu, uvedený LUA kód sa dá vylepšiť ako popisujete. Článok aktualizujeme.

      Pekný deň.
      SmarterHOME Team
  • Martin

    Martin 27.09.2020 Odpovedať

    Dobry den

    Vie to spolupracovat aj s bezdrotovym termostatom saswell t19 rf ?
    Tento termostat funguje na frekvencii 868 Mhz, FSK
    Ja pouzivam tento termostat k elektrokotlu v rodinom dome.
    Pouzivam ho v referencnej miestnosti, no keby som si dokupil inteligentne radiatorove hlavice, trebats do izieb kde spime a nastavim ich na nizsiu teplotu ako v referencnej izbe tak tie hlavice sa mi vypnu a kotol pojde dalej kym nedosiahne teplotu nastavenu na termostate ?

    Da sa to pouzit aj v drevosplynovacich kotloch, trebars ci je nejake cidlo co mi ukazuje teplotu vody v AKU nadrzi, aby som trebars nemusel chodit pozerat do kotolne na nadrz, ci som ju nejako neprehrial, popripade ci bu to vedelo nejako emergency spustit obehove cerpadlo keby bola nadrz prehriata a to aj v pripade, ze je teplota v domacnosti na pozadovanej urovni a tym padom obedove cerpadlo je odstavene

    Dakujem
    • SmarterHOME Team

      SmarterHOME Team 28.09.2020 Odpovedať

      Dobrý deň,
      ďakujeme za dotaz.

      Momentálne FIBARO HC3, nepodporuje uvedený termostat Saswell T19 7 RF, možno v budúcnosti keď pribudne podpora 868 MHz zariadení s otvoreným protokolom. Tento termostat môžete vymeniť za Z-Wave termostat.

      Ak by ste mali Z-Wave termostat a hlavice, tak ak by v nejakej izbe bola potreba kúriť tak kotol je stále zopnutý, ak by všetky hlavice hlásili, že už sú miestnosti vykúrené tak kotol je vypnutý.

      Čo sa týka drevosplyňovacích kotlov, tak teplotu vody v AKU nádrži viete monitorovať napr. modulom

      Qubino Flush 1D Relé Plus [ZMNHND1]
      https://smarterhome.sk/sk/zwave-bezdrotove-vypinace/qubino-flush-1d-rele-plus-zmnhnd1-202.html?search_query=qubino+1D&results=20

      a teplotným senzorom Qubino Teplotný Senzor ZMNHEA1
      https://smarterhome.sk/sk/kurenie/qubino-teplotny-senzor-zmhnea1-212.html?search_query=qubino+1D&results=20

      Obehové čerpadlo by sa mohlo riešiť ďalším Z-Wave relé modulom.

      Ďakujeme za pochopenie.
      Pekný deň.

      SmarterHOME Team
  • Juraj

    Juraj 03.08.2020 Odpovedať

    Dobrý den,
    mám jeden "teoretický" dotaz. Když vidím výše uvedené nastavení, tzn. že pro každou zónu (hlavice/radiátor) nastavím teploty a časy, k čemu je pak dobré mít v systému termostat?

    Napadá mě jen optimalizace díky najakému algoritmu, který na základě sběru dat optimalizuje okamžiky a délky spínání.

    Nebo mi uniká něco dalšího? Ta optimalizace algoritmem ale stejně bude fungovat jen v zóně, ve které je ten termostat, ne? Nebo díky centrále HC3 a provázanosti všech prvků se optimalizují pak všechny zóny?

    Díky moc za osvětlení problematiky.
    • SmarterHOME Team

      SmarterHOME Team 04.08.2020 Odpovedať

      Dobrý deň,
      algoritmus robí to, že porovnáva nastavenú teplotu na hlaviciach s nameranou teplotou na hlaviciach.

      Na základe toho ak ešte niektorá z hlavíc kúri, tak kotol ovládaný buď relé modulom alebo termostatom ešte beží, ak však sú všetky miestnosti vykúrené a hlavice sú zatvorené (nastavená teplota na všetkých hlaviciach osobitne je nižšia ako nameraná teplota) tak sa kotol na ohrev vody vypne pomocou buď relé modulu alebo termostatu.

      Pekný deň.
      SmarterHOME
      • Juraj

        Juraj 04.08.2020 Odpovedať

        Díky za reakci.
        To, co píšete, to dělá ten výše uvedený LUA script.

        Ale mě zajímá, k čemu je výhodné (či nutné) pak mít v systému zapojený ještě termostat (pokud spínání kotle dělá relé na základě toho LUA scriptu)? Je vůbec nutný a případně proč?
        • SmarterHOME Team

          SmarterHOME Team 05.08.2020 Odpovedať

          No práve preto sú tam 2 prípady.
          Niekoľko z našich zákazníkov už kotol ovládali priamo Termostatom, ktorý mal v sebe relátko.
          Ak máte na kotli len relé, termostat Vám netreba.

          Pekný deň.
          SmarterHOME

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

Vyhledávání v blogu

Najnovšie názory

Naposledy prohlížené

Žádné produkty

Menu

Porovnat 0