Measuring Furnace/AC Efficiency and Preempting Failures

One of the ways to measure furnace efficiency/life is by measuring “temperature rise” (https://hvacrschool.com/furnace-air-temperature-rise/ ) which is effectively the temperature difference between the furnace inlet and furnace exhaust. A temperature rise too low or too high can indicate issues with the furnace and monitoring this can prevent very expensive repairs.

Rather than manually testing this every X months I decided this would be a cool project to automate and set alerts for if the temperature rise ever deteriorates. I bought a couple thermocouples and wired them up to a spare NodeMcu so that I could create a wireless data logger. One thermocouple was put into the exhaust and the other plugged into the inlet. Once implemented I was able to see a 25°c temperature rise which is inline for my furnace model. Next steps are setting up automatic alerts if the temperature difference starts trending out.

This is akin to process control where rather than run equipment to failure we find the key variables (indicators) and proactively measure them to preempt any failure. In a home settings this is relatively benign but in a large manufacturing setting, a fouled heat exchanger that is unable to raise the temperature high enough can cause millions in losses.

Thermocouples plugged into air inlet and exhaust
Temperature trend between the 2 thermocouples
This is the nodemcu with the 2 thermocouples. I used a spare PCB but since the contacts on the back are exposed I had to put this in a little plastic project box so nothing shorts.
This is the trend for the temperature difference between the 2 probes.

House Water Temperature Profile

I have noticed that my water appears to run hotter in the morning when I get up vs later on in the day. In truth this is probably due to relative temperature where in the morning I am colder and so things appear warmed but I still wanted to find out how much my water temperature changed throughout the day if at all.

Looking at the temperature profile throughout the day I saw some interesting spikes that occurred like clockwork at 5am. Breaking this into minitab and looking at the temperature intervals vs hour we find that there is indeed a statistically significant difference in the morning at 5-6am vs later on.

The cause is most likely that I have my heating turn on at this time and this is likely heating up the water in the pipes leading to this rise in temperature and thus leading some credence to my theory that the water is warmer in the morning. Of note the temperature sensor is on the outside of the pipe so potentially I am seeing the warm air heat up the sensor rather than the actual water but I used thermal compound to make good contact with the pipe and it is copper after all so thermal conductivity should be good.

Temperature probe taped to water mains pipe.

Incoming Water Mains Water Temperature

6 months ago I came along the desire to understand what my incoming water temperature is and how it varies over the day. As a part of this I have mounted a temperature sensor to the outside of my incoming mains water pipe and found some interesting results. Now though I understand that I am not measuring the actual internal water temperature being that this is a copper pipe I am getting a fairly close approximation.

A big result of this was my post https://adam-s.ca/data-analytics-and-finding-out-when-you-shower/ in which I investigated my ability to find when I shower based on water temperature. This is a quintessential process engineering/controls engineering problem where my desired measurable is unable to be measure and so I have to measure a separate variable that is “joined” to my required measurable and go based off that. Granted, in a big company you can buy a sensor for anything given you have the money but this is a good example for the process control on a budget.

Data Analytics and Finding Out When You Shower

I had an interesting theory mid year in 2022. The though being that you should be able to theoretically find out when you shower based on measuring the temperature of the water mains line (talk about shower thought).

The theory is simple, if the incoming water temperature is not at the ambient temperature (ambient being not real ambient but rather the temperature between the wall and concrete of the house), then you can tell if there is a change in flow rate by a change in temperature. This is based on the fact that if there is no flow, the water pipe temperature will reach equilibrium with the environmental temperature and any flow from this point will lead to a change in temperature.

I strapped a temperature probe to the outside of my water mains over the last 6 months to better understand this and have found very compelling results. In fact the latest trails today proved out my exact theory.

In the chart below you can see a few different stages over the morning. The first is when my heating comes on in the morning to heat up the house when I wake up (temperature set point is set to 21.5C in the morning so I wake up to a warmer house). I then started to shower at about 6:50am which resulted in an almost immediate drop in incoming water temperature leading credence to my theory. Once I finished my shower the water temperature began to stabilize again and I notice another suspected shower event where the water temperature shot down again once again leading to my theory of being able to identify showers based on water temperature.

The big learning lesson from this is that you may not always be able to measure your desired measurable but in any process there are always a lot of intertwined variables. Here we may not be able to measure direct water usage but we can measure changes in water temperature with the assumption that these are coming from large volumetric flow rates.

Managing Temperature in My Sunroom

I have a sunroom attached to my house which is a fantastic place in the summer except it can get exceedingly hot at peak hours with temperatures reaching up to 36°C. To combat this I installed a 300 CFM exhaust fan in the roof and added a programmable timer to turn it on at peak hours.

The installation was fairly easy though I did have to manually switch the polarity on the fan to reverse the flow. I mounted it at the ceiling so it pulls the hottest air out.

Looking at the temperature throughout the day you can clearly see where the fan turns on and drops the temperature an astonishing 6°C.

Sunroom temperature throughout the day
Mounted exhaust fan

This has been a pretty fun project and is a recommended solution to managing heat in sunrooms. Next steps will be setting up a controller for this to dynamically have it turn on when temperatures are too high rather than just at static times.

My Homelab

This will be a quick overview of my current homelab after some of the recent consolidation and upgrades.

To start off I have a custom (handmade) server rack made to hold all of the equipment. I use trays to hold auxiliary equipment such as keyboards, spare disk for quick replacement and other hardware. Plan is to move my desktop to one of these shelves on my next upgrade.

I have a 1500VA UPS https://www.apc.com/us/en/product/BX1500M/apc-back-ups-1500-compact-tower-1500va-120v-avr-lcd-10-nema-outlets-5-surge/ that meets my needs and covers any power disruptions. I have a RJ45 data-cable connected to my server to auto email on any outages and initiate shutdowns if needed.

For my main workhorse I have a DELL R530 server with 8 3.5 inch bays and a 10G nic. This handles a bulk of my file store, database and processing needs. I run Proxmox as my host and various debain based distributions on my VMs.

Lastly for my switch I have a Mikrotik CSS326-24G-2S+ which has 2 SFP+ ports that can handle 10Gbps which I use for my server and workstation. For the server I use a cat 6 patch cable and for my workstation I use a fibre optic cable as cat 6 can’t handle the distance. The remaining 24 1Gbps ports are used for various devices.

Setting up Personal Power BI Dashboards

Microsoft does not allow common individual users to use power BI by requiring the use of either work or school email addresses (https://docs.microsoft.com/en-us/power-bi/fundamentals/service-self-service-signup-for-power-bi). I even tried to use my proton mail account and it didn’t accept it so its blacklist is fairly deep.

One workaround I found is that because I have my own domain (adam-s.ca) I can effectively setup my own custom email address. On my domains service I setup an email forward to pass on all emails sent to xxxxx.adam-s.ca and pass them onto my gmail account. This way I am not paying for a email server and still have access to professional emails ([email protected] :D). This is enough to setup a free Power BI account and have the ability to publish great dashboards.

My Power BI Dashboards

I wanted to share some of my person dashboards that I run off of Power BI.

The first one is my aquarium monitoring dashboard which I use to monitor my KPI. Now its been a while since I did a water change so you can see my TDS is out of spec and I recently moved my turbidity probe to a more appropriate location to properly manage the tank. I have 3 quick cards to see if I am green or red and then further charts to show daily variances and the time series trend at the bottom. I have some alerts that go out when I go out of tolerance but as can be clearly seen I don’t necessarily change my water immediately. (Before anyone freaks out, I have a heavily planted tank so I have a healthy equilibrium that allows me to do infrequent water changes).

Next I have my temperature monitoring dashboard that I use to track 3 main temperatures: my room temperature, my sun-room temperature (and by extension my outside temperature) and my server rack temperature. There is not much to note but I do use the server rack temperature to ensure good operation of equipment. I don’t want to run my server to hot as that my cause early device failure.

Lastly I have my power monitoring dashboard, where I track my desktop computer, server rack and fridge temperature. I track my desktop power usage to understand costs associate with use and to track GPU mining profitability. Server rack power as an important one as well as server hardware is known to be a big power draw. I spent a fair bit of time optimizing power usage and this dashboard was important in tracking those changes.

Overall I have much more work related dashboards but these are the ones I run on my personal Power BI workspace.

CI Power Savings at Home

With new power monitoring plugs (flashed with custom Tasmota firmware) I wanted to have a look at my server rack power usage and see if there were any savings opportunities. I ran a “top" command on the VM that had the highest usage and found that my database (PostgreSQL) was running higher than I think it should. I started to go deeper into the jobs running on the database and found some stuck system jobs. I was able to resolve most of them and implemented a query timeout to prevent anything from going to long and was able to go from a mean 104 W down to 90W presenting a 14 W savings. This may not be much but this server runs 24/7 and so will accumulate over time.

I made a quick I-chart to show the power savings the the optimization period where I was hammering the server to figure out what was going on. There are still some cyclic increases in power that are related to clean up jobs.

Parametric vs Non parametric Statistics

Many people assume perfect normal distributions when looking at data, but this is not always the case. An example data set is shown below where the data is clearly non normal and both the normal and non parametric tolerance intervals and means are shown. The mean is obviously the same but the 99% tolerance intervals show some key distinction. The normal tolerance intervals overestimates and unrealistically goes to -1.907 because it assumes a normal distribution and “equal” datapoints on both sides of the mean. This is not the case and the non parametric tolerance interval is obviously more accurate as it takes into account the “Real” aspect of the data.

I know many people just default to always assuming their distributions are normal but this is not always true and wrong assumptions tend to backfire when it comes to statistics.