Moving into a stone-built cottage with single glazing and bottled gas central heating has been a (good) learning experience. Fortunately we have a combi-boiler so have on-demand hot water, but the central heating timer cuts power to the boiler so no heating = no hot water. Also, the thermostat is by the front door, so provides a wildly different temperature from the rooms! My project is to hack into the thermostat and replace it with a raspberry pi providing timed heat as well as using information from a wireless thermometer located nearby, and then to add some intelligence to try to save money and the environment.
I was inspired to build this after David Hunnisett gave a presentation at a Bangor software developers lightning lunch. His project was to hack his wireless thermostat and use a BeagleBone to figure out whether anyone was in the house (or returning home) based on their personal devices network presence. Pretty cool stuff. This is a little more basic, and I’ll be happy if we just get the following:
Of course once you’ve got control of the heating system and a connection to the network you can think about automating a raft of other things, for example:
A couple of friends founded the amazing OpenEnergyMonitor project in North Wales, and Glyn’s enthusiasm for this sort of thing is infectious. Once I’ve got a basic system up and running the next logical step is to collect usage data for the other parts of the house, and tie it all together with things like outside temperature and humidity. There’s (almost) nothing I love more than stats, so this project will be like Christmas!
Okay, I’m sure this project will end up being like my first foray into building a MythTV media server 8 years ago and will take more time and money than buying an off-the-shelf solution, but that’s not my motivation. My primary reason for doing this is that there’s something really cool (pun intended) about interacting with the real-world with software, and the (hopefully) satisfaction of hearing the heating click to life because of a piece of code I’ve written is pretty inspiring.
Secondly, information is king. I want to be able to get at everything later and see what my house has been doing. Most proprietary systems lock you in and only let you do what they want you to do.
Finally, if I can complete this and package it into something that’s useful enough for someone else to hack on, all the better. The Pi-powered thermostat interface problem seems to have been solved many times, but the software to sit on top of it seems less readily available.
My background is in software engineering and networking, so because I see the electronics and physical side of this as the biggest challenge I’m tackling that first. Fortunately there’s a wealth of information about this exact use-case on the Internet (if only I had internet at home!).
The first thing I did was to open up the thermostat to find out what terminals were available. Mine has 4, including 1 earth and 1 live. I’ll kno a bit more once my multimeter comes back from storage in a week or so.
Thanks to @GlynHudson I cut out needing to solder my own relay board for the Raspberry Pi and ordered the following to go with my existing Pi, SD card and power adaptor:
My original plan had been to use a latching (bistable) relay so the Pi didn’t need to apply current constantly, but decided a fail-safe option is better, and if the Pi dies so will the heating, rather than using up all my gas!
Once those components turn up (and I get some time), I’ll let you know how it’s going.
Was this post useful? Why not help others find it by sharing on twitter. While you're there, get in touch and let me know what you think!