HVAC monitor system

  • Active since 1995, Hearth.com is THE place on the internet for free information and advice about wood stoves, pellet stoves and other energy saving equipment.

    We strive to provide opinions, articles, discussions and history related to Hearth Products and in a more general sense, energy issues.

    We promote the EFFICIENT, RESPONSIBLE, CLEAN and SAFE use of all fuels, whether renewable or fossil.

RustyShackleford

Minister of Fire
Hearth Supporter
Jan 6, 2009
1,491
NC
I thought people might be amused, and might even want to duplicate, this little widget I created for monitoring the performance of my new HVAC system. I've got a pretty high-end Honeywell 8000-series thermostat, but it won't do all that I wish.

It's a little circuit board, containing an Arduino processor.

[Hearth.com] HVAC monitor system


You mount it somewhere near the air handler, and connect the thermostat wires to it. (I'm such a geek that I actually put in a junction box for the thermostat wires, with cables to/from thermostat, outdoor unit, air handler, and to this thing - with this bolted onto the junction box's cover).

My system is a heat pump with a two-stage compressor and one-stage of electric backup heat (heat strips) - hence the set of thermostat signals I'm monitoring. This can be modified for other type systems, by adding or substracting "channels".

Each thermostat signals goes into a little optocoupler and a 10K resistor, so the load on the thermostat signals is only 2-3ma. I also power the Arduino from the 'R' signal using a high-efficiency DC-to-DC converter, so the load on the 'R' signal is 150ma or so; since the 24vac transformer is usually rated at 40VA, this load seems acceptable (and doesn't appear to cause any problems). Alternatively one could provide a separate 5vdc supply from a wall wart.

Connection to the circuit board is via wifi. This nifty Arduino, actually an Adafruit Feather HUZZAH32, has built-in wifi (and Bluetooth, but I find wifi easier to work with).

My usual connection is via a smartphone app, which I wrote using MIT App Inventor. It has 3 screens, that look like this:


[Hearth.com] HVAC monitor system
[Hearth.com] HVAC monitor system
[Hearth.com] HVAC monitor system


The leftmost screen is the primary one and shows the percentage of time the system has been in each state for a preceding amount of time; the slider at the top allows you to adjust the amount of time, and the button to the left of it allows you to toggle the slider scale among minutes, hours, or days. Tapping on any of the colored bars in the graph explicitly displays its percentage. There's a corresponding bar graph for heating modes, which of course has many more possible states. The very top shows the current system state.

The "events" screen just shows the system transitions. And the "setup" screen is pretty self-explanatory.

You can also interact with the Arduino via ASCII serial communication over the wifi connection. I do this using a perlscript running in Terminal under MacOS. (I'm sure there's a comparable way for Windows). This allows explicitly issuing commands to the Arduino (which is how the back-end of the smartphone app works). This is mainly for debug, but there is one such command that is pretty interesting, because it allows printing out a table of system states for up to 90 previous days (this info is stored in flash memory, so not lost during power outages). I paste this output into an Excel spreadsheet, so I have a database (with 2 second resolution) of system state info for all time. Pretty useful for deciding if filter should be changed, for example.

If anyone is interested, I can provide circuit diagrams, parts list (I'd say $50-100 worth of parts, including the Arduino), and my smartphone app. I'd also welcome any suggestions for improvement.
 
Just from a data perspective ecobee is doing a much better job showing data on the phone app than a year ago. I guess you have to be ok with sharing your data with them. I wish you could enter a model number and it would calculate kWh usage. I have not opened the web interface in a year.
 

Attachments

  • [Hearth.com] HVAC monitor system
    IMG_7596.webp
    39.1 KB · Views: 0
  • Like
Reactions: WFJacoby
If you can measure the amperage in stage 1 and stage 2, you can multiply that by 240V to get Watts and then use the run time to get kWh.

Ecobee is a great way to get run time data, but the math is easier for single stage systems. A variable speed compressor would be even harder to calculate without something like an emporia vue energy monitor.
 
I thought people might be amused, and might even want to duplicate, this little widget I created for monitoring the performance of my new HVAC system. I've got a pretty high-end Honeywell 8000-series thermostat, but it won't do all that I wish.

It's a little circuit board, containing an Arduino processor.

View attachment 339463

You mount it somewhere near the air handler, and connect the thermostat wires to it. (I'm such a geek that I actually put in a junction box for the thermostat wires, with cables to/from thermostat, outdoor unit, air handler, and to this thing - with this bolted onto the junction box's cover).

My system is a heat pump with a two-stage compressor and one-stage of electric backup heat (heat strips) - hence the set of thermostat signals I'm monitoring. This can be modified for other type systems, by adding or substracting "channels".

Each thermostat signals goes into a little optocoupler and a 10K resistor, so the load on the thermostat signals is only 2-3ma. I also power the Arduino from the 'R' signal using a high-efficiency DC-to-DC converter, so the load on the 'R' signal is 150ma or so; since the 24vac transformer is usually rated at 40VA, this load seems acceptable (and doesn't appear to cause any problems). Alternatively one could provide a separate 5vdc supply from a wall wart.

Connection to the circuit board is via wifi. This nifty Arduino, actually an Adafruit Feather HUZZAH32, has built-in wifi (and Bluetooth, but I find wifi easier to work with).

My usual connection is via a smartphone app, which I wrote using MIT App Inventor. It has 3 screens, that look like this:


View attachment 339464View attachment 339465View attachment 339466

The leftmost screen is the primary one and shows the percentage of time the system has been in each state for a preceding amount of time; the slider at the top allows you to adjust the amount of time, and the button to the left of it allows you to toggle the slider scale among minutes, hours, or days. Tapping on any of the colored bars in the graph explicitly displays its percentage. There's a corresponding bar graph for heating modes, which of course has many more possible states. The very top shows the current system state.

The "events" screen just shows the system transitions. And the "setup" screen is pretty self-explanatory.

You can also interact with the Arduino via ASCII serial communication over the wifi connection. I do this using a perlscript running in Terminal under MacOS. (I'm sure there's a comparable way for Windows). This allows explicitly issuing commands to the Arduino (which is how the back-end of the smartphone app works). This is mainly for debug, but there is one such command that is pretty interesting, because it allows printing out a table of system states for up to 90 previous days (this info is stored in flash memory, so not lost during power outages). I paste this output into an Excel spreadsheet, so I have a database (with 2 second resolution) of system state info for all time. Pretty useful for deciding if filter should be changed, for example.

If anyone is interested, I can provide circuit diagrams, parts list (I'd say $50-100 worth of parts, including the Arduino), and my smartphone app. I'd also welcome any suggestions for improvement.
I took electrical in school, but electronics is way cool ! We used to use PLC's in my day, but these CPU's packages seem really good ie the RaspPie seems to be used alot. I really like the WIFI link. Great interface.
 
  • Like
Reactions: WFJacoby and EbS-P
If you can measure the amperage in stage 1 and stage 2, you can multiply that by 240V to get Watts and then use the run time to get kWh.

Ecobee is a great way to get run time data, but the math is easier for single stage systems. A variable speed compressor would be even harder to calculate without something like an emporia vue energy monitor.
Yes I know I run 1.8-1.9 kw in stage 1 and like 2.8-2.9 kw in stage 2. (From the manual. And verified by my Tesla app within 200w).

At the end of the day it’s neat data but doesn’t help me save any money;)
 
  • Like
Reactions: WFJacoby
Good stuff rusty. I assume since you aren't tinkering with the system anymore it's running well?