At my hackerspace, i3 Detroit, we have programmable thermostats that frustratingly reset your settings at fixed times. At home, our old thermostats just have a setting lever, and our power company has started time-of-day metering. So I decided to replace the thermostats at both i3 and home with smarter, programmable, networked versions.
Standard forced-air HVAC systems are surprisingly easy to control. The standard thermostat cable in the walls contains color-coded wires with the following functions:
R — Red — 24VAC power
Y — Yellow — Cooling
W — White — Heating
G — Green — Fan
C — Black — Common/ground, optional
The 24V AC power comes from a 5:1 transformer at the furnace. To turn on the cooling, heating, or fan, you simply connect power (R) to the corresponding wire, Y, W, or G. If you program an internet-connected micro-controller to drive relays that switch these connections, then you have full local and networked control over these functions, and it can respond to data captured online.
You may find Rh and Rc wires (hopefully labeled with stickers) instead of an R wire. These are heating- and cooling-specific power sources that should connect to the W and Y wires separately. The fan wire lets you switch the fan manually at any time, and a standard HVAC system also automatically turns the fan on when needed for heating and cooling.
NOTE: If you have a dual-stage furnace or a heat-pump system, or if you find additional or different wire colors, you’ll need to do more research into your installation. The basic control scheme will be the same as described here, but the logic may be more complicated and include restrictions.
This article first appeared in MAKE Volume 30, page 54.