How to monitor 24VAC furnace call for heat.

Discussion in 'The Projects Forum' started by Bryceo, Feb 27, 2014.

  1. Bryceo

    Thread Starter New Member

    Feb 3, 2014
    I would like to monitor and record when my furnace thermostat calls for heat. It is a 24VAC circuit that needs to be monitored and from my understanding an opto isolator could be used to provide a 0 or 1 output signal (on/off) for an Arduino Uno or similar. That is about as far as my understanding goes and hope someone could provide some assistance with designing this.
    As an extension to this eventually I would like to monitor the furnace for calls for the circulation fan, heat and/or cool.... but let's work on the heat first.
    I am open to learning ore about the design if someone has some sample diagrams/ applications.
  2. tcmtech

    Well-Known Member

    Nov 4, 2013
    The simplest would be to use a 24 VAC relay to to provide the on off signal.
  3. MaxHeadRoom


    Jul 18, 2013
    Normally the thermostat circuit picks up a SP relay, you could put a small relay in parallel and use the contact as input.
    If yours has a spare contact then you could use that instead.
  4. GopherT

    AAC Fanatic!

    Nov 23, 2012
    You could get an arduino board and a thermistor and set it next to your radiator or warm air vent. Than record a datapoint every minute. Once you transfer the data to excel, you should be able to easily see the frequency and duration of each cycle (hot or cold) and no risk of damaging your expensive furnace board (or thermostat).
  5. wayneh


    Sep 9, 2010
    The optoisolator is a good idea, since it frees you from making even a ground connection between the arduino and the furnace. You'll need a resistor in series with the emitter LED to limit its current to a safe level. On the receiver side, you need to supply the "1" voltage to the input. On the output you could use an RC tank to smooth the ripple. The resistor will quickly drain the capacitor when the signal goes off, but the cap will hold nearly full "1" voltage while the AC signal is applied.

    A lower rent solution (that requires a common ground) would be to use a diode to rectify the AC power, followed an RC tank to act as a peak detector. Divide down the voltage on the capacitor by using 2 resistors in series for the "R" in RC. Feed the lower voltage to the Arduino.
  6. prairietech

    New Member

    Mar 12, 2013
  7. burger2227


    Feb 3, 2014
    I like that optic isolator idea too! Then all the other circuit needs is to read it.
  8. inwo

    Well-Known Member

    Nov 7, 2013
    Not just after total run time are you?

    Then a 24vac clock. (elapsed time)
  9. Bryceo

    Thread Starter New Member

    Feb 3, 2014
  10. sirch2

    Well-Known Member

    Jan 21, 2013
    If it's controlled by a relay, what about a hall-effect sensor glued to the relay case. Saw this done once on a safety critical circuit where they wanted to monitor activity but the regulatory hoops for modifying the circuit were too onerous.
  11. wayneh


    Sep 9, 2010
    I'm wondering if it wouldn't be easier somehow to get the signal you need at the thermostat. You can take for granted that the furnace is under control of the thermostat, so if you know one you know the other. Inside the thermostat, there's almost certainly a DC on/off voltage you could watch. I believe some thermostats even light an LED when they turn the system on.
  12. BillB3857

    Senior Member

    Feb 28, 2009
    One thing to consider if you put a relay coil in parallel with the relay in the furnace.....
    Many of the simpler thermostats have a system called an "anticipator" which uses the current driving the furnace relay to generate a small amount of heat that the thermostat detects. This heat, added to the rising room heat helps to prevent temperature overshoot. By adding a second relay to the circuit, the anticipator may require a small adjustment. Usually just sliding a wiper along the resistance elelment is all that is needed.
  13. audiobahn20

    New Member

    Dec 14, 2013
    I just did a project like this, I took 24AC from the T-stat (when calling for heat) built a rectifying and filter circuit and used that to power a 7805 (you could also do a zener setup, but I had a 7805 here).
    I than used my 7805 as a switch for my Arduino, I used the "state change detection" example sketch with my arduino, this spits out (serial output) data to HyperTerminal and at the end of the day I can see how much my boiler ran.
    when the T-stat calls for heat it turns on the switch (7805) triggering the software in the Arduino than send in a msg to HyperTerminal (or the Arduino serial monitor) that say" Boiler on" "count: 1"............."Boiler off" Count:1".........
  14. #12


    Nov 30, 2010
    A lot of thermostats don't have a ground wire or any DC in them. If this is a simple, SPST or a 4 wire heat&cool, you'll have to go to the air handler to get a ground.
  15. KeepItSimpleStupid

    Well-Known Member

    Mar 4, 2014
    This isn't a bad board, but it would have to modified for 24 VAC use.

    Assuming the furnce is not a heat pump and is not multi speed and not a Carrier with ath ABCD bus, the standard connections are:

    C - Common (Now required, wasn't used in older stats) May not be labeled. It's the free end of the secondary transformer in the furnace. The side not connected to R. By "wasn't used, I mean it wasn't necessaey to run to the stat since the stat was purely mechanical.

    R - The blower

    Y - Call for cool - thermostat controls the fan

    W - Call for heat - furnace controls the fan

    So, the thermostat places contact closures wit R as the common terminal.
    R,Y,G - runs the AC
    R,W - runs the heat
    R, G runs the fan

    C to R is 24 VAC at all times at the stat, if used.

    At the furnace, monitoring C to R - monitors the fan (24 VAC)
    C to W = ?
    C to Y = ?