Custom Raspberry Pi Thermostat Controller


Thermostats can be a pain. They often only look at one sensor in a multi-room home and then set the temperature based on that. The result is one room that’s comfortable and other rooms that are not. Plus, you generally have to get up off the couch to change the temperature. In this day and age, who wants to do that? You could buy an off-the-shelf solution, but sometimes hacking up your own custom hardware is just so much more fun.

[redditseph] did exactly that by modifying his home thermostat to be controlled by a Raspberry Pi. The temperature is controlled by a simple web interface that runs on the Pi. This way, [redditseph] can change the temperature from any room in his home using a computer or smart phone. He also built multi-sensor functionality into his design. This means that the Pi can take readings from multiple rooms in the home and use this data to make more intelligent decisions about how to change the temperature.

The Pi needed a way to actually talk to the thermostat. [redditseph] made this work with a relay module. The Pi flips one side of the relays, which then in turn switches the buttons that came built into the thermostat. The Pi is basically just emulating a human pressing buttons. His thermostat had terminal blocks inside, so [redditseph] didn’t have to risk damaging it by soldering anything to it. The end result is a functional design that has a sort of cyberpunk look to it.

[via Reddit]

13 thoughts on “Custom Raspberry Pi Thermostat Controller

  1. I’ve been thinking of monitoring the thermostat activity, possibly adding some simple controls. I have programmable thermostats that record the run time on the air filters, but report it in units of weeks (168Hr). I’d also like a means of of triggering 15 minutes of heating or cooling, regardless of the temperature. Tapping into the thermostat wiring gives me access to the compressor, furnace and fan circuits.

    The HVAC system also provides 24VAC power to the thermostat.

    One side of the 24V transformer connects to the various relays controlling the HVAC system. The cool (Y), heat (W), and fan (G) devices are powered by connecting the (Y), (W), and (G) circuits to the (RH) circuit (the other side of the transformer). Power for the thermostat is provided across the (C) and (RH) wires. (RH) and (RC) are often tied together.

    In my system (single stage compressor / furnace), the cool (Y) circuit draws 310mA, the heat (W) draws 120mA, and fan (G) draws 270mA. The fan (G) must run when either Comp (Y) or Heat (W) run, so maximum current is 580mA in cooling. This suggests the transformer may be rated at 750 to 1000mA.

    Several possibilities:
    1) You can power your Pi from (C) and (RH) source using some sort of power converter.
    2) If (C) is absent, you may be able to draw a few mA from the (Y), (W) and (G) circuits to (RH).
    3) Add a temperature sensor, and you have just built your own thermostat.

    1. If the transformer is rated to say 1Amp, then that wouldn’t be enough to power the pi too. One would have to add a power source which is what was done here running the cable down the wall. I talked to my local home depot guy and he says the 24V can probably take a max of 5 amps. I wonder if one could change out the transformer and get one that can power the pi as well and you wouldn’t need but a converter from 24VAC to 5VDC coming in the red wire.

      1. I’m not an expert and I would be pleased if someone could me if I am wrong. From what I have researched HVAC systems typically have a transformer rated at 40VA or higher. 24VAC it can supply 1.6amps. If it used 1 amp at 24VAC you still have .6 free, Now if I understand that correctly 24VAC * 1A = 24VA. 40VA – 24VA = 16VA left over. If you convert to 5V that should give you roughly 3 amps left over in the system and should be enough to run the PI safely. But one could also upgrade to a VA60 or even VA100 rated transformer.

          1. With AC voltage you need to consider PF or Power Factor. Check out here :
            for a calcuator. For 24 VAC and 40 VA and a PF of 0.5 (that is what I typically see), one gets 0.83 amps and basically 20W (W=VA or 24*0.83333) of energy. For going to 5V, in my mind I would think of voltage as the inner diameter of a pipe and the amperage as the flow through that pipe. So reduce the inner diameter (5VAC) and the amps should go up since you are pushing more flow through a smaller opening. So in this situation one can suggest 4 amps max (A=W/V or 20/5). Well this is how I understand it.

          2. you may want to run 120 to power the pi and use relays to turn on and off your system that way you are not drawing anything from the transformer and keeping that system the same.

  2. Remember, the first TV remote was a long stick.

    What the heck, it’s great stuff. Once you get this down, there’s almost no limit to what you can do.

    Well, time to put on the goggles and mow the lawn from my couch…

  3. Furnace control boards are touchy things. I’d be sure I could source or fix one if the Pi threw the wrong combination of signals at it. Great project, but my Pi can’t always run OpenElec properly, I’d hate to trust it with keeping my pipes warm.

    1. Run the stable version of raspian, that is rock solid. Also, make sure your power supply is large and provides at least 700 mA, preferably more. Most if not all stability problems on the pi are due to too little power, where the whole voltage drops and the pi reboots. I have noticed that the media center editions for the pi are a little buggy and unstable. With Raspian, I have never had a crash or reboot that was surprising so far, in all the 2 years I have been using PIs and I would trust it to controll my heating any day (and am working on a project for it)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.