Finally controlling my boiler with a Rascal
I hit a personal milestone today, but I have to tell a little of the backstory for it to make sense.
Back in early 2010, while working as an embedded systems engineer at a company that subsequently failed, I built a web-based thermostat using an off-the-shelf Linux board. It took 5 days of mucking around with kernel drivers, Python, and Django to get the web framework and the hardware underpinnings installed and working correctly. After that, it took just a couple of hours to write a Python script that looked at the temperature in the house, turned the boiler on or off appropriately, and displayed the operational history in a pretty graph.
When I was done, I thought, "Man, I wish I could have just bought a Linux board with all that stuff preconfigured, and started on the thermostat code 5 days earlier." That was the day that I decided to build the Rascal.
Now, 2.5 years later, the Rascal has reached a level of maturity where I can actually use it as a platform for efficient development of web-based systems. (Hey, if I use Rascals for 255 more projects in the next year, each saving 5 days of effort, I will break even on the time invested!)
Yesterday, I finally installed a Rascal as a thermostat in our basement and, following the new Rascal DIY thermostat tutorial, made it pull target temperatures from my Google calendar. Using Twilio, I can also send temporary overrides via text messages, so I can warm the house up right before I get home (JIT house warming, if you will). This morning, sitting in a cafe in Davis Square, I was able to check on my iPhone's web browser that the boiler was actually off. It felt like 2013 had arrived.
Because the Rascal's interface is web-based, you can see my thermostat too. The green line is the target temperature, which is pulled from my Google calendar, and the black line is the temperature as measured in our house. If the area under the black line is red, it means the boiler is circulating hot water; if it's white, the boiler is off.
(Please close the page when you're done, as each page pulls updates from the Rascal once per second. If you would like to DDOS my home heating system, perhaps you could wait until next week when it's not so cold out. Better yet, buy a Rascal and DDOS that.)
The Rascal, with a relay shield, perched on top of our cable modem in the basement. There are two relays, but I'm only using one. The 4-wire cable at the lower right talks I2C to the TMP102 temperature sensor upstairs.
The TMP102 temperature sensor, emerging from behind a bookcase in the hallway near the kitchen
Next, I plan to add the datalogging code that a Rascal enthusiast in the UK contributed and add another sensor outside so I can see how well the house is insulated.