Controlling the central heating system

Introduction

In April 2009 I became the proud owner of a new Remeha Avanta central heating unit along with a Honeywell Chronotherm modulation thermostat. My previous thermostat was a RCS TR40 which was hooked up to my home automation system via a serial interface. That setup allowed me to intelligently change the temperature setting, set the clock on the thermostat, and display the outside temperature. It was even possible to display reminders on the thermostat. I knew that last feature would not be possible with the new thermostat, but it would be really nice if I wouldn't lose all of the convenient possibilities I had grown used to.

Automation options

Of course I could still choose to use the old thermostat with the new central heating unit. But using a simple on/off control device would greatly reduce the efficiency of the system compared to a modulating thermostat. Another issue was that the old thermostat was powered from the boiler and the Remeha Avanta doesn't provide a 24V AC connection. Finally, I had the impression that the heating algorithm used in the TR40 wasn't very sophisticated, causing quite big temperature swings around the specified setpoint.

The Honeywell thermostat does provide a so-called "tele" contact that allows a home automation system to override the normal program, forcing the thermostat to a pre-configured temperature setting. But that is a far cry from all the features I used to have available. Then I found that the boiler has a serial interface. There wasn't much information about that available, but Remeha does provide a program that can be downloaded for free. The serial connector only has four connections, so that could be figured out pretty quickly. But after hooking up a PC it became clear that it would only be possible to monitor information and change some basic settings that way. It did not allow any of the desired interactions with the system.

OpenTherm

The final option was to do something with the OpenTherm protocol that the thermostat and boiler use to communicate with each other. Stories on the Internet gave the impression that this would be hard. You either need to buy a device like the Remeha gateway or build one yourself. The Remeha gateway is quite pricy and it converts the OpenTherm data into its own undocumented format. So the chance of successfully interfering with the OpenTherm protocol in all the desired ways may be slim.

There is a schematic from Elektuur for an OpenTherm monitor floating around on the web that can be used as a starting point for building your own OpenTherm gateway. But as the name indicates, that device is only designed to monitor the OpenTherm messages. It does not provide any means to modify the messages on the link.

DIY Gateway

So I sat down to design my own OpenTherm gateway, which turned out not to be nearly as hard as I expected from the horror stories on the internet.

After happily using my prototype built on perf board for a few years, I was contacted by someone who was interested in building the gateway as well, but wanted to have a proper printed circuit board made for it. Since most circuit board manufacturers will usually produce small batches rather than indivual boards, I wondered if I could have one of those extra boards, to which he agreed. This provided a nice opportunity to make some slight modifications to the design to fix some minor issues I found with the original device.

The whole circuit easily fits on a circuit board of less than 8 by 10 cm.

OpenTherm Gateway

The circuit is designed around a PIC16F88. The features of the PIC are used in such a way that no code is needed to forward messages from the thermostat to the boiler and vice versa in monitor mode. However, with the appropriate firmware, the device is also able to create and send any desired OpenTherm message.

Functions

The firmware has been customized for the combination of a Remeha Avanta boiler with a Honeywell Chronotherm Modulation thermostat, but has proven to work with other combinations of boilers and thermostats as well. The current version provides the following functions:
  • Forward OpenTherm messages between the thermostat and the boiler
  • Report about the messages on the serial interface
  • Change the thermostat setpoint
  • Set the clock of the thermostat
  • Send the outside temperature to the thermostat
  • Smart power support
  • Support Opentherm and on/off thermostat, or even no thermostat at all
  • Read an outside temperature sensor
  • Control the domestic hot water option of the boiler
  • Obtain additional information from the boiler
  • Firmware updates through the serial interface

Feedback

For questions and discussions about this and other opentherm related projects, visit the Opentherm Gateway Forum on domoticaforum.eu.