Combi boiler automation

So I am expecting my heating system to be upgraded from 1970s oil fired to modern a gas combi boiler next month and it presents some automation questions.

Currently I put a SOnOff basic on the thermostat lines of the existing day timer in the kitchen cupboard. The only control I have over the heating is “ON/OFF”.

The new boiler (Worcester Bosch Energystar 30i) has got Live neutral and earth for accessories and controls and live return wires for heating and hot water ON/OFF.

So for step one, I can remove the link wire and put my SOnOff in their and have basic ON/OFF control for heating, leaving the hot water link in place to leave it always available, true to combi style.

However, the boiler has an external control port for manufacturer or third party integration via the EMS protocol and I can either make or buy a converter to get OpenTherm support for the boiler. This will give me access to things like the loop temp or even to inject temperature and let the boiler manage set-points. (Need much more research here).

My first questions are more around the best way to manage the boiler rather than how to automate it.

As it’s condensing it’s important that the loop return temp is kept below 54C or it will stop condensing and lose efficiency. So for “stage one” I can just set the loop temp manually to something that will make that always the case… like 55C and assuming the install engineers make any attempt at all to balance the system it should return cooler.

However for step two, if/when I gain automated control of the heat loop I want to move to a more constantly on (when I’m in the house) model by varying the loop temp based on the largest differential between a temperature and it’s target temperature. ie. backing the boiler off as it approaches set-point so that the boiler more or less stays running at a lower temp, rather than cycling and chasing with a simple ON/OFF.

I don’t intend to run the boiler 24/7 at a low temp as research suggests this would not be the most efficient use in my case due to living in an older house with higher heat loss it will be more efficient to let the house cool when I’m out or in bed.

I don’t want to go to EvoHome or similar at this stage, but instead implement my own logic to do similar. A large part of the reason is that I feel capable of creating a custom solution that may be better for my individual circumstances and a second part is that EvoHome is extremely expensive and badly priced.

So I would like to hear your thoughts, advice, ideas, concerns. :slight_smile:

1 Like

Not sure if you’ve seen this already but I came across a diy kit and a good bit of resources previously. But haven’t had chance to set it up/use it yet as my baby is still small so my wife doesnt want me messing/breaking the heating (understandable)

I have now. It’s more or less what I intend to do, so it’s a good resource. Would need to adapt it some, but still worth a read to see what, if any pit falls they ran into.

I’m also looking at these:



https://drstevenhale.gitlab.io/main/2013/08/home-automation-reverse-engineering-a-worcester-bosch-dt10rf-wireless-thermostat/

Or this adapter which then opens me to OpenTherm control:
https://wifithermostaten.nl/nefit-opentherm-converter.html

However, it depends on how easy EMS is to use direct as OpenTherm would only really be of use if I had any OpenTherm devices, which I don’t.

@paulcam, did you make any progress? I’m trying to figure out my best setup for my newly bought home. Very interested how you managed to fix your setup.

@fschade No progress on tapping into the EMS. I still control the boiler with the live return wire using a smart relay (SOnOff) and a manual adjustment of the loop temp, month by month.

I did get a short email conversation with Worchester technical team on rapid cycling the boiler, like on/off every 10 minutes. They were pretty hedgy and uninformative. They wouldn’t tell me how many on/off cycles the boiler was rated for or what was excessive, but they did say it is tested for 100 hours a month average use for 10+years. They seemed confused, like I wanted to reimplement their load-sensing PID control loop, which I didn’t. So not very fruitful and I gave up. I don’t think I even mentioned the 3rd party adapters as I’m 100% sure the answer would be, no we can’t support them and if you break the boiler, no warranty either.

A problem I ran into was over winter, trying to maintain rooms at a specific temperature, even a low one, like 16C, the demand would cycle on/off every 20mins of so, demanding 5 minutes of heating, rising to 17, then slowly dropping to 15.9C again and the heating comes on for another 5 minutes. When multiplied across 4 zones that created a lot of cycling. An ideal application for throttling the loop temp.

Still without that functionality, I looked instead of lowering the noise a bit. I am adding additional temperatures to zones. DemandHeat and AcceptHeat. So when one zone triggers a Demand any other zone below it’s AcceptHeat value, get’s heating at the same time. This should stop zones taking turns putting the heating on. When one goes they all join in.

Still implementing this as it’s happening as part of a rewrite into MQTT. I’m running out of time as the heating will start to be needed by the end of the month.

@paulcam, thanks for sharing. what i read so far is that the cycling is not very efficient. I read that modulating is more efficient. I think i will try this option: Home Assistant OpenTherm Thermostat - DIYLESS Electronics
It maybe something for you as well.

@fschade Thanks. OpenTherm is an option, especially if your boiler supports it OOTB.

When exploring options for Worchester specific, they use the proprietary(ish) EMS protocol and an adapter is a physical hardware device you have to connect to the EMS port on the boiler.

If you are looking for options and havent purchased the boiler, then definitely look at OpenTherm boilers.

@paulcam, do you use smart TVR’s in your setup? And if so how do they communicate to your thermostat or boiler controller?

@fschade No smart TRVs, but electro-thermal radiator valves switched by SOnOff S20s. I have 3 switchable zones, which are basically those rooms which can be closed off and thus not heated if not in use, type thing. Then the rest of the house is an unswitchable zone if; the boiler is on it’s on. That part has TRVs except the main hall rad which has the hardest job. If that makes sense?

I don’t have the smarts on the valve, they are just dumb smart switches. Temperature and humidity are measured independently and decisions made … I won’t say centrally as it’s not a monolithic server application … but it’s not the valves deciding if heat is or isn’t needed.

The parts for the sensor are £5 on ebay and half an hour soldering, half an hour flashing/testing, while the case 3D Prints. Oh, actually the USB power supply turns out to be quite expensive these days, unless you want a fire starter.

The bits of the radiator valves are about £30. About £15 for the valve and £15 for the smart plug, but savings could be made here. A smart radiator valve is around £60-70? And I gave up trying to find “open” ones that didn’t require you buy in to the hub and cloud.

If I was to belittle my current system, it’s basically a collection of Python scripts which subscribe to some MQTT topics, respond to events and when appropriate send other MQTT messages. In some cases there are edge connectors, that, for example, interface with HTTP/REST devices when they receive an MQTT message to do so.

The magic is in the design of the topics and flows, such that there is no state in the applications and convention over configuration beyond where the MQTT server is.

1 Like

Thanks for your eleborate reply. I don’t know if it makes my life easier or harder. I was always under the impression that you would need some sort of smart TVR’s like these 20,- (link). The solution i’m seeking is only to be able to conrtol every room separate either with voice controle or via the HA app.

@fschade If the Zigbee thermostatic valves work with HA and your happy with that, go for it.

My objectives were slightly different. I didn’t want heating control. I wanted heating automation. I want to have to intervene the least possible in the heating and have it do it’s thing.

I didn’t want cloud involved anywhere a fully self hosted offline bespoke solution.

That sort of forces your hand with regards to what devices you can or cannot use. The cloud requirement kills off most of the Wifi devices and half the zigbee ones. I decided the “easiest” route was to aim for devices that could be firmware hacked/flashed with bespoke software and just take the whole 3rd party stuff out of the equation entirely.

If you are happy with cloud and happy for the various devices to do their own thing and then try and integrate them all with HA into a heating system… I’m sure that can work. It might get somewhat messy though. I found that without that complication, just pushing all the intergration out of the problem entirely, heating control is still pretty complicated. It sounds simple, but has a lot of devils in the details.

Take a very simple scenario. Probably the most basic zone demand scenario. Your smart radiator valve has it’s set point stored in it. It detects the room should have the radiator on. It opens it’s valve. It has to publish this somewhere. Via some hub or other and hopefully the brand you choose allows that to manifest as an event in HA. So in that event handler, you, of course switch the boiler on, via some other integration. Woo hoo it works.

Sometime later that rooms radiator decides it’s warm enough and shuts it’s valve and publishes this as an event. You turn the boiler off. Job done?

Wait. In between times another room’s radiator had switch on and is now left with a demand and no heat to serve it.
Additionally another room fires an event 20 seconds later and your integration to turn the boiler on, is rejected as it hasn’t fully shut down yet.
Now the whole system is out of sync and in an invalid state.

That’s just one scenario. They sneak out of places you don’t expect.

If you can get your sensors, valves and heating boiler into purely MQTT topics. You could potentially use my setup and use HA and NodeRed for your integration. It’s a month or so yet before I’ll be pushing the new code to GitHub.

1 Like

@paulcam, thanks again. i think i’m aiming for moose TVR’s now on zigbee and need to figure out how to have a device in between the TVR’s and the boiler to be able to cover the scenario you explained. A smart thermostat should be able to do it i think. It should make the sum of all demands from the TVR’s and only switch off the boiler when all TVR’s don’t have a heat demand. that shouldn’t that difficult but maybe it is. Lets see how far i can get.

If it helps. I use a concept of “demands” which have an expiry. So events that demand heating, only cause action for a period of time and then auto cancel. This takes care of “making sure to turn it off again”. If you make everything timeout and end anyway, you can be far, far more sloppy. :slight_smile:

1 Like