Zone heating in the Fibaro system

Zone heating in the Fibaro system

Zone heating

In these instructions we will show you how to control the boiler relay for the central heating of water in radiators using the so-called zone heating. This means that the boiler relay is unlinked and the boiler will not heat water if the required temperature is reached in the particular rooms. The boiler will be switched on until the the real room temperature is lower than the set temperature in the thermostatic head of the radiator in at least one room.

To achieve this you need the following in the rooms you want to control:

Warning: These instructions are for inspiration, you yourself have to make the decision. The author is not responsible for the possible failures.

Zone heating for particular rooms (zones) using the Z-Wave thermostatic heads

In this part the instructions focus on the setting of tempertures in the particular zones (rooms). The temperature setting in the given zone is carried out by the Z-Wave thermostatic head on the radiator fan in the particular room.

Heating panel

In its panels the Fibaro system offers the "Heating panel" in which you can nicely and neatly define the temperatures for the particular parts of the day in accordance with a schedule. For each day you can choose different temperatures or use one schedule for more or all days.

Click Panels -> Heating panel. Add a new zone with for example the name of the room to which it is assigned to, in our case it is SH ShowRoom.

Zonove kurenie Fibaro

After clicking the Add button a new page opens where you can define your own temperatures for each day of the week.

Zonove kurenie Fibaro

After setting the schedule it is necessary to assign this schedule to the selected room, on the left you can see the "List of zones" where we can see the zone created by us. Click the "pencil" and this allows you to add the scene to the room.

Note: You can assign one schedule to each room or you can create your own room with optional temperatures for each room separately.

Zonove kurenie Fibaro

Finally, it is necessary to set the central thermostat for the room so that it is controlled according to the heating zone defined above. Click the "Rooms" panel. Click the setting of the selected room and at the "central thermostat" item you can select the particular head located in the given room.

Note: Do not forget to select a different head for the particular rooms.

Zonove kurenie Fibaro

Zonove kurenie Fibaro

LUA Script for switching the boiler relay

After you have set the particular zones you can create the LUA script to control the boiler realys. The LUA script will continuously run in a loop and it will control the real temperature in the given room and the set temperature for the given room that had been defined using the "Heating panel".

Logic of the LUA Script

The logic of the script is very simple, it is about the comparison of the real temperature measured by some thermal sensor in the given room with the temperature set on the thermostat head using the "Heating panel" for the given room. If at least in one room the real temperature is lower that it is necessary, the boiler will always be switched on.

You can find out the ID of the device if you click its settings - designation of the ID.

Change the Wake-Up intervals of the thermostatic heads to 300 seconds. And then push the button with a dot on the head - to save the setting.

Zonove kurenie Fibaro

Exampe with a traditional realy on the thermostat

As a separate relay you can use:

LUA Script

The necessary changes that must be carried out in the Script are described in the comments. Before the start you should see the entire scene.

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

if (fibaro:countScenes()>1) then 
fibaro:debug('Ukonči druhú scénu!'); 
fibaro:abort(); 
end 

local boiler = tonumber(fibaro:getValue(1019, "value")) -- Cislo 1019 nastavte na ID tvojho kotloveho relatka.
fibaro:debug('Stav relé na kotli: ' ..boiler);

-- jednotlive ID hlavic (cervene cislo) a senzorov musite zmenit za vase ID
while true do
  
  -- Termostaticke hlavice, ak vas pocet je vacsi skopirujte 2 riadky upravte na temp4 zmente prislusne ID
  local temp1 = tonumber(fibaro:getValue(1096, "value")); -- Danfoss hlavica ShowRoom, nastavena teplota
  fibaro:sleep(1000); -- 1s uspatie, pauza
  local temp2 = tonumber(fibaro:getValue(82, "value")); -- Danfoss hlavica ...
  fibaro:sleep(1000);
  local temp3 = tonumber(fibaro:getValue(84, "value")); -- Danfoss hlavica ...

  -- Teplotne senzory, ak vas pocet je vacsi skopirujte 2 riadky upravte na temp40 zmente prislusne ID
  local temp10 = tonumber(fibaro:getValue(992, "value")); -- Teplotny senzor ShowRoom
  fibaro:sleep(1000);
  local temp20 = tonumber(fibaro:getValue(103, "value")) + 1; -- Teplotny senzor ... s 1 stupnovym offsetom, ktory mozete vymazat
  fibaro:sleep(1000);
  local temp30 = tonumber(fibaro:getValue(72, "value")) + 3.5; -- Teplotny senzor ... s 3.5 stupnovym offsetom, ktory mozete vymazat
  fibaro:sleep(1000); 
  
  
  fibaro:debug('Teploty načítané.');
  
  -- Vypisanie teplot v debugovacom okne, ak ste vyssie pridali hlavicu a senzor tak to treba pridat aj sem, skopirovat riadok a upravit retazec temp
  fibaro:debug('ShowRoom hlavica: ' ..temp1); -- zobrazi sa dole v okne teplota nastavena na hlavici
  --fibaro:debug('... hlavica: ' ..temp2); -- ak chcete vidiet nizsie v okne teploty odstrante komentar a teda odstrante pomlcky
  --fibaro:debug('... hlavica: ' ..temp3);

  fibaro:debug('Teplotny senzor ShowRoom: ' ..temp10);
  --fibaro:debug('Teplotny senzor ...: ' ..temp20);
  --fibaro:debug('Teplotny senzor ...: ' ..temp30);
  fibaro:sleep(1000);
  -- rovnako treba nove hlavice a senzory pridat do porovnavacej podmienky IF 
  if ((temp10 ~= temp1) or (temp20 ~= temp2) or (temp30 ~= temp3))
    then
        fibaro:debug('Bol zistený rozdiel medzi teplotou hlavice a požadovanou teplotou.');    
        if ((temp10 < temp1) or (temp20 < temp2) or (temp30 < temp3))
        then
            if boiler == 0 then
            fibaro:debug('Najmenej v jednej izbe je teplota stále nizka, zapínam bojler.')
            fibaro:call(1019, "turnOn") -- ID cislo rele na kotli
            boiler = 1
            fibaro:debug(boiler)
            else
            fibaro:debug('Bojler už bol zapnutý, nevyžaduje sa ďalšia akcia.')
            end
        else
            if boiler == 1 then
            fibaro:debug('Izbové teploty sú v poriadku, bojler sa vypne.')
            fibaro:call(1019, "turnOff") -- ID cislo rele na kotli
            boiler = 0
            fibaro:debug(boiler)
            else
            fibaro:debug('Bojler už bol vypnutý, nevyžaduje sa ďalšia akcia.')
        	fibaro:debug('Izbové teploty sú v poriadku.')
            end
        end
    end
  fibaro:sleep(300000);
end
  

Example with a Z-Wave replacement for the traditional thermostat

As a Z-Wave replacement for a traditional thermostat you can use:

The only change compared to the above-mentioned example is that, regarding the fact that in this solution it is not possible to directly control the relay in the thermostat, it is necessary to use the "setpoint" = change of the temperature set in the thermostat to switch on/off the boiler. Before the start you should see the entire scene.

Change the Wake-Up interval of the thermostat on the SRT323 device to 300 s in its settings and then wake up the thermostats. To do this you need to switch button 1 on the thermostat to the position ON - upper position. Then the displays shows n and confirm this by pushing the round button.

Before the start of the scene you must set the thermostat to the temperture of 15°C.

Lua Script

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

if (fibaro:countScenes()>1) then 
fibaro:debug('Ukonči druhú scénu!'); 
fibaro:abort(); 
end 

local boiler = tonumber(fibaro:getValue(1098, "value")) -- Cislo 1098 nastavte na ID tvojho kotloveho relatka.
fibaro:debug('Stav relé na kotli: ' ..boiler);

-- jednotlive ID hlavic (cervene cislo) a senzorov musite zmenit za vase ID
while true do
  
  -- Termostaticke hlavice, ak vas pocet je vacsi skopirujte 2 riadky upravte na temp4 zmente prislusne ID
  local temp1 = tonumber(fibaro:getValue(1096, "value")); -- Danfoss hlavica ShowRoom, nastavena teplota
  fibaro:sleep(1000); -- 1s uspatie, pauza
  local temp2 = tonumber(fibaro:getValue(82, "value")); -- Danfoss hlavica ...
  fibaro:sleep(1000);
  local temp3 = tonumber(fibaro:getValue(84, "value")); -- Danfoss hlavica ...

  -- Teplotne senzory, ak vas pocet je vacsi skopirujte 2 riadky upravte na temp40 zmente prislusne ID
  local temp10 = tonumber(fibaro:getValue(992, "value")); -- Teplotny senzor ShowRoom
  fibaro:sleep(1000);
  local temp20 = tonumber(fibaro:getValue(103, "value")) + 1; -- Teplotny senzor ... s 1 stupnovym offsetom, ktory mozete vymazat
  fibaro:sleep(1000);
  local temp30 = tonumber(fibaro:getValue(72, "value")) + 3.5; -- Teplotny senzor ... s 3.5 stupnovym offsetom, ktory mozete vymazat
  fibaro:sleep(1000); 
  
  
  fibaro:debug('Teploty načítané.');
  
  -- Vypisanie teplot v debugovacom okne, ak ste vyssie pridali hlavicu a senzor tak to treba pridat aj sem, skopirovat riadok a upravit retazec temp
  fibaro:debug('ShowRoom hlavica: ' ..temp1); -- zobrazi sa dole v okne teplota nastavena na hlavici
  --fibaro:debug('... hlavica: ' ..temp2); -- ak chcete vidiet nizsie v okne teploty odstrante komentar a teda odstrante pomlcky
  --fibaro:debug('... hlavica: ' ..temp3);

  fibaro:debug('Teplotny senzor ShowRoom: ' ..temp10);
  --fibaro:debug('Teplotny senzor ...: ' ..temp20);
  --fibaro:debug('Teplotny senzor ...: ' ..temp30);
  fibaro:sleep(1000);
  -- rovnako treba nove hlavice a senzory pridat do porovnavacej podmienky IF 
  if ((temp10 ~= temp1) or (temp20 ~= temp2) or (temp30 ~= temp3))
    then
        fibaro:debug('Bol zistený rozdiel medzi teplotou hlavice a požadovanou teplotou.');    
        if ((temp10 < temp1) or (temp20 < temp2) or (temp30 < temp3))
        then
            if boiler == 15 then
            fibaro:debug('Najmenej v jednej izbe je teplota stále nizka, zapínam bojler.')
            fibaro:call(1098, "setThermostatSetpoint", "1", "30") -- ID cislo rele na kotli
            boiler = 30
            fibaro:debug(boiler)
            else
            fibaro:debug('Bojler už bol zapnutý, nevyžaduje sa ďalšia akcia.')
            end
        else
            if boiler == 30 then
            fibaro:debug('Izbové teploty sú v poriadku, bojler sa vypne.')
            fibaro:call(1098, "setThermostatSetpoint", "1", "15") -- ID cislo rele na kotli
            boiler = 15
            fibaro:debug(boiler)
            else
            fibaro:debug('Bojler už bol vypnutý, nevyžaduje sa ďalšia akcia.')
        	fibaro:debug('Izbové teploty sú v poriadku.')
            end
        end
    end
  fibaro:sleep(300000)
end
  

Conclusion: After the start the scene will be repeated in a 5-minute cycle.

19 Comments

  • Vlado

    Vlado 10.12.2018 Reply

    Dobrý den,
    Mám takový dotaz:
    Už vlastním HC2, a zdá se (k mému nemilému překvapení) že je stále potřeba řešit sepnutí tímto skriptem.
    Rozhoduji se, jaké hlavice koupit, momentálně jsou favority danfoss a fibaro, a u hlavic fibaro udávají, že při otevření okna se na půl hodiny hlavice vypne (to se mi líbí). V případě vašeho skriptu, zejména, je-li teplota zóny kontrolovaná čidlem, by pak běžel kotel tuto půlhodinu naprázdno. Lze nějak načíst z hlavice fibaro, je-li otevřená, a v případě že není (když se vypne otevřením okna) přidat do skriptu takovou podmínku? (dovedu si představit ještě jedno if/else v případě, že na oknech je senzor otevření, ale nevím, jestli to jde nějak u popisované situace s hlavicemi fibaro.

    Díky, Vlado O.
    • SmarterHOME Team

      SmarterHOME Team 18.12.2018 Reply

      Dobrý deň,
      ďakujeme za dotaz.
      Najjednoduchšie Vo Vašom prípade by bolo doplnenie skriptu o ďalšiu podmienku, či sú okná otvorené alebo zatvorené a podľa toho dodatočne regulovať teplotu na hlaviciach a poprípade tým pádom spínať kotol.

      Otázkou je ešte ako sa správa kotol, keď nemá požiadavku z radiátorov na teplú vodu. Resp. či v tomto prípade nepomôže vnútorná logika kotla.

      Pekný deň.
  • Marek Líbal

    Marek Líbal 07.11.2018 Reply

    Dobrý den,
    Použil jsem Váš Lua Skript na ovládání relé k topení. Vše funguje skvěle, akorát se scéna sama nespustí a musí se spustit ručně. V čem může být problém? Děkuji za odpověď.
    • SmarterHOME Team

      SmarterHOME Team 14.11.2018 Reply

      Dobrý deň,
      ďakujeme za dotaz.
      Scéna sa prvý krát musí spustiť manuálne a potom beží v nastavených intervaloch v slučke.
      Pekný deň.
  • Michal Parkos

    Michal Parkos 13.01.2018 Reply

    Dobrý den,
    pužívám Vás první LUA script, fungeje perfektne, ale nedokáže sepnout SSR303. Když ho ve scriptu nahradím čímkoliv jiným, funguje, když tam vrátím zpět SSR303, script má rele za stále sepnuté.
    Děkuji za pomoc
    Michal Parkos
    • SmarterHOME Team

      SmarterHOME Team 16.01.2018 Reply

      Dobrý deň,
      ďakujeme za dotaz.

      Ak na spínanie kotla nepoužívate nejaký Z-Wave relé modul ako je Fibaro Single Switch 2 ale práve Vami spomenutý Secure SSR303 treba LUA skript mierne upraviť.
      Úprava spočíva v tom, že na zapnutie/vypnutie modulu Secure SSR303 sa v LUA jazyku použitom vo Fibaro HC2 používajú inak definované funkcie.

      Nasledujúce riadky v LUA skripte:
      fibaro:call(1019, "turnOn") -- namiesto 1019, uvedte ID cislo rele na kotli (zapnutie kotla)
      fibaro:call(1019, "turnOff") -- namiesto 1019, uvedte ID cislo rele na kotli (vypnutie kotla)

      Nahraďte s týmito:
      fibaro:call(1019, "setMode", "1") -- namiesto 1019, uvedte ID cislo SSR303 pripojeneho na kotli (zapnutie kotla)
      fibaro:call(1019, "setMode", "0") -- namiesto 1019, uvedte ID cislo SSR303 pripojeneho na kotli (vypnutie kotla)

      V prípade ďalších otázok nás neváhajte kontaktovať.

      Prajeme príjemný deň.
      Váš SmarterHOME
      • Michal Parkos

        Michal Parkos 16.01.2018 Reply

        Dobrý den,
        moc děkujem za rychlou dopved, ale bohužel se to chova stejně.
        Na konci se obejví hláška: Bojler už bol zapnutý, nevyžaduje sa ďalšia akcia
        Boiler je ale vyponutý. Stav relé na kotli je: 255

        Děkuji za pomoc

        Michal
        • SmarterHOME Team

          SmarterHOME Team 17.01.2018 Reply

          Dobrý deň,
          prosím pošlite nám Vašu scénu v textovom súbore na email - info@smarterhome.sk

          Scénu prešetríme, či sa v nej nenachádza nejaká syntaktická chyba.
          Následne zverejníme riešenie aj sem do odpovedí k článku.

          PS: Otázka na Vás používate zariadenie Secure SSR303 v systéme Fibaro samostatne alebo v spolupráci s termostatom napr. Secure SRT321 ?

          SmarterHOME
          • SmarterHOME Team

            SmarterHOME Team 22.01.2018 Reply

            Riešenie pri samostatnom použití SSR303 na ovládanie bojlera.

            Stačilo zmeniť nasledovný riadok:

            Nový riadok
            local boiler = tonumber(fibaro:getValue(1098, "mode")) -- Cislo 1098 nastavte na ID tvojho kotloveho relatka.
            fibaro:debug('Stav relé na kotli: ' ..boiler);

            Starý riadok
            local boiler = tonumber(fibaro:getValue(1098, "value")) -- Cislo 1098 nastavte na ID tvojho kotloveho relatka.
            fibaro:debug('Stav relé na kotli: ' ..boiler);
  • jan

    jan 30.12.2017 Reply

    Dobry den
    chcem sa spytat ci je naozaj potrebny takyto rozsiahli LUA script?
    dufal som ze ked nastavim v heat panely pozadovany schedule kurenia, a naparujem termostaticke hlavice, a urcim relatko na spinanie kotla, tak vdaka heat panelu by to mal sam regulovat a spinat podla potreby jednotlivych hlavic. alebo nie?
    jednoducho nastavena teplota v izbe c1, hlavica meria teplotu, a ak je teplota nizsia nez nastavena v heat panely, tak system tuto zmenu detekuje, da pokyn boiler receiveru / relatku aby zopol kotol a bude kurit az kym sa teplota nedostane na pozadovanu hodnotu.
    alebo tak to nefunguje???
    dakujem za odpoved
    JD
    • SmarterHOME Team

      SmarterHOME Team 02.01.2018 Reply

      Dobrý deň,
      v momentálnej a popísanej situácii v článku je takýto LUA skript stále potrebný.
      Samozrejme situáciu môžete riešiť aj inak napríklad centrálnym termostatom alebo centrálnym teplotným senzorom, ktorý bude priamo prepojený s relátkom napojeným na kotol.
      Ak však chcete mať vypnutý kotol až po dosiahnutí teploty v každej izbe a kotol nemá funkciu detekcie všetkých uzavretých ventilov na radiátoroch, tak takýto prístup pomocou LUA skriptu je v riadiacej jednotke Fibaro Home Center 2, momentálne jediný možný. Možno v budúcnosti v nejakej aktualizácii výrobca Fibaro implementuje túto funkcionalitu priamo do systému.
      Prajeme príjemný deň.
      SmarterHOME Team
      • Martin Preiss

        Martin Preiss 05.10.2018 Reply

        Dobry den, jaka je situace s Fibaro Heat Controller (Fibaro Thermostat) + Heat Panel + Linked Devices? Stale je treba mit tento skript?
        • SmarterHOME Team

          SmarterHOME Team 12.04.2020 Reply

          Dobrý deň,
          ďakujeme za dotaz.

          No ak chcete na základe porovnávania - dosiahnutia teplôt nastavených na hlaviciach/termostatoch a nameraných teplotách v jednotlivých miestnostiach, riadiť kotol/bojler pomocou relátka alebo termostatu, tak áno je potrebné použiť tento skript.

          Ďakujeme za pochopenie.
          Pekný deň.

          SmarterHOME Team
  • Martin

    Martin 17.08.2017 Reply

    dakujem za odpoved.
    Na strankach zipata som uz nasiel nejake namety ako spravit viaczonove kurenie. Virtual thermostat vie denne/nocne/dovolenkove programy, ale je mozne, ze budem potrebovat thermostat pro, takze aj PRO licenciu.
    Este potrebujem zistit, aky spinac budem potrebovat na ten kotol. Viete mi poradit?
    Martin
    • SmarterHOME Team

      SmarterHOME Team 24.08.2017 Reply

      Dobrý deň,
      plynový kotol je väčšinou spínaný nato určeným stykačom, overte si ako je to vo Vašom prípade. Následne je takýto stykač možné ovládať napr. relé FIBARO SINGLE SWITCH 2 (FGS-213), resp. SECURE HRT BOILER ACTUATOR (RECEIVER).
      Prajeme príjemný deň.
  • Martin

    Martin 15.08.2017 Reply

    Dobry den,
    potrebujem poradit s navrhom pre zonove kurenie. Mam plynovy kotol s ohrevom TUV Buderus GB022-24/24K ovladanie buderus v obyvacke, ktora je referencna. Po novu by som chcel mat navyse moznost riadit aj teplotu v jednej detskej izbe. V obyvacke je krb, ktoreho beh teraz vypne kotol. Do obyvacky planujem dat dve hlavice POPP a jednu do detskej. Teplota na hlavici bude nastavovat teplotu v miestnosti, v obyvacke by bolo dobre aby sa synchronizovali. Hlavice zaroven hlasia teplotu. Kotle buderus maju vlastnu zbernicu EMS, ktora sa neda ovladat cez z-wave, ale mal by sa dat pripojit rele spinac a ovladat ho ako on/off. Zohrievanie TUV by mal potom riadit nezavisle kotol. Ovladaciu jednotku mam Zipato.
    Bude to takto fungovat? Teda, ze rele bude spustat kotol, ked bude v jednej z miestnosti namerana mensia teplota ako nastavena?
    dalej, pojde:
    - termostaticke hlavice v obyvacke budu synchronizovane
    - naprogramovat teplotne rezimy na den/noc/vikend (pre obe miestnosti zvlast, ale nemusi to byt nutne)
    - bude mozne cez mobil jednoducho zapnut rezim dovolenka/sviatok
    Ktore rele je na to vhodne?

    dakujem,
    Martin
    • SmarterHOME Team

      SmarterHOME Team 17.08.2017 Reply

      Dobrý deň,
      Vami požadované ovládanie je čiastočne možné realizovať v Rule Creator-e (Zipato jednotke) a teda priamo závisí od možností tohto Creatora.
      Nakoľko takúto jednotku vlastníte môžete si vyskúšať čo takýto Puzzle Creator dokáže.
      Synchronizácia hlavíc by sa dala urobiť jednoduchým pravidlom. Spínanie relé taktiež aj keď bude potrebné pravdepodobne využiť premenné, ktoré sú dostupné až v PRO licencii. Na koľko by ste chceli naprogramovať denné programy a dovolenkové režimy bohužiaľ budete potrebovať PRO licenciu pre riadiacu jednotku Zipato - viac informácii nájdete na tomto linku - https://www.zipato.com/how-it-works/features
      Prajeme príjemný deň.
      • Peter Lendácky

        Peter Lendácky 11.10.2019 Reply

        Dobrý deň,

        akým spôsobom je v tomto prípade riešené zopnutie kotla Buderus ak je v obývačke teplota správna (tzn. termostat Buderus kotol nezopne), ale v detskej izbe je teplota nižšia a je potrebné dokúriť? V návode od kotla som nejak nenašiel miesto, kam by sa malo pripojiť nejaké relé... Ďakujem
        • SmarterHOME Team

          SmarterHOME Team 12.04.2020 Reply

          Dobrý deň,
          ďakujeme za dotaz.

          "Nejaké relé" by sa malo pripojiť na väčšinu prípadov namiesto klasického termostatu (resp. relé časti termostatu aj má termostat 2 časti). Robiť by to mal servisný technik kotla / bojlera. Kotle značky Buderus sú ale špecifické v tom, že na ovládanie používajú eBUS zbernicu (momentálne nemáme v ponuke zariadenie, ktoré vie komunikovať s eBUS). Opýtajte sa dodávateľskej firmy kotla, či je kotol možné riadiť bezpotenciálovým spínaním 2 kontaktov.

          Ďakujeme za pochopenie.
          Pekný deň.

          SmarterHOME Team

Leave a CommentLeave a Reply

Blog search

Latest Comments

Recently Viewed

No products

Menu

Compare 0