If your boiler is running at 60°C, ideally, the return wants to be 60*0.7=42°C - If the return temperature is higher, then I’d suggest looking at the balance of all radiators and possibly reducing the pump speed if you can (I have my pump on the lowest setting).
Condensing only really kicks in at 54°C, so the lower the return temperature, the better. At 55°C, you’re probably only getting 86%, so plenty of scope to improve on that.
I have a heat meter (an L&G T230) plumbed in to the heating system. This gives a pretty good idea of how much heat is being put out by the radiators. If you know the flow & return temperatures along with the flow rate, it is a trivial calculation to work out how much energy has been consumed. From my notes:
The specific heat of water is 4190 J/(kg⋅°C).
It means that it takes 4190 Joules to heat 1kg of water by 1°C.
Heat required to raise the temperature, Qt:
Qt = cm*ΔT
where:
Qt is the specific heat capacity;
cm is the mass;
ΔT is the temperature differential
Or:
kWh = cm*ΔT*c
c is specific heat of water divided by time: 4190/3600 = 1.163889
Looking at tables for my radiators, I know what each one is rated at based on a flow temperature of 70°C (often quoted as ΔT50). Using correction tables (e.g. https://www.clyderadiators.co.uk/delta-t-conversion ), one can work out how much heat will be radiated at a particular flow temperature. I have a total of 12.5kW of radiators, so at 40°C (ΔT20), my limit is 3.75kW - These figures are based on a room temperature of 20°C.
When a TRV (old skool 0-5 numbers) kicks in, it stops water flowing through the radiator. Effectively, taking that radiator out of the equation. As a result, the system is not able to dissipate as much heat.
Below, a plot showing flow/return temperatures and power dissipated by the radiators.
@paul_c5x4 wow, thanks for the info. I have more research to do!
lol all my rads TRVs are set to the highest number to get as much heat out in to the rooms as quick as possible and room target temp is 23° for WAF, but see I should do some calcs
TRVs do not regulate the amount of heat being put out by a radiator. All it can do is turn the radiator off as the room gets up to temperature.
Same for the thermostat - Turning that up does not make the house heat up any quicker.
To heat a house up faster, you either need to fit larger radiators (impractical if you just need the occasional boost), or crank up the boiler temperature. However, that reduces efficiency and also increases the rate of corrosion inside your radiators. Go too high, and there is also the risk of burns if you touch the radiators - A very real danger for the elderly and small children. Heat Geek is a good place to start if you want to know more about heating. Although primarily pushing heat pumps, much of what they have to say can be applied to gas boilers - I took on board quite a bit of their advice when replumbing my heating system with an eye on fitting a heat pump in the future. Bigger radiators, 22mm pipes for the bulk of the plumbing, and so on. Running the boiler at 40°C, I can heat the place reasonably well. Heat pumps will run at a similar temperature, so I’m set should the boiler pack up.
@paul_c5x4 So I haven’t measured the zone 2 (upstairs) radiators yet to calculate (but I know the brand and can therefore find output values at ΔT50), but based one running 2 zones, and the fact the boiler can ‘only’ modulate down to 6kW ish, I think I would need to scrap the 2 zones. My zone 1 (downstairs) at ΔT50 has a total output of 3.5kW, so if I changed flow rate to 40° as well, using the website you mention for ΔT20 it equals 2kW which is far below the 6kW minimum (assuming I am working this out and understanding correctly) so the boiler would end up cycling.
I have double the amount of radiators in zone 2, of which 2 are tall towel rails, and without calculating exact figures for rads in zone 2 (which I will do tomorrow), so a rough guess of 6kW (inside the minimum boiler modulation range) should mean at 40° no boiler cycling if the system is 1 zone rather than 2. Does that logic sound about right to you @paul_c5x4?
At ΔT20, your 3.5kW of radiator output drops to a little over 1kW (3.5*0.3=1.05) at a room temperature of 20°C. With a minimum boiler output of 6kW, you are going to struggle to avoid short cycling. Setting a wide hysteresis on the thermostat and limiting the boiler run time may help. Alternatively, disable the boiler for (say) 30 minutes at the point when short cycling is about to start.
Or just accept that the boiler will short cycle and efficiency will drop a few percentage points. The Potterton Promax has a SEDBUK rating of 89.1%, so it is fairly efficient to start with. The manual also claims (up to) 98% space heating efficiency with a low temperature regime (usually taken as 40°C flow, 30°C return).
Well I just measured up and grabbed the radiator values from Myson website. My guestimate appears to be way out. I do have double the radiators however they are all type 11 (apart from 2 towel rails) and smaller than downstairs rads:
Downstairs total = 3298w
Upstairs total = 3804w
Grand total of 7102w (which I guess is because of the new build and therefore good supposedly insulation factor).
So if I am understanding all of this correctly, I guess that means that at ΔT20, my radiator output is 2.13kW if I am running one zone for the whole house which will still struggle with short cycling If I play with numbers on Clyder Radiators website, it appears that I need to run at a ΔT45 for no cycling as Nest doesnt allow changing the hysteresis values from what I am reading online (although I have asked ChatGPT to create a new generic thermostat to allow me to control hysteresis which can be found here: https://chatgpt.com/share/67af2ac8-5870-800b-8b41-bc3cda149e0f) if this HA config doesnt work then the boiler at ΔT45 would be above the condensing mode return temp? …or as you say @paul_c5x4 try disabling the boiler when short cycling is about to occur (not sure how to be able to guess when the boiler would start to short cycle to then be able to send stop command?)
From all of this, even if I go to 1 zone for heating, it doesnt sound like OpenTherm would be much use for my property?
A ΔT45 means a flow temperature of 65°C which would give you a return temp of 45°C assuming a 20°C drop across every radiator - Puts you well in to condensing mode
Using the OpenTherm interface allows you to run at a higher flow temperature when it is really cold outside and reduce it gradually as the house approaches the target temperature.
If you monitor the state of the boiler, once the flame turns off, you can disable the boiler for say 30 minutes before it fires up again. Plugging in to the OpenTherm interface should tell you when the boiler is active an flame is hot.
Crazy having a 40kW boiler that will only modulate down to 6kW when the house probably only needs 3-5kW to heat. But few people pay any attention to the minimums when fitting a boiler and gas engineers will fit bigger than needed so that the customer doesn’t complain about being cold.
Combi boilers are a little different in that they should be sized for the cold water flow rate, so always end up being too big for heating.
Hello,
Im trying to configure the system on esp32-devkitc-v4 board (https://mischianti.org/esp32-devkitc-v4-high-resolution-pinout-and-specs/). First sensor Ive connected is the internal temp sensor.I used NTC sensor, I set so in sensors section (NTC) on GPIO 26. However I cannot get reading of NTC connected to GPIO 26.Im sure Im phisically connected to GPIO 26. I was not totally sure how to connect it.My connection is: resistor 4K7 is connected in serial with NTC thermistor 10K. Resistor end is connected to 3.3V, thermistor END is connected to GND and middle (between thermistor and resistor) is connected to GPIO 26.
On GPIO 26 I also measure ~2.4V DC.
Does anyone knows what I`m doing wrong?
System
Version 1.5.3
Build Env: nodemcu_32
Date: Feb 2 2025 08:20:04
Core: 3.1.1
SDK: v5.3.2-282-gcfea4f7c98-dirty
Uptime 0 d., 0 h., 27 min., 7 sec.
Free memory 55172 of 253864 bytes (min: 22804 bytes)
max free block: 47092 bytes (min: 22804 bytes)
Board Chip: ESP32-D0WD-V3 (rev. 301)
Cores: 2, frequency: 240 mHz
Flash size: 4 MB (real size: 4 MB)
According to Analog To Digital Sensor — ESPHome you can not use some of the GPIO pins for ADC when using WiFi - GPIO26 is one on the list.
Try moving to GPIO32-39.
You’ll need to calibrate the sensor with at least two data points.
Iced water will get you 0°C, and boiling water will do for 100°C.
With some NTC sensors, the datasheet will include a table showing what resistance to expect at set temperatures. If you know what the reference voltage is at the top of your 4K7 resistor, a simple bit of maths will tell you what voltage to expect on GPIO32 - Read the raw value and plug the correction in to your calibrate_linear filter. The more data points you use, the more accurate the output will be.
@LazyDev Wonderful work! Well designed and implemented! Thank you very much for sharing your effort in this project!
My intention is to replace my current Nest thermostat setup with the OTGateway as soon as all my initial issues are resolved. So far everything meets my requirements but I’m running currently into the following issue which I have been unable to resolve:
Setting the target temperature using climate.set_temperature in an HA-automation throws the Error “Provided temperature 20.5 is not valid. Accepted range is 40.0 to 60.0”. This interrupts the further run of the automation. screenshot:
My set up:
DIYLESS board + Wemos D1 board.
filesystem_d1_mini32_1.5.3.bin
Intergas HRE 36/48 CW5 boiler
Home-assistant 2025.2.5, integrated OTGateway using mqtt, using default HA Climate control and dashboard
Min Heating Temperature and Max Heating Temperature are 40 and 60 respectively.
Indoor and outdoor sensors added and they are functional.
PID is activated.
Practically, OTGateway accepts the requested target temperature (20.5). This is to be seen on OT Gateway dashboard. The target temperature is effectively adjusted, although HA has raised the error.
But apparently HA validates the target temperature against the Minimum Temperature and Maximum Temperature from the Climate object.
After some digging, it appears the Climate component of HA is does this:
Thank you. Did that. No change, still the same issue. I wonder what you would have expected how this would help. As far as I understand HA is taking the Minimum Heating Temperature and Maximum Heating Temperature into account to validate the target temperature (I read as of HA 2024.08 version).
The root cause seems to be that Home Assistant interprets Minimum and Maximum Heating Temperatures as room temperatures while OTGateway uses them (under the hood) as boiler water temperatures. Is this correct?