Calculate energy consumption used for heating from hot water storage tanks?

Hi everybody!

I heat my home with a central wood boiler. The energy from the burned wood is transfered to two hot water storage tanks at about 700l each. There it is stored until something “uses” it, ie radiators, shower/bath and off course there are some losses through pipes and insulation of the tanks that could always be better.

The boiler is connected through a Smart plug that measure power being used, so this could be used to know when a burn cycle is started/stopped. The boiler uses a fan that pulls a pretty concistent amount of power and when the wood is burned out, it stops.

I have set up a system through ESPhome and DS18B20 temp probes to monitor the temperature of storage tanks and pipes.

Now I am trying to figure if it would be possible to calculate some things based by the changes in temperature in the storage tanks and the difference in temperature going to the radiators and coming back from them.

I’m thinking that since the energy required to raise the temperature of 1l water by 1ºC is 0,00116kWh and I have around 1400l in the tanks, the energy required to raise the temperature by 1ºC is 1,624kWh.

The thing that’s confusing me (apart from the fact that I am not skilled at all in coding/templating/yaml etc… :confounded:) is that the temperature differs in the tanks. Typically the temperature in the tanks will be around 60ºC in the top, 40ºC in the middle and 30ºC in the bottom when I start a new fire.

  • Can anyone think of a way to implement a code/automation to help me see how much my house have “pulled” from the tanks in kWh? The data should be stored for future comparison.

Ideally the energy “used” should be expressed in “kWh used last 24 hours, last week, last month and last year”.

  • Also the opposite, can anyone think of a good way to automate something that tells me how much energy the wood boiler have put into the storage tanks after a finished burning cycle? Expressed in kWh? Ideally the energy “added” should be expressed in “kWh loaded into tanks last 24 hours, last week, last month and last year”.

I would be really grateful for any help!

I did the same once for my solar panel pool heating.

The basic formula is : flow (water) x Delta Tº x conversion factor.

Delta Tº is the temperature in - temperature out (into your tanks, out of your tanks)

1J/s = Watt
To heat 1ltr of water 1 degree takes: 4.18kJ.

So you might need the Reimann integration to get the total kW’s produced. Or just delta T of the volume heated.

Same applies for the cooling of your tanks. Delta T x Volume cooled x conversion (to KWh)

Unfortunately I can’t send you the code. I had my sd card fried and I lost it all.

Interesting enough I have more or less the same set-up but with solar panels for hot water. In this case the tanks are heated by Solar Panels.

Thank you for your reply! Interesting to hear that you had kind of the same setup!

Really sorry to hear that your card was fried! Must have been a pain… Would be really helpful to get your code.

But at least you give me hope that this can be accomplished! I wish I had a better understanding of coding in HA, and a whole lot more time on my side… I do hope some nice person will stumble by here and help me a bit on the way with the coding! A lot of nice and smart people on this community! :slight_smile:

Regarding the flow, I do not know it and have no way (that I know of) to measure it. There is a circulatory pump for the water from the boiler to the tanks, and one for the water circulating through the tanks to the radiator system, but I do not know the flow. The flow is off course affected by the settings on different radiator valves.

Do you think that knowing the flow of water is really needed to calculate kWh “produced” and “consumed”? Wouldn’t it be possible to calculate it by just knowing the delta of the temp in the tanks when starting a fire and when it has burned out?

A problem though is that the house has a heating demand when the fire is burning and the tanks are heating up. Some of the heat produced goes to the tanks, and some goes to the house.

Thank you again for your reply!

These are my tanks. Same concept.
What remains is the energy in is the amount of water multiplied of the temperature increased.

If you do it statically, you must find a moment when there is no heat demand. Then the energy is volume of your tanks multiplied by the delta T.

The coding in itself is easy.

These are the temperatures of my hot water tanks. I also calculate the loss of temperature over time. This I want improve with better insulation.

I have a hybrid system. If there is no sun I heat the water with a heat pump. I manage that with a HA thermostat. It to my opinion more important to understand your losses then your produced energy.

Anyway I think you must have a pump between your burner and your tanks and that pump will have a flow which you can find on the pump or in the specs.

I’m setting up something similar at the moment with the goal to control heating of the tap water boiler to the current electricity price. My plan is to have three temperature sensors on the tank, just like your set up. Then “split” the tank in three parts, calculate volume of water in each part and then assume temperature is evenly distributed within the respective part.

From that I should be able to tell how much energy is stored in the boiler and how much is needed to raise the temperature by x degrees. Also get time needed to go from temperature x to y.

You should be able to do a similar calculation on the accumulator tanks and derive energy from the wood boiler as well as consumption. Regarding the consumption of the house, you might messure a couple of typical use cases, e. g. messure consumtions at a few different outside temperatures and then interpolate and make assumption as of how much energy from the boiler that do not load the tanks during a fire session.

I was thinking about what you said about doing it statically. I can simulate a “no heat demand” from the house, by simply not allowing any hot water to circulate.

If your formula is right, then I would at least get the amount of energy “produced” when heating the tanks? If I do this 3-5 times, I would then get a mean value. Energy produced will vary depending on what type of wood burned, moisture content and such, but it will give me a rough idea. The number I would get could then possibly be used for statistical purposes.

Not nearly exact as it could be though, but I can not find the flow of my pump, it’s not written anywhere. It’s a Esbe LTC261.

One more question if you don’t mind, the charging pump can be used for calculating the power in kW. I think it has got something to with the delta between the temperature of the water coming from the boiler and the water that flows back from the bottom of the tank.

Could you think of some coding that could be useful, would be nice to have a graphical number “Power in kW” when the boiler is running. Might give you an idea when it’s time to clean the boiler and how much difference hardwood makes compared to softwood.

I have sensors installed on the loading pump:

[EDIT] I looked it up and knowing the flow is required. The formula is:

Delta between in and out from the boiler x flow (l/h) x 1,16 / 1000

Temperaturskillnad (°C) mellan inlopp och utlopp på pannan (= termometrarna på Laddomat 21) x Flöde* (l/h) x 1,16 / 1000

The whole energy calculation is based on the fact that it takes 4.18 joules to heat 1 ml of water with 1°C.

So if you have the delta T and you have the flow (l/h) you can obviously calculate the energy added per hour.
I have searched internet as well on the type you gave me but nowhere they give the flow.

However if you have a 50 ltr tank and you raised the temperature of that tank with x °C in an hour you can calculate the energy added. HA has an function which does that automatically based on the temperature sensor of the tank.

Like this:

sensor:
 
  - platform: derivative
    source: sensor.tank_temperature
    name: Delta T° per hour Tank 
    round: 2

Hi, I’m looking to allay to something like this:

Can you share how you connect the temperature sensors to the water tank?