Central heating control

I've been experimenting with a better central heating control system than just a single room thermostat with thermostatic radiator valves.

Here's a rough diagram of our house heating system as it was:

When the temperature at the room thermostat (often known as a stat) drops below its set point it requests heat from the boiler. Hot water is then passed round the heating loop and allowed into each radiator (also known as a rad) if the corresponding thermostatic radiator valve (TRV) allows it to.

The problems with this arrangement are:

The (incomplete) replacement system is shown below:

The controllers in the current system are Raspberry Pis which are networked (one using ethernet and one with Wi-Fi). The temperature sensors are DS18B20 connected to the Pis using the 1-wire bus. The controllable valve is a replacement TRV head called a multi-fit thermal actuator.

With this arrangement the system knows the temperature in the living room and bathroom and can control the boiler and the bathroom radiator valve.

This is all set up with an Android app which talks to the controllers via its Wi-Fi connection.

The code for the controllers and app is on github.