FIBARO HC3 LUA: Zone heating No.1 Radiators and boiler

FIBARO HC3 LUA: Zone heating No.1 Radiators and boiler

Zone heating - case - Control of radiators and boiler control based on the heating status of individual rooms

This blog will be dedicated to setting the heating zones in the FIBARO Home Center 3 control panel using the climate panel. Each temperature zone (or in other words a radiator) will be controlled by a thermostatic head on the radiator, the boiler will be switched on if it is necessary to heat in some of the rooms. Otherwise, if the set temperature is reached in all rooms, the boiler will switch off.

After setting the individual zones, we will give an example of the LUA scene, which, based on a comparison of the measured and set temperatures in the room, evaluates whether the boiler should be switched on or vice versa does not need to heat water for the heating system.


What you need when you want to realize this way of heating control:

1. home automation hub - FIBARO Home Center 3
2. Z-Wave radiator head, ideally one that has an external or built-in temperature sensor to measure room temperature - e.g. FIBARO The Heat Controller Starter Pack ZW5 or Popp Heating Thermostat
3. action element for boiler control - either a potential-free relay eg. FIBARO Relay Switch 1x2,5kW (FGS-212) or thermostat with dry relay output eg. SECURE SRT323 Wireless Thermostat


FIBARO Home Center 3 - setting the climate zones in the climate panel

First of all, it is necessary to create appropriate sections (eg 1st floor) and rooms (eg Room 1 - living room, etc.) in the FIBARO Home Center 3. Learn how to create a room at - https://manuals.fibaro.com/home-center-3/#post-14107

Then you need to add Z-Wave devices such as radiator heads and relay / thermostat to control the boiler.

Once these devices have been added, you should move them to the appropriate rooms.

Then go to FIBARO Home Center 3, Settings and click Climate = Climate.
FIBARO HC3 LUA - Zónové kúrenie Radiátory a kotol

After this step, you can have Automatic Temperature Zones created (only for radiator valves). Note: If you are using thermostat for boiler control do not create Temperature Zone for boiler thermostat. In other word, delete temperature zone for boiler thermostat, if FIBARO system had already created one.
FIBARO HC3 LUA - Zónové kúrenie Radiátory a kotol

If you have correctly created Sections and Rooms, zones will be created neatly and correctly without the need for modification. In this step you can intuitively set the temperatures for the given temperature zones in different time schedules.
FIBARO HC3 LUA - Zónové kúrenie Radiátory a kotol


FIBARO Home Center 3 - explanation of LUA boiler control script based on radiator head demand

In the FIBARO Home Center 3 Settings, select Scenes and add a LUA scene to which you copy the content below, depending on whether you are using:
- 1st boiler control by potential-free relay module - FIBARO Relay Switch 1x2,5kW (FGS-212)
- 2. boiler control by thermostat with dry relay output eg. SECURE SRT323 Wireless Thermostat

Copy both LUA scene blocks Left block = DECLARATIONS (Conditions/Triggers) and Right blok = ACTIONS

Nothing needs to be changed in the left block = DECLARATIONS (Conditions / Triggers). It works to trigger a scene every 5 minutes (300s). In line 9, you can change the scene start interval to longer / shorter as needed.

In the right block = ACTIONS, you need to change rows 1,2,3. Do not change other rows. In the 1st row, enter the ID of the device that measures the temperature in each room. E.g. temperature sensors of thermostatic / radiator heads. Separate devices with commas, beware, because device IDs must be in the same order on the second line. Example below.

In line 2, enter the ID of the device that sets the room temperature. These are radiator head devices. Separate devices with commas, beware because device IDs must be in the same order as the first line. Example below.

In the 3rd row, enter the ID of the control element for boiler control - either a potential-free relay eg. FIBARO Relay Switch 1x2,5kW (FGS-212) or thermostat with dry relay output eg. SECURE SRT323 Wireless Thermostat

 

local fromID = {22,28} -- Temperatures sensor (Measured temperatures)
local toID = {21,27} -- Radiator thermostats (Set temperatures / Setpoints)
local boiler = 33 -- Relay / Thermostat for boiler control

ID 22 corresponds to the temperature sensor in Room 1 - e.g. Living room
ID 21 corresponds to the radiator head in Room 1 - e.g. Living room

ID 28 corresponds to the temperature sensor in Room 2 - e.g. The kitchen
ID 27 corresponds to the radiator head in Room 2 - e.g. The kitchen


How do I find out the ID of each device?

In Settings panel Devices = Devices - you can see a list of all devices added to FIBARO Home Center 3 and system markings called IDs belonging to these devices, which are often used in LUA scenes.
FIBARO HC3 LUA - Zónové kúrenie Radiátory a kotol

 


1. FIBARO Home Center 3 - LUA script for boiler control by relay module eg. FIBARO Relay Switch 1x2.5kW (FGS-212)

Left block = DECLARATIONS (Conditions/Triggers)

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

Right block = ACTIONS

local fromID = {22,28} -- Temperatures sensor (Measured temperatures)
local toID = {21,27} -- Radiator thermostats (Set temperatures / Setpoints)
local boiler = 33 -- Relay for boiler control
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 script for boiler control by thermostat eg. SECURE SRT323 Wireless Thermostat

Left block = DECLARATIONS (Conditions/Triggers)

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

Right block = ACTIONS

local fromID = {22,28} -- Temperatures sensor (Measured temperatures)
local toID = {21,27} -- Radiator thermostats (Set temperatures / Setpoints)
local boiler = 30 -- Thermostat for boiler control
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

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

Vyhľadávanie v blogu

Najnovšie názory

Recently Viewed

No products

Menu

Compare 0