My gas boiler data is live!

I see from my boiler’s morning run today, the return was kept down around 40, despite no change in the flow rate!!!

The outdoor temperature has been pretty steady for the past week, so I need to have a ponder as to what is going on. Perhaps some radiators are getting a chance at more heat and therefore dumping more heat from the water??

I am on LPG, but the solution works just as well for natural gas. I have an old style gas meter (flappy paddle type) with a pulse output. I measure the period and translate that to m3/hr flow rate and m3 totaliser, then to kWh. Maximum pulse period is about 5 secs, so I get a new value every 5 secs or so.

My boiler is able to acheve a dT of 20°C, whatever it gets fed (at max burner).

I’ve been playing with blending the Return to the boiler to give it a minimum temperature, but I think I am now confusing the boiler (Newish ATAG) and it lowers the burn as it thinks it will heat up quickly. As it is connected to a 750L tank, it doesn’t heat quickly. The boiler eventually works that out and increases the burn.

[edit]
I need to get on to ATAG as I’m sure it is a setting issue.

All working fine now. Have added in the pump/boiler electrical consumption, although I do not measure them in real time, I have measured them and they are pretty much constant. I would request.

  • Adding Input Power to the graph, much the same as the Heat Pump app, either by default or tick box selectable.

  • Adding cost information. I realise this is mentioned on your roadmap, but here’s my two penny worth. Add a feed for pence/kWh. The feed for pence/kWh can be driven from another app that worries about getting unit price, standing charge, etc. as per some of existing TOU apps, or from an external input feed. It may be that the existing apps can be adapted by allowing feeds for some of the fields that are constant at the moment.

I compare the pence/kWh between boiler and heat pump as part of the decision which to use for heating. For heat pump I amortise the electric standing charge by turning this into a value to add on to the basic unit price, rather than add it on per day. I also amortise both the gas standing charge and a proportion of the electric standing charge in calculating the boiler pence/kWh. Also take into account VAT. I am not sure that everyone would want to calculate pence/kWh that way, hence the request for the possibility of an input feed rather than constant values.

Great project!

One word of caution though:

Domestic gas meters are fairly naff and small changes in regulator pressure and ambient temperature have a material impact on energy density and perceived efficiency.

ijeee.20210605.17.pdf (654 KB)

Ok for comparing your own boiler against your own boiler (and better if you measure gas temperature at the meter) but careful comparing against others especially if one meter is indoors and the other outdoors etc!

1 Like

Funny you should mention that. I am on LPG, gas pipe comes into the double garage, up to the ceiling, across, and down to the meter/boiler on the other side, so maybe 10m of 22mm copper pipe. I make the assumption that by the time the gas has got to the meter it will be roughly at the temperature of the (unheated) garage, and then correct gas density for temperature and supply pressure (nominally 37mBar).

1 Like

Bit late to the party here, but through to share my own experience…

My Boiler seems has ~10degC dT It’s a 13 year old Greenstar 24Ri and the pump’s a simple on/off control from the Boiler. I remember the installer telling me they set this 10 degC using the lockshield valves on the radiators. Although I never found this written down anywhere

Below a typical morning start, the radiators with programmable TRV come at different times, you can see the effect of a radiators worth of cold water coming into the loop at 06:30 and 06:45

Its hard to get a good long run this time of year (Janaury when it was -10 I did not have the instrumentation in place) but you can see it on the evening run into the hot water tank. (where the heating kicks in for a few mins towards the end)

I am experimenting with the flow temp, my challenge is to heat the hot water tank it needs to be 60, at the moment this means running to/from the garage to turn the knob whilst experimenting (if I forget to turn back it’s cold shower the next morning)

It’s not hard to write a bit of logic so if tank zone valve is open set to 60 else set lower, I already have opto isolator pick ups on the zone valves. The problem is my boiler only has a knob on the outside to turn. It’s a potentiomiter but I don’t want to go opening the boiler to wire to it, so looking for some sort of stepper motor or servo that can turn it

Has anyone else looked at this?

1 Like

Does it support domestic hot water mode at all?

I tricked my boiler using a 10k resistor.

Before learning that trick, I used a digital EMS-ESP box to alter the temperature in response to the call for hot water.

Enabling Priority Domestic Hot Water with a 10k resistor!

Priority Domestic Hot Water on S-Plan with Node Red automations

Sigh:

Some time later:

Hilarious:

And finally, after going elsewhere, we have this:

x<54:

− 0.000107055918136812 x³ + 0.00496685520670121 x² − 0.178620096987655 x + 100.501077536397

x>=54:

− 0.0396882823858064 x + 90.101801862238

You could use those very precise constants, or these less-precise ones:

I’d suggest my point-n-clicking on graphreader.com wasn’t super-accurate so I don’t think the precision is warranted.

2 Likes

If you want to tinker with the outcome, you can use this in something like Jupyter:

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# Your data points
data_points = np.array([
    [4.549, 99.559], [8.863, 99.284], [10.902, 99.091], [13.255, 98.926], [15.608, 98.706],
    [20.314, 98.045], [24.235, 97.494], [28.471, 96.861], [31.765, 96.172], [35.529, 95.484],
    [38.51, 94.713], [40.078, 94.328], [42.118, 93.887], [43.843, 93.226], [45.255, 92.923],
    [46.353, 92.29], [47.451, 91.849], [48.549, 91.519], [49.333, 91.133], [50.118, 90.693],
    [50.745, 90.142], [51.529, 89.757], [53.412, 88.545], [54.039, 88.325], [54.667, 87.884],
    [56.235, 87.857], [57.647, 87.801], [59.686, 87.746], [62.667, 87.691], [67.373, 87.416],
    [71.451, 87.251], [76, 87.086], [81.333, 86.893], [88.706, 86.562], [96.706, 86.287],
    [103.451, 85.984], [108.157, 85.874], [115.294, 85.461]
])

# Split the data at x=54
split_index = np.argwhere(data_points[:, 0] >= 54)[0][0]
data_below_54 = data_points[:split_index]
data_above_54 = data_points[split_index:]

# Fit a cubic polynomial for x < 54
coeffs_below_54 = np.polyfit(data_below_54[:, 0], data_below_54[:, 1], 3)

# Fit a linear polynomial for x >= 54
coeffs_above_54 = np.polyfit(data_above_54[:, 0], data_above_54[:, 1], 1)

# Define the polynomial functions
poly_below_54 = np.poly1d(coeffs_below_54)
poly_above_54 = np.poly1d(coeffs_above_54)

# Create a range of x values for plotting the fit
x_range_below_54 = np.linspace(data_below_54[0, 0], data_below_54[-1, 0], 100)
x_range_above_54 = np.linspace(data_above_54[0, 0], data_above_54[-1, 0], 100)

# Plot the data
plt.figure(figsize=(10, 6))
plt.scatter(data_points[:, 0], data_points[:, 1], color='black', label='Data Points')
plt.plot(x_range_below_54, poly_below_54(x_range_below_54), label='Cubic Fit (x < 54)', color='blue')
plt.plot(x_range_above_54, poly_above_54(x_range_above_54), label='Linear Fit (x >= 54)', color='red')
plt.legend()
plt.xlabel('Return Temperature')
plt.ylabel('Efficiency')
plt.title('Return Water Temperature vs Efficiency for Condensing Boilers')
plt.grid(True)
plt.show()

print("Below 54:",poly_below_54)
print("Above 54:",poly_above_54)

Like the video, whilst we both have Greenstar Boilers, I think mine is a bit older than yours! The only controls I have are the two knobs on the front, left is power right is the flow temperature.

AFAIK the only controls inputs are are 240V call for heat (the output switched lines of the two zone valve switches are connected in parallel and then into this connector). The boiler than has a switched output to the pump.

What I want to do is control of the knob on the right, this is a Pot connected to the circuit board, but I
I don’t want to open the boiler, even to remove the knob, as I am pretty sure that’s classified as messing with the boiler. So I am considering a servo/arduino type solution to physically turn it

Boiler is a 2010 model, installed in 2011 was reconditioned recently It also has a scarily high standby power of ~10W I am assuming due to a transformer power supply to the circuit board,the blue light and eddy current losses. My plan is to hold out a few more years until a heat pump becomes an option. Northern Scotland is not a hotbed of heat pump installers, at the moment I worry if I went with someone in e.g. Glasgow how it would be serviced / maintained if it broke!

Hi All,

Thank you, @tomasmcguinness (and others involved), for making it possible to share gas boiler data!

I have started sharing data from my boiler – an Ideal Logic Heat H24 (running Opentherm) with a separate hot water tank:

https://emoncms.org/app/view?name=MyBoilerIdealLogicH24OpenthermSAT&readkey=1d29c637a4817acdf6e6e271850c9026

My boiler is also oversized for my house, but there is a project that helps to tackle this issue if your boiler supports Opentherm; however it will also do its best even without opentherm too. It ensures that you are always running at the minimum modulation required – see: GitHub - Alexwijn/SAT: The Smart Autotune Thermostat (SAT) is a custom component for Home Assistant that works with an OpenTherm Gateway (OTGW). – Smart Autotune Thermostat.

If you look at my data, you will immediately see that the boiler is currently operating under low load (modulation) with PWM, which means that it can follow the requested Target Flow (Heating Curve) on average.

If data shows Flow Temp higher than 60 it means that DHW is on.

My gas boiler smart meter readings lag by about 1-2 hours, so efficiency should only be read when the heating has been off for a while or at the end of the day. Nevertheless, SAT can help to maximise the efficiency of the boiler.

SAT also improves the overall comfort levels from my experience so far. If you look at the data, you’ll see that my room temperature calculation uses the Summer Simmer Index, which accounts for humidity inside the house. My target room temperature is 21.9°C at night, slowly rising in the morning and throughout the day to 23.5°C.

I hope some of you find this interesting and thanks again! :blush:

1 Like

@critictidier really interesting that, thanks for sharing. Is the OpenTherm Gateway also attached to an OpenTherm thermostat or is it literally the OpenTherm Gateway attached to the boiler without an OpenTherm thermostat?

Thanks and you’re welcome! It’s just the OpenTherm gateway. Home Assistant SAT integration becomes your new virtual Thermostat. However, SAT can also work with your existing physical (but smart thermostats that you configure via SAT). In my case, before I started this project, the house was already using Hive. And, Hive is still connected now, because I didn’t want to risk the central heating/hot water not working, just in case. At the moment, Hive is only there to control zone valves opening and closing. In summary, I could:

  1. Remove Hive and replace it with, for example, Shelly devices to control valve zones. SAT becomes the only thermostat.
  2. Keep Hive (current setup) and use it to control the valve zones. SAT is the only thermostat.
  3. Keep Hive and inform SAT to use whatever Hive defines the as target temperature. SAT uses that as the input; or it’s the other way around but in essence, SAT and Hive sync with each other.

Currently, there are two reasons for which I’m keeping Hive

  1. Hive acts as a backup. If Home Assistant, OpenTherm, or some kind other disaster happens, I can very quickly, disconnect OpenTherm gateway from the boiler and Hive takes over.
  2. The whole central system wiring should ideally be improved, and, I kind of don’t want to be taking on this challenge at the moment. For example, if Hive was to be solely used, then the current wiring means that I can’t call DHW, Hive just calls CH for both, DHW or CH but it does control zone valves correctly, so it’s kind of OK, but just not as efficient. I guess the installer just wanted to make it work and forget.

Maybe it’s also worth adding some explanation around SSI and why my room temperature seems so high.

Imagine you have a thermometer that tells you more than just the temperature—it gives you the “feels like” temperature, factoring in not just the air temperature but also the humidity. This is done using the Summer Simmer Index, or SSI.

For instance, consider a typical thermometer that shows a temperature of 20.7 degrees Celsius on a morning. With the SSI, this reading might be adjusted to feel like it’s 23.4 degrees. At night, a reading of 19.6 degrees might be adjusted to feel like 21.8 degrees.

The reason for this adjustment is that the SSI takes into account the humidity level in the air. High humidity can make the air feel warmer than it actually is. This is because humidity, or the water vapor in the air, impedes the evaporation of sweat from your skin, which is your body’s way of cooling down. Thus, even if the thermometer reads a certain temperature, the actual experience of the temperature can be quite different depending on the moisture in the air. The SSI uses a specific formula to recalibrate the temperature by considering the effect of humidity.

So, I feed Home Assistant the RAW non-SSI adjusted room temperature, which SAT then converts and uses it along with the also adjusted target SSI temperature, so if you see 23.2, the actual, non-SSI temperature is around 20.7 at 50% RH. The RH in my house, varies between 40-60%, so the difference isn’t really huge but I guess it helps a little bit to make it as comfortable as possible.

Here’s a reference for SSI-adjusted temperatures and how they “feel” (not the actual temperatures)

  • 21.3 – 25 °C Somewhat cool. Most people feel comfortable.
  • 25 – 28.3 °C Optimal. Almost everyone feels comfortable.
  • 28.3 – 32.8 °C Somewhat hot. Most people feel comfortable.

01 What is the Summer Simmer Index? – GC Wizard

Also, the fact that my night and day temperature only vary by about 1.6 C degree, it means that the boiler never needs to work hard, which helps it to keep it efficient. And the night temp does not feel hot at all if you are wondering, after trying various temperatures. And the reason why it doesn’t is that because the room temperature is constantly the same, and that way you can’t tell whether heating is on or off.

You can see the diary of my experiments here:

Ideal Logic Heat H24 Real Time Boiler Performance · Alexwijn/SAT · Discussion #40 (github.com)

1 Like

That’s really cool, thanks for clarifying.