Friends, just a very short post to allow me to share the
- The formulas I used used to draw the Vaillant Weather Compensation Heat Curves
- The spreadsheet I used for the Vaillant Heat pump Curves in the previous articles.
- A spreadsheet for estimating the correct Heat Curve setting based on Heat Loss Calculations
It’s another very technical post: sorry. But at least it’s short.
Formulas
How can one draw the heat curves used in the Vaillant Manual?

Click on image for a larger version. The Heat Curve Diagram from the Vaillant SensoComfort Manual
The formula describing the heat curves was reverse engineered by André Kühne, who published his result on the Open Energy Monitor Forum here. The formula for the curves is:
- T_flow is the flow temperature in °C
- T_set is target temperature in °C
- T_out is the outside temperature in °C
- Heat Curve is the Vaillant Heat Curve Label
- a = 2.55
- b = 0.78
If one plots these formulas in Excel or similar, one will end up with graphs looking like those on the left-hand side of the figure below. To get graphs like those on the right that look like the Vaillant curves one needs to select special axis options. In particular,
- On the horizontal axis, one must select “Values in Reverse Order” in Format Axis: Axis Options.
- On the vertical axis, one must select “High” in Format Axis: Labels: Label Position.

Click on image for a larger version. Implementation of the Kühne formula for the Vaillant heat curves.
One can invert the Kühne formula to predict the Heat Curve based on a heat loss design calculation.
All the symbols have the same meaning as in the previous equation. This might be useful if, for instance, a design calculation indicates that a flow temperature of 45 °C will be required to achieve 20 °C internal temperature when the outside temperature is -5 °C. Evaluating the formula above yields a recommended Heat Curve label: 0.75.
These formulas are implemented in this spreadsheet.
Enjoy!
===============
Edit: 18 Oct 2024: Unbelievably I got the name of the temperature controller wrong! It’s a SensoComfort not a SensoTherm!
Tags: Vaillant


October 18, 2024 at 12:27 pm |
Michael,
as a physicist, it was always a dream to have a formula named after me. I think I can now retire. Thank you! 😀
October 18, 2024 at 12:40 pm |
Andre
My pleasure! I am grateful to you for saving me so much work!
Best wishes
Michael
October 19, 2024 at 1:14 pm |
The ‘latest version’ (16/10/2024, v2.22.0 – 22529) of the myVaillant app (both Android and iOS) now allows you the change heat curve settings
October 19, 2024 at 1:20 pm |
OMG!
Well there you go! I spend days writing about heat curves and then a day later they just go and change the system!
So I guess I have to write part 4!
October 19, 2024 at 2:32 pm |
There are still things about heat curves you can’t change from the app e.g. maximum flow temp limits.
Perhaps Part 4 could include a description of the Energy Integral control strategy as well? It is the answer to the question you pose here in Part 2:
So a proportional control system either (a) oscillates around the target temperature or (b) settles at a temperature below the target temperature.
One can add Integral (I) and Differential (D) elements to the control system, but as anyone who has ever done this can attest, it is easy to get lost, and end up with temperatures that wander all over the place.
Vaillant have already sorted the integral term out for you! It integrates the departure from setpoint over time. The compressor is started when it reaches a threshold of -60 deg-mins and stops when it reaches zero. You cannot choose not to use it, but can change the threshold in the VWZ AI Heat Pump Interface settings (the setting is called Compr. start heat. from), increasing it to -120 may help if cycling is a problem.
October 20, 2024 at 2:18 pm |
Good Afternoon. Mmmmm
I don’t know for sure why PID control strategies are limited to industrial and scientific control applications, but my guess is that it is PID control offers the possibility to get completely unstable solutions. Now it could be possible for Vaillant to use a restricted set of parameters where, for example, the P term is pre-set based on outside temperature, and I is set by an installer according to a recipe. But even a slightly mis-tuned PID system will overshoot the set point, potentially for hours on end.
Most people seem to find a reasonable heat curve, and together with room temperature modulation options, they seem to be happy.
PID offers flexibility that industrial situations require, e.g. where a control sensor cannot be placed close to the heat source. But I am not sure that its flexibility offers any benefits over a simpler heating curve approach. I could be wrong, but I don’t think any manufacturers offer PID controls to their customers, so this might be the reason why.
Best wishes
Michael
October 19, 2024 at 7:23 pm |
Michael
Thank you so much for taking the time to make these spreadsheets (and to Andre Kuhn for reducing the curves to a formula). They are very useful.
October 19, 2024 at 7:31 pm |
Duncan,
You are welcome. Unfortunately I have just learned today that Vaillant have changed things with their App! SO I will have to write *another* article. AAArrghhh!
M
October 20, 2024 at 11:14 am |
Michael I so very much appreciate these last three articles on Vaillant – perfect timing for me as I’m trying to up spec my understanding of my system. I did see Vaillant launched Heat Curve control on the app which is super handy. Silly and probably basic question – presumably heat curves only apply to home heating and not cooling or DHW?
October 20, 2024 at 2:01 pm |
Guy,
Thank you for your kind words.
Yes, I will be writing about the new Heat Curve adjustment shortly. It looks like a more comprehensible way to adjust household heating.
Weather Compensation (or more properly outside-temperature compensation) works because most of the need for heating comes from heat losses through the walls and windows. Similarly, a comparable curve might exist for cooling. But I have never heard of a Vaillant ASHP installation in the UK where cooling has been installed.
The heat curve is applicable wherever one is trying to balance heat inputs with heat losses – in either direction i.e. what flow temperature balances the heat losses or gains.
There is no equivalent for DHW because one is not trying to achieve balance. Heat losses are small compared with heat input. If I recall correctly a 200 litre cylinder at 55 °C has losses of about 1.6 kWh over 24 hours which amounts to just 70 W compared with heating power of 3 kW to 5 kW i.e. just 2% of the charging rate.
Best wishes
Michael
October 20, 2024 at 5:57 pm |
Yes the full PID control strategy isn’t implemented on domestic HPs AFAIK.
I think it is the Differential term that could give rise to instability. Classically it is employed to improve transient response, however the time constants involved in heating houses are so long maybe it would not make a lot of difference anyway.
However you have already got the Integral term implemented in your Arotherm plus controller, and this gets rid of the steady state error that comes (as you note) with simple proportional control. There is a (quite lengthy) discussion here https://forum.buildhub.org.uk/topic/17899-what-is-energy-integral/ with some useful links in it.
One of them describes a software fault which stopped it working effectively. It has now been fixed, although Vaillant have been reluctant to update affected customers because it requires a new motherboard since the s/w is (unbelievably in this day and age) embedded in it in a way that can’t be upgraded in the field.
January 11, 2025 at 11:03 am |
Hi Micheal , just in case someone hasn’t allready asked for it , is it possible for me to calculate my ashp cop from the in and out temps from the pump , and the flow level , and the electricity i am using ? i have it all logging now , but cannot find a formula or calculator .
i m using a harnitek 1 kw combo ashp , and finaly have use of there wi fi data logger !
regards robert .
January 11, 2025 at 12:50 pm |
Robert,
Good Afternoon. I am not familiar with that brand of heat pump. Are you located outside the UK?
Regarding the formula for COP, it sounds like you have enough data to calculate COP.
To estimate the heat output you need a continuous log of flow rate (in say litres per hour or per second) and the temperature of the water heated by the heat pump T(flow) and the temperature of the water returning to the heat pump T(return).
First estimate the heating power.
The basic formula is Power
= mass flow rate (kg/s) x specific heat capacity (J/°C/kg) x temperature change (°C)
I assume you are using water and not a water glycol mixture the specific heat capacity is ~4,200 J/°C/kg
Power (in watts) = 4,200 x flow rate (litres per second) x (T(flow) – T(return))
Power (in watts) = (4,200/60) x flow rate (litres per minute) x (T(flow) – T(return))
Power (in watts) = (4,200/3,600) x flow rate (litres per hour) x (T(flow) – T(return))
This gives the heating Power. Then you work out the electrical power and
COP = heating power/electrical power.
In practice you may need to evaluate this over short periods – typically a few minutes to an hour.
Drop me a line if you have any questions: M
January 12, 2025 at 10:33 am |
Thats brilliant thank you Michael ,
I am in a derelict 1865 farmhouse near welshpool i am renovating slowly .
i had the whole eco 4 ‘fit out’ drama fest last January , and im trying to work out the most economical way to run it .
Harnitek seem to be almost invisible with regards to customer feedback , however , it does allow a wifi data gather , and a software app .
It is definitely using a pink anti freeze in the water .
The only thing not being logged is flow rate, darn it , but it is shown on the live update screen on the tank cabinet , i will ask harnitek if they can include it in the app.
This weekend i am mostly playing with delta T and pump speeds ! 5c Dt or 3C Dt ..decisions decisions !
Regards
robert
January 12, 2025 at 12:39 pm |
Robert, Good afternoon. And good luck with your project.
Using a heat pump with an electrical battery is generally pretty economical – after allowing of capital costs.
If one has a big battery one can buy electricity for 7 p/kWh at night and run teh heat pump during the day – generating heat at a cost of about 2 p/kWh.
If one has a smaller battery, there are tariffs which allow the battery to top up every 3 hours – allowing you to avoid the most expensive (and highest carbon) hours.
Regarding the formula, I am afraid it only works for a system recirculating water. If you have antifreeze then you need to know the concentration of anti-freeze in order to put in the correct specific heat capacity.
If you really want to monitor the heat pump seriously, then have you considered open energy monitor hardware?
They have a chat here:
https://community.openenergymonitor.org
and you can monitor other heat pumps in real time here;
https://heatpumpmonitor.org
If you click on a location you can get astonishingly detailed and insightful information.
Best wishes: M
January 17, 2025 at 8:53 pm
Making progress ! very rough but getting somewhere ..
January 12, 2025 at 3:22 pm |
good afternoon micheal ,
i have 6kw of panels , and 4.5kw of batteries , at the moment i have just changed from octoplus agile , to cosy , not having an electric car i dont think i can tap into the rich vein of 7 p /kw power nirvana !
i have been studying those data streams on that site , trying to see how my power and delta curves compare and find a pattern that is one i should aspire to .
luckily the data logging i have seems about the same as that one , but free 🙂
its just flow i have to monitor manually , whixh seems to be set at 22 … im guesssing that’s litres/min? its a little clear window in a fitting with a spring and ball that raises higher, the greter the flow , and has a scale on it .
i have contacted the installer to find out the percentage of anti freeze they used , so i can work out the specific heat malarky.
A good thing is the data logged is transferable to excel ,so i can do a formula in there .. if i can remember how its years since i did anlysis in excel .
regards
robert