Creating an energy efficient Smart Home Heating System using Domoticz

The Abington Institute has been a central meeting point for the village since first opening in 1909. Now, in 2017, the time had come to replace the old heating boiler and add an intelligent heating control system to enable the village hall to be comfortable but save energy and money.

" We needed an improved, energy efficient heating system to allow the Institute to serve our villagers and save money "

... Management Committee

Abinton Institute

Introduction – why did we build the heating control system?

The Abington Institute Management Committee spent some considerable time investigating alternatives to fossil fuel fired boilers to heat the Institute. There are a multitude of choices all with various compromises, costs, potential payback schemes, needs for space/land etc. Add to that the fact that the government changes the payback schemes faster than the management committee can get quotes, review, respond and implement and it seemed impossible to find the right solution.

Interestingly, in an independent survey we requested, we were more likely to save money (and be green) by not wasting heat, however it was generated, so the old, overcomplicated, troublesome boiler (that no one could fix) was replaced with a physically smaller one with the same heating capacity made by a well-known boiler manufacturer for whom competent service engineers can be readily found within 5 miles.

The old boiler had one clever (if inefficient) trick; it used to turn on if the weather outside became cold and then the radiator stats in each room would control the room temperatures. The new boiler has just ONE (indoor) thermostat, and so cannot really know when to heat the whole building. Therefore in addition to the boiler being on more than it need be, users would arrive to cold rooms because the radiator stats had been turned down (as is the rule, to save money) and sometimes, to add insult to injury, turning the radiator stat up would have no effect because the boiler would be off, having reached the target temperature where the single room thermostat was.

To overcome this a home automation

system has been developed and installed that can control the set-point temperature of every radiator stat individually, by radio control, and a central controller downloads the expected building occupancy matrix from the Institute website and turns the radiators on, to the desired temperature for the occupying group, in advance of each room’s occupied periods and turns the temperature down when occupancy ends.

" Thus we only heat rooms that require it and for the shortest time possible. Providing the best comfort for the lowest energy cost, with the least amount of human input. "

Features and Benefits

Feature Benefit
Sets rooms to correct temp for booked group Group arrives to find room(s) ready for use
Sets rooms to background temp when empty Institute does not waste money heating empty rooms
Runs without intervention (from bookings) No one has to go in early to turn on radiators
Allows manual intervention by wall thermostat Allows groups to adjust the temperature
Different temps are set for each group/room To suit different activities per room for each group
Knows the heat-up rate for each room Can turn on heating just in time for a room
Can be controlled via a web page or phone app Any late changes can be managed remotely
Knows parts of the building are communal Can also ensure that Foyer etc. heated when required

Equipment Used

Equipment Item Quantity
AeoTech Z-Stick USB Z-Wave controller 1
Raspberry Pi v3 1
Qubino Z-Wave 1D relay 1
Fibaro Z-Wave single switch 2 2
Comet Z-Wave Thermostatic Radiator Valves (TRV) 2
POPP Z-Wave Thermostatic Radiator Valves (TRV) 6
Danfoss Z-Wave Temperature Sensors 4
Assorted MK Grid electrical bits: momentary switches, indicators, fuses -

Total cost of hardware for a building of considerable size with four main rooms (plus other less used rooms) was less than £1000 which we expect to recoup in a couple of years by reducing our £3kpa heating oil spend. It was hugely less disruptive and less expensive than re-plumbing the building to change the single heating zone (just one flow/return feeding all the radiators and heat exchangers) to have 6 zones instead.

All the equipment has performed flawlessly, but I will be able to give a better view on those once they are re-incorporated into the stable system we now have.

The two Fibaro switches are to control the existing two fan-driven heat exchangers that are used (along with one radiator) to heat the Main Hall, a space of about 300m3.

The Qubino is used to control the central heating valve on the heating system because it has volt-free contacts that allow us to interrupt the feed from the existing C/H controller (which is now set to ON 24/7). This was preferential to removing the existing controller because that also controls the hot water which we did not need to alter and it allows fall-back to the old system should we have a problem with the new system.

The electrical bits and pieces were to make a proper job of wiring in the Fibaro and Qubino devices, to add a manual control switch (also very useful for enrolling!) and an indicator light and fuse.

Software Used

We decided to use a RaspBerry Pi (v3) board running software to enable us to program exactly what we needed.

  • Domoticz Automation Server for Linux on the Raspberry Pi
  • A custom Python script to interface with the Occupancy Data from the Institute Booking Website called
  • A PHP page on the Booking Website to produce 7 day rolling schedule of Occupancy Data as JSON

Domoticz and are both started at bootup.

Dynamic DNS

We also use to be able to access Domoticz on, and SSH to, the Pi using a domain name because BT are our ISP and do not provide static IP addresses. However, with the IP address check for the domain running every 5 minutes, it is very rare not to make an immediate connection.

High level Schematic of Booking System and Heating Control

The online booking system already existed, built in PHP and MySQL, and handles bookings and invoicing for the Abington Institute. It offers the next 7 days booking schedule as a JSON file which is collected each day by the Python program running on the RaspBerry Pi that is at the Institute.

Abington Heating Control SchematicFigure 1: Abington Heating Control Schematic.

The Pi is also running Domoticz which gives a detailed interface (via app or web page) to all the Z-Wave items in use and accepts http commands to control those devices. So, the Python program sends http commands to Domoticz when rooms need to commence heating ready for a booking or to turn the heating down as a booking ends.

To allow external internet access to Domoticz etc. we are using to be able to access the Pi on

Domoticz allows configuration and control of all aspects of the system and provides everything that is needed to setup, control and monitor the status of all devices which include TRVs, wall thermostats and switches to control the fan driven heat exchangers in the Main Hall and the boiler.

Here is a dashboard of some crucial values for the developer/installer:

Domoticz Software InterfaceFigure 2: Domoticz Software Interface.

It also allows for display of a floor plan with as many or few key details as you may wish on it. Again, we use this for a detailed view of what’s happening if we need it, which has been very useful during the development of the Python program.

Domoticz Floor PlanFigure 3: Domoticz Floor Plan.

On the floor plan we are showing every device. If we could change the image used for the Danfoss wall thermostats it would distinguish them from the POPP TRVs and the status diagram would be much clearer; yet another item on a never-ending list of things to do. At least there was a good icon of a large red fan available for the Heat Exchangers and the bonfire for the boiler. Items with an ON/OFF status turn monochrome to signify that they are off.

Domoticz Heating GraphFigure 4: Domoticz Heating Graph.

Domoticz is also very useful for assessing the heat-up rate of each room, which is vital data to be able to calculate the time at which to start heating the room up. Some of the rooms are quite large and take quite a while to get to temperature. Of course, a next-step for the Python program is to record the heat-up rate for itself so it can learn how that varies depending on the start temperature, but that’s for a future iteration.

Ultimately, we will probably just use Domoticz to show the temperature and set-points of the Danfoss Wall Thermostats in the four main rooms and the POPP TRVs in other less important rooms, as they are fitted, but Domoticz is a wonderful, see everything, do everything tool to sit in the middle of the system and it has proved to be very reliable. I haven’t touched on most of its capabilities here but there are plenty of similar systems out there.

Also, very usefully, Domoticz allows access to the bottom level of z-wave communication, in this case Openzwave, where you can access all the nitty gritty for every device.

Openzwave Device ControlFigure 5: Openzwave Device Control.

Here you can see that we’ve set the maximum temperature that users can request be limited to 22°C to foil impatient users who believe that the higher temperature you request, the faster the room will heat up. I guess that comes from millennia of burning wood; the more you put on, the faster it will get warm and it will take at least a generation to remove that trait from our population.

Simple Web Interface

However, whilst Domoticz offers everything one might want as a developer, we felt we needed an ultra-clear, simple interface that shows:

  • The current time
  • The rooms
  • Whom they are occupied by, if anyone
  • The occupation times for that user in that room
  • Upcoming bookings
  • The actual temperature of each room
  • The requested temperature for each room
  • Battery status
  • Whether the boiler is on or off

This will be the easiest monitoring interface for our group of volunteer administrators.

Main Web Heating InterfaceFigure 6: Main Web Heating Interface.

Should the administrator feel the need to alter the requested temperature in a room, clicking on the requested temperature allows entry of a new value:

Individual Radiator Web InterfaceFigure 7: Individual Radiator Web Interface.

If the actual temperature is shown in red, it is still below the requested temperature; if it’s green, then the temperature has been reached. In the main shot above, you can see that the Main Hall is still on its way up, theoretically arriving at 21°C by the time the WI meet, an hour and three quarters later at 19:00. The Foyer, a communal area of the building has already reached temperature because it was used earlier in the day for the cafe. The page is built in AngularJS and runs using JSON feeds and http requests.


So, having considering every available system, from off-the-shelf TRV control systems that are, sadly, devoid of any capability to ingest data from other systems, through to mains operated TRVs controlled by multiple PiZeros, we decided to go with Z-Wave and a central Raspberry Pi. So far, that seems to have been a good decision, not least that the support from Vesternet for the Z-Wave devices has been (and remains) outstanding.

We have built the system and it works. Groups using the Institute have exclaimed in wonder to find everything warm for them, even first thing in the morning. We have a simple monitoring and control system in place and it emails people when something goes wrong or batteries are low. Never again should heating be left on in a room for three days before someone discovers it.

In 5 years’ time, such things will be the norm but I would encourage administrators of older public buildings with simple heating systems to embrace the idea that such systems can be upgraded to be more intelligent with remarkable ease and practically no disruption.


Vesternet Case Studies

Read all of our real user case studies Here