Burning Oil

An Eccentric Anomaly: Ed Davies's Blog

Oil Use

The house I'm renting has oil-fired central heating. It's a leaky old house so burns quite a lot so I've been playing around with methods of reducing the consumption while still keeping things comfy. I got an oil delivery earlier in the week that provides a good point to check some of my measurements.

The delivery was 910 litres on 2019-01-09 Wednesday. The previous delivery was on 2018-09-25 so 106 days before.

Actually, the delivery was 907 litres but they added another 3 litres for the correction to 15 °C. That's the first time I've seen them do that; it was a different tanker from last time. The delivery slip also gave the density as 846 kg/m³ though it's not clear if that's at the delivery temperature or the nominal temperature. Whatever…

Wikipedia's Heating oil article says “Heating oil produces 138,500 British thermal units per US gallon (38.6 MJ/l) and weighs 8.2 pounds per US gallon (0.95 kg/l)” which is quite a bit denser than the delivery note indicates. It also says “Most heating oil products are chemically very similar to diesel fuel used as motor fuel” and the one for Diesel “As of 2010, the density of petroleum diesel is about 0.832 kg/L”, which is much closer, and “…and when burned, it offers a net heating value of 43.1 MJ/kg…”.

I'd assume that “net heating value” is the lower heating value, that is the heat produced excluding that contained in the water vapour resulting from burning the hydrogen in the oil. The Kersosene article is a bit clearer about this: “Heat of combustion of kerosene is similar to that of diesel fuel; its lower heating value is 43.1 MJ/kg (…), and its higher heating value is 46.2 MJ/kg…”.

The boiler here, installed in the summer, is a condensing one but I wonder how much it actually does condense given that I have to set the water flow temperature towards the top of the range to deal with the coldest days and because the thermostat on the hot water tank has a high hysteresis, such that if it's not got hot enough one day it might not call for heat the next leaving tepid water later. Something to sort out once the worst of the winter is by and lower levels of heating are required. On the other hand, it cycles quite a bit so spends a lot of its time just bringing the primary water up to temperature so likely the return water is relatively cool for a significant proportion of the time.

Anyway, I don't think it's unreasonable to assume an overall heating value of 45 MJ/kg for now.

910 litres at 0.846 kg/l and 45 MJ/kg gives a total heat output of 34.64 GJ. Over 106 days that's an average of 3783 watts (91 kWh/day).

(So I'm using, just for personal space heating and some DHW more than the average European uses for all purposes. Humph.)

Boiler Run Time

Ideally I'd measure when the boiler is running directly. If it were my house I'd put a DIN-rail mounted energy meter with a pulse output directly in the line from the wiring centre to the boiler then use an ESP32 to signal the pulses via my MQTT broker for logging. That's a tad invasive for a rental property, though.

Instead, I have a 1-wire temperature sensor tie wrapped to the flow pipe for the radiator in my study, insulated with a cloth tie wrapped on top. Here are this morning's measurements. Click to embiggen.

The red line, using the left-hand y-axis, is the room temperature in the study. Everything else is scaled to be read from the right-hand axis.

The green line is the radiator flow temperature. It climbs when the heating comes on at 07:00 then wobbles for a while as the boiler short cycles until the thermostat in the living room stops calling for heat just before 08:30. It then comes on three more times, the first with one short cycle.

The black “square-wave” line is my software's estimate of when the boiler is running. Basically it assumes that when the radiator temperature starts to rise at above a certain rate the boiler has come on and is assumed to stay on until the temperature starts to drop at more than a certain rate.

There's a lag introduced by the time it takes hot water to get from the boiler to the radiator and for the software to see the change but that's quite small. There's a slightly longer lag and a bit of smoothing as the boiler stops but still it's not a bad overall estimate.

For comparison, the blue line is the total household electricity consumption measured by a CurrentCost meter. There are shallow bumps caused by the fridge (e.g., around 06:30) and a spike at 09:45 ish for the kettle for coffee then computer power consumption after that but the rest is down to the heating system.

There are two levels apparent: a lower one when just the circulation pump is on and a higher one when both the pump and boiler are on. For the initial start, at 07:00, the boiler is cold so as soon as the programmer and room thermostat call for heat both the pump and the boiler come on together.

Around 07:30 the water in the whole CH system is up to the boiler thermostat's setting and the boiler starts to short cycle. During this time the circulation pump continues to run. At about 08:25 the room thermostat cuts both off (leaving just the fridge running).

As you can see, the black line follows the boiler operation reasonably closely but the lags mean that it's somewhat out of phase during short cycling. Still, overall it seems that the black line approximates the boiler run not too badly though it's probably a bit of an overestimate.

So how much do I think the boiler ran?

On the chart the boiler run line is scaled to 0 (off) and 20 (on) but in the software it's a simple 0 or 1. My server software can do integrations so:

wget "http://localhost:1993/integral/$/boiler?start=2018-09-25&end=2019-01-08" -O boiler.json

gives

{
  "topic": "$/boiler",
  "count": 11967,
  "min": 0,
  "max": 1,
  "start": 1537833600.0,
  "startf": "2018-09-25T00:00:00Z",
  "end": 1546991999.999999,
  "endf": "2019-01-08T23:59:59.999999Z",
  "duration": 9158399.999999046,
  "integral": 1872942.6349951029,
  "average": 0.20450544145214206
}

In other words, in those 106 days (first and last days are inclusive) the boiler ran, on average, 20.45% of the time for a total of 1872943 seconds.

According to the chap who commissioned the boiler it's fitted with the nozzle which gives a flow rate of 0.55 USgal/h which works out as 2.082 l/h or 578.33 μl/s (microlitres/second). Over that many seconds, that comes to 1083.2 litres.

Compared with the 910 litres put in the tank that's extremely cromulant with the notion that the software-derived boiler-run time is reasonable but a bit of an overestimate.