This tutorial is a section of my wider series on creating a home automation solution for heating and watering in my house. Refer to the index here.
In this post we describe the overall architecture we’re trying to achieve for the heating and watering system, and how the components interact.
The aim is to have a set of automatic radiator valves, with each valve knowing it’s current setpoint. This setpoint is changed during the day based on the zone that particular valve is in, and the settings I’ve made for each zone. We control the boiler so that it only turns on if valves are open, and we control the boiler runtime when there are only a few valves open.
The core of the system is a raspberry pi running linux and an open source home automation server called openhab.
Openhab in turn is using an 868MHz radio dongle (known as a CUL) to communicate to a set of wireless radiator valves throughout the house. The radiator valves are Max! EQ-3 valves, and we also have wireless wall thermostats to allow a degree of manual control over the system.
Openhab communicates with the boiler through two raspberry pi relays, controlled through GPIO pins. These relays open and close valves to the heating loop and turn the boiler on and off.
We also use an opensprinkler board to control our sprinklers. This board also powers the raspberry pi. The opensprinkler board again is controlled by openhab.