Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,


as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.


As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!



Smart Home Forum by FIBARO Team

TRV Boost 1.0.0

   (0 reviews)

1 Screenshot

About This File

Purpose: Fully open the radiator valves in order to heat up the rooms more quickly.



One of the problems that I have with my Danfoss radiator valves is that they do not seem to fully open when required.  For example, I have a radiator in a very cold room, which, let's say the room temperature is 10°C and I've set the TRV to 15°C, then the valve barely opens and as a result, the room doesn't reach the target temperature.  It's almost as though the TRV isn't taking into account the current room temperature when determining how far to open the valve.  There only seems to be a direct correlation between the target temperature and the valve opening.  So for example, when the target temperature is 15°C then the valve is only open slightly, at 21°C then it's open half-way, and at 28°C it's fully open.


I want my rooms to heat up as quickly as possible when they need heat so I created this scene to monitor the room temperatures and control the valve opening as appropriate in order to fully open the valves when needed.  When the room temperature is below a certain threshold lower than the heating panel zone temperature, then the valve target temperatures are boosted to 28°C in order to fully open them.  Once the room temperatures are close to reaching the required zone temperature, then the valve temperatures are returned to normal.


Setup required:

  • Boost Temperature

Set this to the temperature which causes the valves to fully open.

local boostTemp = 28


  • Boost Duration

The maximum number of minutes that the valve target temperature will be boosted for.  This should not need changing.  Once the room has reached the desired temperature then the boost will be turned off.  If the room has not reach the desired temperature within this duration, then the boost will be turned on again.

local boostDuration = 120


  • Turn on Threshold

The temperature below the target room temperature defined in the Heating Panel Zone which will cause the TRV to go into boost mode.

local turnOnTrigger = 0.7


  • Turn off Threshold

The temperature below the target room temperature which will cause the TRV to return to normal mode.  We want to try to prevent overshoot as much as possible, so the boost mode is turned off before the desired room temperature has been reached.  If your rooms heat up quickly, then you might want to increase this value.

local turnOffTrigger = 0.3


  • Valve device types

The list of device types that are used to identify the TRV valves.

local valveTypes = {"com.fibaro.thermostatDanfoss", "com.fibaro.setPoint", "com.fibaro.FGT001"}


The device types can be found via the Fibaro API, eg: http://<Fibaro IP Address>/api/devices/123 where 123 is the device ID, or via the API documentation portal at http://<Fibaro IP Address>/docs/#!/devices/getDevice.  The device type can be found in the response message:

  "id": 123,
  "name": "Radiator Valve 1",
  "roomID": 4,
  "type": "com.fibaro.thermostatDanfoss",
  "baseType": "com.fibaro.hvac",
  "enabled": true,
  "visible": true,
  "isPlugin": false,
  "parentId": 129,
  "remoteGatewayId": 0,
  "interfaces": [

If you are not able to use the device types in order to identify your valves, then you can define a list:

local valveIDs = {123,234,345,876}

And then remove the following code which builds the list of device IDs:

-- Get the list of TRV Ids using the list of types
-- If non-TRV devices are returned then more filtering may be required
-- or a hardcoded list of ids can be used.
local valveIDs = {}
for i, valveType in pairs(valveTypes) do
  local valveIDs1 = fibaro:getDevicesId({type = valveType, enabled=true, visible=true})
  --print(valveType .. "  " .. json.encode(valveIDs1))
  valveIDs = array_concat({valveIDs, valveIDs1})


This scene needs to be triggered to run every few minutes using a timer scene.  If you do not have one, then take a look at this scene or search for one in the downloads area of the forum:


  • Like 1

Other Files from Dave_H

User Feedback

You may only provide a review once you have downloaded the file.

There are no reviews to display.

  • Create New...