After the carpi project, the number of Raspberry pis in the house increased to the point where I nearly had one per room performing one of more tasks (TV boxes, wifi AP, network balancers to deal with the fact that we have both ADSL and satellite internet). Overtime, I wondered what I could use them for since they weren't doing much most of the time.
As our heating system doesn't have a thermostat (it relies entirely on the temperature of the water coming back to the boiler from the radiator circuit; needless to say it's vague and hard to control accurately), I though that maybe if I could know the temperature in each room I could manage it better. The Radpi project was born.
I started listing the requirements of the project:
- It had to control the boiler.
- It had to not disturb the existing tasks of the house pis.
- It had to be able to sense the temperature in a number of rooms, and adjust the temperature of the house.
- It had to make "smart" decisions so that the house temperature could be different at different times of the day.
- It had to be flexible enough so that I could change the rules whenever I wanted (e.g. depending on the season).
The first requirement wasn't an easy one: the boiler being old, it had no sensor, and no way to control it. I could however switch it on and off with a wemo wifi socket (I have 2 of those in the house, I could scavenge one). I had to use my phone of course to do so, but if my phone can do it, some reverse engineering of the app should tell me how to do it myself. That would be job #1.
Sensing the temperature in various rooms isn't difficult in itself with a temperature sensor connected to the pis, but I had to centralise that information and store it somewhere. That would be job #2.
Finally, the design of the command centre using the temperature information to control the boiler would be job #3.
Next step: boiler control