Boiler "Cycling" by Programable Thermostat?

Perhaps a bit off topic but the data was collected with my emon and add home made add on’s…

I have a Boiler, Worcester Bosch Greenstar 24Ri around 12 years old and in recent years instrumented it measuring flow/return temperatures, valve positions and the boiler / pump current. The radiators have TRV’s either manual or some are programmable ones with timers but none are “smart” I have a wireless programmable thermostat for the main temperature control. The bypass valve is pressure operated. It’s a fairly typical setup, see below.

The valve positions come form optical isolators, the current sensors are simple CT’s with an Arduino nano, there is no voltage sensor/power factor calculation. The current sensors are not [yet] calibrated, but let you see when the boiler is firing from the fan current. Temperatures come from DS18B20’s.

This gives some quite nice information on the boiler performance, you can see this morning when it fired up at 05:00

Where I am confused is what happens when the house gets to temperature, the programmer seems to change to some sort of PWM,

Over 20 minutes the programmer calls for heat; the zone valve opens, the boiler gets a call for heat from the switch, it starts the pump and goes through a startup sequence, and fires. After 6 minutes the programmer stops asking for heat, the valve closes. The boiler stops firing, but keeps the pump running as it has overrun protection.

At this point the pump is just pumping round a short bypass loop, the heat is being dissipated to the pipework between the boiler and airing cupboard (not usefully in my radiators!) After 3 minutes the pump stops. A minute later the programmer calls for heat and the process starts again.

This seems quite wasteful, both as the boiler is constantly being cycled on and off, I don’t have a way of monitoring the gas but I am assuming from the current starting it uses more than keeping it running. It also generates a lot of start cycles and wear,


  • The dumping the heat into the bypass loop also seems wasteful, would it not be better to dump into the radiators loops, I have no idea if this is a significant waste or not, I don’t know if the pump overun is on a timer or on a thermostat.

  • Does anyone have similar data from a “dumb” thermostat / timer?

  • Is this the definition of “boiler cycling” or is boiler cycling caused by the temperature sensor in the boiler on the return?

I unfortunately did not have monitoring on my boiler, however with the flow temperature at 60°c and the turning on and off that would appear that you are short cycling, the main question would be why is the controller doing this.

When this is happening is the house actually warm?.

Do you know where the thermostat is based and if it is near a radiator?

What sort of size are your radiators (K2, K1, P+) as this will determine how much heat the boiler can actually deliver into the house.

As this is a condensing boiler it would probably be beneficial to try turning down the temperature a little and seeing if that makes a difference to the runtimes and the overall temperature of the house.

Thansk! - Sorry for delay getting back.

At the weekend I fitted a new temperature sensors (ESP32+DS18B20) next to the existing thermostat-programmer to get a bit more idea of whats going on, you can see the DS18B20 sensor poking out to the side. so it’s not the exact temperature the programmer uses but will be close

The sensor is in the hallway with the radiator perhaps 7 or 8 m away - it’s a Bungalow so a big hallway/corridor. I don’t think the cycling is “radiator feedback”. as to your other questions I will do some research on the radiators, I have no idea what type they are! and yes the house is warm when we go into the “cycling”

Below is the temperature at programmer and the central heating zone valve for the last 12 hours

You can see at the point the temperature starts to reach the setpoint the programmer starts cycling the boiler. If also seems to start the heating about 05:00 to try and reach the required temperature by 06:30

During this you can see the boiler current - which I am assuming is related to the burner power.

So I think there are two types of control loop here, one within the boiler that maintains the flow temperature, I have seen that if I reduce the flow temperature knob, the fan speed drops and current drops (so I am assuming the boiler power / gas consumption drops)

The second loop is the thermostat-programmer, this can only call for heat on/off, so it modulates by PWM as it gets close to setpoint. This is probably good for temperature control, but I suspect the constant starting/stopping of the burner results in innefficent burning of gas? and certainly puts more cycling on the components.

I will try a run at say 50 degC flow temperature later this week, one challenge I have is the hot water tank, to get enough in it for the morning shower run at this time of year (cold to the mixer is 6 degC at the moment) I need the flow temperature it to be at 60.


What is the optical pickup?

My suspicion is the controller is not doing what you want and once it reaches setpoint does some ‘intelligent’ cycling to maintain the setpoint.

The evening might be a better example of how it reacts at steady state.

I’d suggest the cycling is probably being caused by the thermostat.

All my controls are done with Home Assistant now. A relay board to provide the on/off and the Generic Thermostat component with timing using the Scheddy AppDaemon addon.

I have reached the same conclusion - it was fitted 15 years ago, initially the house had only a simple timer and some TRV’s, but it seems to do some “clever” things we are not aware of.

As we get closer to steady state this evening you can even see the pulse width start to change as it ties to to prevent an overshoot.

The question comes is the constant cycling, including pumping round the bypass, to maintain the temperature setpoint using more gas? I need to get the smart meter data from Octopus, lust learned they have an API, to find out. Since being forced to go “smart” I have no way of measuring gas now, there is no pulse or anything on the meter!

I am looking for a better control system - is Home Assistant any good? I want to be able to control TRV valves as well, at the moment these have simple timed programmers.

You can see it In my Airing Cupboard Box working below!

There are 4 mains neons connected through black tubes to photo diodes and a small comparitor circuit to drive 4 digital inputs on a Pi ZeroW these pick up the mains signals to

  • Hot Water Demand (from timer)
  • Hot Water Heating Demand (from Thermostat on tank)
  • Heating Zone Valve Open (i.e. programmer calling for heat)
  • Pump Supply

You can also see

  • 1 Wire connection (the three terminal strip above comparitor board)
  • USB OTG Hub (to right of PI) this provides serial & power connections to the Arduino measuring the solar divert power and a 2nd Arduino measuring the boiler current.

At the moment it only monitors my system The space in the bottom right is for a couple relays to allow control at a later date. The multi core cables go to the box where all the terminals are connected.

The PI ZeroW makes API calls to the emonPI on the “control” V-LAN to log the data.

It’s all a bit home brew, at the time I needed the logger for the solar divert the emon shop was bare so I improvised to make one, the rest of it sort of grew organically!

1 Like

I like it. Very versatile, picks up a lot of COTS sensors and equipment. Needs dedicated hardware - preferably not a Pi (could be a PVE VM).

Does take a while to understand it though. Never update to a x.0 version and always read the breaking changes in the release notes.

You need to explore if the ones you have can be controlled remotely or not by HA, but yes, potentially.

Which it seems to do pretty well.

What would be the alternative? Likely overshoot? You could perhaps change the control such that the time calls the boiler alone for Heating and you control the Bypass valve yourself, so on overrun, it continues to circulate? You might find the circulation of the whole house increases losses though.