Simple heating system

499 views
Skip to first unread message

DavidL

unread,
Nov 28, 2019, 5:26:10 AM11/28/19
to Loxone English
Morning all.

I have a customer who is struggling to get to grips with the way the Loxone intelligent room controller is working.
They used to have a fairly standard heating set up, boiler controlled by a thermostat and timer.

In the interests of keeping them happy, I'm looking at a way to mimic that more traditional set up. I can set up a schedule block easily enough, with a way to adjust the temperature required, albeit via two options within the app. But I was wondering if anyone else has done something similar, and introduced any interesting ways to be able to offer an away mode and frost protection?
I'm sure I could cobble something together, but its always interesting to see if this has been approached from another angle by someone else.

Thanks!

David

Andras

unread,
Nov 28, 2019, 6:47:43 AM11/28/19
to loxone-...@googlegroups.com
I have setup mine the following way:

  • "default" Comfort/InUse temperature set by a virtual input, so it can be altered on the UI, no need for Config for changing it
  • I have defined a regular schedule for the room controllers according to our needs (schedule is switching between InUse and NotInUse)
  • I have an operating mode called "Away", which is added to room controllers with a high priority and set up for all day as "Not in use"
    • TaMin and TaMax parameters control what is the temperature relative to TComfort in Away mode
  • I have an operating mode called "Far Away", which is also added to room controller with the highest priority and set up for all day as "Off"
    • TMin parameter controls what is the temperature in this frost protection setting 
  • I have a button (on the UI, but could be a physical button as well) named "I'm cold" which upon press changes the room controller mode to manual and switched back to automatic after 1 hour. The manual temperature (parameter Tm) is set up to be fixed 25C .
Works great, people in my house seem to understand it. The room controller UI shows nicely if any of the modes are activated.

Pippo74

unread,
Nov 28, 2019, 7:05:59 AM11/28/19
to Loxone English
Hi Andras,

I like this setup, this is quite straight forward.

Which kind of heating system do you have? Radiant Floor or Radiators? Heat-Pump or Gas or Electric boiler ?

Do you also have a cooling system in the summer ?

Rob

unread,
Nov 28, 2019, 7:38:33 AM11/28/19
to Loxone English
Hi Andras

I like the idea of your "I'm Cold" button, it would certainly stop my wife hassling me every time she changes rooms and complains about the temperature.

Are you able to share the details of how you did this in your config and how this is set up?

Cheers

Rob

Andras

unread,
Nov 28, 2019, 7:41:01 AM11/28/19
to Loxone English
I have a gas boiler, UFH for the living spaces and radiators for bedrooms. Radiators have a 0-10V valves on the manifold. UFH has a separate mixing valve and pump.

Cooling is done using split AC units and albeit integrated through KNX, controlled independently (manually) from Loxone. I did not find a convenient way to do automation with heating.

Pippo74

unread,
Nov 28, 2019, 7:50:19 AM11/28/19
to Loxone English
I've UFH and heatpump, also for cooling, so I'm using IRCv2 with HC outputs.

My setup of IRC is quite similar to yours, apart the "away" operating mode, which I don't find so effective/comfortable with UFH inertia in particular , because I normally set a certain time schedule (Mo-to-Fri and Sa-Su according to our habits and depending on the regular work/school time). This is working in look ahead getting the right temperature at the time we'd like to have it. 

In other words, for my case, I don't find convenient to set all IRCs to absent when I'm away for a while (what does "away" means? Just not in the house but going back in late afternoon evening). "Far away" is my preferred if I won't stay at home for 1 to x days.

Andras

unread,
Nov 28, 2019, 11:02:05 AM11/28/19
to loxone-...@googlegroups.com
Sure,

Here is the part with the I'm cold button:

Screenshot 2019-11-28 at 17.07.52.png



It's basically an analog multiplexer switching between the values 1 (auto heating) and 4 (manual heating). The 60 min delay makes sure, the mode is reset to 1 after one hour.

Here's how the Intelligent Room Controllers look like:

Screenshot 2019-11-28 at 17.08.02.png


The schedule looks like this:

Screenshot 2019-11-28 at 17.08.36.png



Activating the modes can be done by simple switches or even connected to an alarm system. In my case "away" is switched on when the alarm system is armed, "far away" is activated by a switch on the UI.

Andras

unread,
Nov 28, 2019, 11:39:03 AM11/28/19
to Loxone English
I have a rather poorly insulated flat with radiator and UFH heating. Radiator heating is switched off when in away. The UFH is not switched off in simple away mode, as it simply doesn't make much difference due to the inertia of the system.

Rob

unread,
Nov 28, 2019, 1:35:59 PM11/28/19
to Loxone English
Thanks Andras, that's surprisingly simple.
Cheers
Rob

Rydens

unread,
Nov 29, 2019, 5:30:48 AM11/29/19
to loxone-...@googlegroups.com
Very interesting - thanks for sharing. Love the I'm cold button - very high on WAF.

I am tuning my heating which controls the underfloor heating - lag of heat up is an issue. 
It appears the IRC doesn't learn (like Nest does) and you have to teach is the heat up speed by setting the Slope.
Also you need to feed the outside temperature - which is taken from a system variable automatically populated by Loxone if you subscribe to the weather service - if not you have to populate it yourself.
You can't feed these into the IRC but have to create a linked Temperature controller from what I have figured out. 
Does that all sound right?

The only other issue is I have a boiler takes an on or off to trigger it (like the feed from an old thermostat). 
The IRC only has an analogue output which although it works the config keeps complaining I am using it incorrectly!
Thoughts?

Cheers David

Rob_in

unread,
Nov 30, 2019, 2:46:54 AM11/30/19
to Loxone English
On Friday, 29 November 2019 11:30:48 UTC+1, Rydens wrote:
I am tuning my heating which controls the underfloor heating - lag of heat up is an issue.

There is a discussion somewhere on here where I described our setup... ah, here:


This is working really well for us.

HTH, or at least gives you some ideas.

Robin

Chris Pitman

unread,
Nov 30, 2019, 3:22:11 AM11/30/19
to Loxone English
Rydens - you say IRC room controller the analog is to drive a 0-10 valve or signal to loxone TRV. Its the ITC temp controller that drives the boiler add the IRC to it ie double click then set min demand etc this will then call the boiler

Chris Pitman

unread,
Nov 30, 2019, 3:26:21 AM11/30/19
to Loxone English
Forgot to add group rooms on same itc ie 1 itc for down stairs rads and 2 port valve and 1 itc for up stairs rads and two port valve.

Rydens

unread,
Dec 1, 2019, 6:00:18 AM12/1/19
to loxone-...@googlegroups.com
Thanks both Rob_in and Chris for your input. Will experiment. 
I already use Darksky in HomeAssistant  and pass the outside temperature into Loxone via a virtual input every 30 minutes. 
Will look at getting a several hour ahead forecast and using that - however I guess that will involve replacing most of the Loxone logic.

I have 2 areas both have a linked  IRC and ITC - I don't currently have any TRVs so it is on or off  Rads and / or Underfloor. 

I see in the Loxone release 10.3.11.25 there is a Room controller as separate to the IRC - not sure if it was there before. Very little documentation!
This seems to be a simple version but will look more. 

Thanks again,
Cheers David

Rob_in

unread,
Dec 2, 2019, 2:50:53 AM12/2/19
to Loxone English
On Sunday, 1 December 2019 12:00:18 UTC+1, Rydens wrote:
I have 2 areas both have a linked  IRC and ITC - I don't currently have any TRVs so it is on or off  Rads and / or Underfloor. 

I originally tried an ITC but didn't like how it worked (plus, it's a black box and the doco is rather lacking so didn't like that).

I don't think the ITC modulates the temperature setpoint based on load though, and the ability to do that is a huge help in preventing overrun and lag.

I notice the ITC has a minimum flow temperature. Out heat pump supplies 25 degree water minimum but sometimes the curve says only 23 or 24 degree water is necessary. What does the ITC do in this scenario? Does it set the output to 25 degrees and PWM the heat pump (I would want it on/off for periods no shorter than 10-15 minutes for example)? Who knows, that isn't documented, but I suspect the minimum temperature on this block is the same as the one on the heating curve block. Ie. it's useless for us so I have created custom PWM-ish stuff (using feedback from the boiler's inlet supply temperature) for when the setpoint is below 25 degrees).

Robin

Hidde Beumer

unread,
Dec 3, 2019, 4:01:33 AM12/3/19
to Loxone English
Interesting. I've been thinking about this for a while too. somehow the IRC and ITC seem to have been developed with a lot of assumptions, but those assumptions have not been documented. long story short, it doesn't really work well for our house too (heatpump heating/cooling the house with underfloor heating/cooling). especially with the change of seasons my wife complains that it's too cold in the house.

I would want a really simple setup where we have one temperature regime for upstairs and another temperature regime for downstairs. We'll allow the heatpump to work (never less then 20 minutes) whenever we have one of the floors asking for heat, and then we heat up the whole floor.... the only problem I have is the overrun/underrun of the cycle so that things either get too hot or not warm enough.

How did you solve this? are you still using IRC?
Also, could you share your config for your bespoke ITC logic?

Regards,

Hidde



Op maandag 2 december 2019 08:50:53 UTC+1 schreef Rob_in:

Duncan

unread,
Dec 3, 2019, 6:34:35 AM12/3/19
to loxone-...@googlegroups.com
ive found the problem lies not with the v1 IRC but the ITC for underfloor heating - i had to use separate heating curves for each manifold and virtual inputs controlling the gain and offset to get things right,

and also separate manifold mixing valve controllers again with virtual inputs to adjust the Kp and Ki of the curve as each mechanical/hydraulic circuit has differnet physical properites - it needs lots of time with small adjustments and logging of the target vs actual manifold temperatures, else you get undershoot, overshoot or oscillating of the manifold temperatures

ive used an 'OR' with on and off delays from the IRCs to trigger the boiler firing and let the boilers own modulation do its thing.

Hidde Beumer

unread,
Dec 3, 2019, 8:24:43 AM12/3/19
to Loxone English
could you share a screenshot of your IRC, ITC and mixing valve config? I hope to learn how you did it... even though it sounds anything but Simple...

Op dinsdag 3 december 2019 12:34:35 UTC+1 schreef Duncan:

Duncan

unread,
Dec 3, 2019, 10:44:25 AM12/3/19
to loxone-...@googlegroups.com
there are a number of heating models and this is only, attempting to allow a difference in target temperatures rather than another which attempts to keep the room temperatures constant.

IRCs have a schedule to suit, between the 4 of frost protection, party, comfort and cosy (frost protection, standby, comfort and boost) - in addition i use a custom mode (boost) for each zone or room which is added to the top of the IRC schedule and set on 24 hours at the cosy temperature - now when the custom mode is made active for a time period the IRC goes into boost mode - its easy to add a switch in a room linked to a timer and the custom mode to give a user heat boost without having to use the app

so i have IRCs (v1) and no ITC because the ITC adjusts manifold temperature depending on the heat demand of the IRCs, a behaviour which is only required with a low output manifold pump and potentially confuses the IRC learned warm-up time due to varying flow temperature.

the digital outputs of the IRCs for a manifold are 'OR'ed together and the OR output drives the manifold pump and boiler 'on' - this is repeated for my 4 separate groups of rooms and their manifold/pump. there is a on/off delay to avoid rapid on/off cycles of the boiler

the manifold has a heating curve with virtual inputs to set the offset and gain, which adjusts the manifold temperature according to outside temperature and keeps the warmup time roughly constant despite changes in outside temperature (so the learnt room behaviour of the IRC is reliable) - different values are required for downstairs (hard floors) and upstairs (carpeted). if the rooms havnt warmed up when its cold outside then the gain needs increasing, and if they havnt warmed up when its warmer outside then the offset needs increasing with possible further adjustment of the gain.

the heating curve drives a  mixing valve controller which in turn drives a 0-10v actuator to control the manifold temperature (many manfolds/pumps dont have active temperature control in which case this is all pointless)

because each manifold has different lengths and numbers of pipes attached, each has a different mechanical gain and damping, so the loxone defaults for Kp and Ki of the mixing valve controller will probably not work well, causing temperature undershoot, overshoot or oscillation - to set each manifold properly i set up virtual inputs to adjust Kp and Ki, then log (manifold temp - target temp) which shows the error over time. make small changes to 1 parameter at a time until the manifold temperature is reasonably stable but not too slow to respond to changes - you may have to do quite a bit of googling to get a hang of gain, damping, optimum response etc and which parameter to change

now my manifold temperature doesnt change depending on how many IRCs are demanding heat and combined with the manifold temp being adjusted for outside temperature means that the IRCs learned behaviour of how long a room takes to warm up is generally quite consistent
Capture.JPG
Capture1.JPG
Capture2.JPG
Capture3.JPG
Capture4.JPG
Capture5.JPG

Hidde Beumer

unread,
Dec 3, 2019, 1:17:43 PM12/3/19
to Loxone English

I see, ver cool setup. so you have a manifold per group of rooms. with the manifold, in combination with the heating curve, you can control the temperature of the water which flows to the rooms, and thus the IRC can rely on the learned time to heat up a room. Also the heating Curve is adjusted based on the outside temperature and the fiddling with S and N parameters, per floor. quite clever and flexible, after some learning/adjusting this should work really good...


Our situation is that we have a heatpump which has its own smarts and its own controller. Based on the outdoor temperature and its own heating curve it will supply water of a certain temperature, and it will also adjust the pump speed automagically. I guess I can go in there and tune things a little bit. This would be similar to your blocks with the curve and the manifold (not the same, but close enough I think).


What's left is the witching on/off of the heatpump (based on 'OR'ed demand from IRCs), and the IRCs. Your IRCs seem to be well behaving since the time it takes to heat the room is likely fairly constant, due to the variation of the inlet Water temperature adjusted for the weather.  I guess it could pay-off to spend some time on the heatpump controller to do my own fiddling.

Given that we have a ventilation system with heat recovery (depending on outdoor temperature vs. indoor temperature) we suffer from the side-effect that over time our home tends to have a similar temperature everywhere (heat gets transferred from one room to another using the ventilation system). This also has the side effect that the IRC in one room will influence the temperature of the inlet air in the other room, so the IRC becomes less reliable. This is the issue I'm fighting, I hope somebody has some bright idea to improve this.



Op dinsdag 3 december 2019 16:44:25 UTC+1 schreef Duncan:

Duncan

unread,
Dec 3, 2019, 2:52:17 PM12/3/19
to Loxone English
thats the other model of heating - a constant temperature in the day with maybe a setback slightly lower at night  to save energy, that way the systems arent fighting each other, however plenty of people dont like it much.

do you have control of the mvhr using loxone? if so, configure it to be very low when the rooms are set to a higher temperature which will help with the heat redistribution, then a higher rate during the day when people are busy and moving and the room temperatures are usually set lower


Hidde Beumer

unread,
Dec 3, 2019, 4:38:08 PM12/3/19
to Loxone English
I do have a 0-10V wire to the mvhr, but it only allows me to make it run faster then what the current minimum is (which is defined by another CO2 sensor in the house).... I could spend 300 euro on bringing KNX connectivity to the mvhr, but I don't hink it's worth that much money. The mvhr should be able to operate on its own and Loxone should be able to do the same.
With the current loxone direction I'm really not planning to get myself too deep into the loxone world and become more dependent on them... instead I'm leaning towards simpler logic which allows me to replace loxone if they start to tip the scale in the wrong direction...

Op dinsdag 3 december 2019 20:52:17 UTC+1 schreef Duncan:

Rob_in

unread,
Dec 4, 2019, 12:07:12 PM12/4/19
to Loxone English
On Tuesday, 3 December 2019 19:17:43 UTC+1, Hidde Beumer wrote:

Our situation is that we have a heatpump which has its own smarts and its own controller. Based on the outdoor temperature and its own heating curve it will supply water of a certain temperature, and it will also adjust the pump speed automagically. 


We have a Daikin Altherma heat pump for underfloor heating/cooling which can do it's own heat curve, and in a non-smart home that's what you'd use, but I have never tried to use that because:

- We have temperature/humidity sensors is every room already and I didn't want another box (ie. the Daikin controller) on the wall somewhere. Moreover, the Daikin box has to go in one place, whereas Loxone can work out a whole house (whole heating zone) average.

- Loxone has an internet provided weather forecast to help it decide to stop the heating coming on if it's going to be sunny (we get a lot of solar gain).

- Loxone also has a 'heat model' of the house fed from whole house average plus outside forecast to work out when (in a few hours time) the house will probably drop below the desired setpoint. Using this Loxone gets the floor warmed up prior to demand and prevents lag.

- The heat pump cycles (turns on/off) too much on it's own even in absolute LWT mode but one can programmed Loxone to prevent it from doing so (or at least minimise this).

I'm sure there are more, but you get the idea - you could leave your heatpump do do it's own thing but IMHO it's never going to be as efficient as what you can achieve with finer grain control from Loxone. TBH wish we could throw the Daikin control away completely and just have Loxone directly control the compressor, circulation pump and valves!

Cheers,

Robin

Rob_in

unread,
Dec 4, 2019, 12:25:11 PM12/4/19
to Loxone English
On Tuesday, 3 December 2019 10:01:33 UTC+1, Hidde Beumer wrote:
Interesting. I've been thinking about this for a while too. somehow the IRC and ITC seem to have been developed with a lot of assumptions, but those assumptions have not been documented. long story short, it doesn't really work well for our house too (heatpump heating/cooling the house with underfloor heating/cooling). especially with the change of seasons my wife complains that it's too cold in the house. 

To prevent the 'change of seasons' problem we drive the heating/cooling mode based on the minimum outside forecast temperature for the next 24 hours. Seems to work well as if one get's an abnormally hot/cold spell out of season the correct heating/cooling will occur.
 
I would want a really simple setup where we have one temperature regime for upstairs and another temperature regime for downstairs. We'll allow the heatpump to work (never less then 20 minutes) whenever we have one of the floors asking for heat, and then we heat up the whole floor.... the only problem I have is the overrun/underrun of the cycle so that things either get too hot or not warm enough.

How did you solve this? are you still using IRC?
Also, could you share your config for your bespoke ITC logic?

The overrun is solved by having the IRC's load modulate the heating curve. This way, as the target temperature approaches and the IRC load is reduced (Loxone does that) and you can use that to backs off LWT to the floor. So the heating setpoint (which is the absolute LWT we tell the boiler to produce) is set like this:


curve.png


We're in France so a heat pump is PAC. So as you can see right now, inside temperature target is 21 degrees, outside 6.7 degrees but load is zero (A1 on the scaler) as it's currently 22.1 degrees inside (not shown). This means the curve slope being used is 0.29 and that will go up to 0.40 when load is 10.


Side note: don't imagine it's 22.1 degrees in our house because the heating was on earlier and we're in overrun. No. In fact our heating hasn't been on all day but it's quite a bit warmer than target because it's been sunny today and that's all free heat from solar gain.


Logic to actually turn the heat pump on/off is elsewhere but that's done based on load being slightly greater than zero or the projected indoor temperature being below target in a couple of hours (based on the outside forecast and the heat loss model of the house I have).


HTH,


Robin

Andras

unread,
Dec 4, 2019, 1:09:14 PM12/4/19
to Loxone English


On Wednesday, December 4, 2019 at 6:25:11 PM UTC+1, Rob_in wrote:

Logic to actually turn the heat pump on/off is elsewhere but that's done based on load being slightly greater than zero or the projected indoor temperature being below target in a couple of hours (based on the outside forecast and the heat loss model of the house I have).


How does this heat model work? Can you share some details on this? I would guess it's based on the heat loss and temperature delta..? 

Rob

unread,
Dec 4, 2019, 1:51:10 PM12/4/19
to Loxone English
May need to change the topic title..........!!!!

Rob_in

unread,
Dec 5, 2019, 2:25:50 PM12/5/19
to Loxone English
On Wednesday, 4 December 2019 19:09:14 UTC+1, Andras wrote:
How does this heat model work? Can you share some details on this? I would guess it's based on the heat loss and temperature delta..? 

Exactly. From looking at temperatures in & out on days there's no heating or solar gain I have worked out our house loses about 0.011 degrees per hour per degree difference with outside. So it's easy to use the current house temperature with DarkSky forecast outside for the next 24 hours to figure out when the house will drop below the desired setpoint.

*worse case scenario of course, any sunshine (solar gain) or other activity (cooking, etc) does affect this but it's close good enough for our needs.

FWIW I also use this model to warn us when to close windows if we've left them open for extra fresh air or to cool down after lots of sunshine. The house 'knows' that despite it perhaps being warm inside, that if there's a chilly night forecast then we shouldn't let the inside temperature drop to close to the desired setpoint at dusk, etc. by leaving windows open because it might then feel a little cold overnight (or even worse - heating might be required!).

You get the idea - this stuff can be useful for a few things.

Robin

Andras

unread,
Dec 6, 2019, 7:09:21 AM12/6/19
to loxone-...@googlegroups.com
Re-using the discovery in the lighting controller thread about "looping" a virtual output to the miniserver's api, I was able to make this even more simpler.
  • This API trick allows a virtual output command to control the Miniserver through its API
  • I am setting an override for 2 hours on each IRCv2 using the API instead of switching the IRC to manual mode
  • I am using the following command for a virtual output: /dev/sps/io/12a71e24-02c3-3d8f-ffff796b564594c0/override/3/<v>/25
    • the guid is the UUID of the IRC of the specific room
    • the number 3 is manual mode for override
    • <v> is the input of the virtual output, determines the end time for the override (in seconds since 2009)
    • 25 is the temperature for the override
  • The virtual output needs to be an analog output (untick "Use as digital output")
  • Getting the "Seconds since 2009" is fairly easy, it's the 4-way addition of:
    • Days since 2009 * 86400
    • Hour * 3600
    • Minutes * 60
    • Seconds
  • I'm adding a constant 7200 to "Seconds since 2009" and piping this value through an analog memory to the virtual output
    • the trigger of the analog memory is the "I'm cold button"
  • I have a similar "Stop I'm cold" command, which uses the following command in an other virtual output: /dev/sps/io/12a71e24-02c3-3d8f-ffff796b564594c0/stopOverride  
  • Do this for all IRCv2's you want to override

This way the UI is super clean and makes sense to users when the "I'm cold" override is active. I am still looking for a way to add some override description.

Screenshot 2019-12-06 at 13.08.08.png



Screenshot 2019-12-06 at 13.07.27.png

Reply all
Reply to author
Forward
0 new messages