Air conditioners use a lot of energy. Historically, it was extremely hard to determine the impact of your AC unit on your energy usage. Not because you couldn’t find out how much energy your air conditioner used–that’s easy, it has a label that’ll tell you everything you need for that–but because you would have to keep track of how much you used it, or you’d have to work with monthly data that you manually entered from your electricity bill, and this would only get you to an estimate of how much you used the air conditioner over the span of a month. I wanted something a little better. Fortunately, thanks to the Internet of Things and Commonwealth Edison’s (ComEd) desire to reduce their labor costs, I have a smart meter installed on my house that can tell me electricity usage in half-hour increments. Paired with some weather data, thanks to the service IFTTT, I had all I need to estimate how weather impacts my energy usage, and thus, my air conditioner usage.

Step 1: Getting Energy Usage Data

As previously mentioned, ComEd allows anybody with a smart meter to access their energy usage data. As of this writing, you just log into your account, go to “My Usage,” select “My Green Button Data,” and tell it what data you’d like to download. You’ll get a csv that has data like this:

##              TYPE       DATE START.TIME END.TIME USAGE UNITS COST NOTES
## 27 Electric usage 2015-11-12      13:00    13:29  0.18   kWh         NA
## 28 Electric usage 2015-11-12      13:30    13:59  0.10   kWh         NA
## 29 Electric usage 2015-11-12      14:00    14:29  0.08   kWh         NA
## 30 Electric usage 2015-11-12      14:30    14:59  0.14   kWh         NA
## 31 Electric usage 2015-11-12      15:00    15:29  0.27   kWh         NA
## 32 Electric usage 2015-11-12      15:30    15:59  0.31   kWh         NA

Step 2: Getting Weather Data

IFTTT (IF This Then That) is a service that allows you to trigger actions based on events. For the context of this problem, I simply wanted weather data, since that drives AC usage. So I set up a rule that appends a Google Drive spreadsheet with weather data, on a daily basis. That data looks like this:

##                Date High Low                Weather UV.Index Humidity Wind.Speed Wind.Direction
## 1 September 01 2014   81  65          Partly Cloudy        0       60         13      Southwest
## 2 September 02 2014   79  61                  Clear        1       53          7      Northwest
## 3 September 03 2014   81  68 Isolated Thunderstorms        1       57         10      Southwest
## 4 September 04 2014   87  73           Mostly Clear        1       66         14      Southwest
## 5 September 05 2014   85  60          Thunderstorms        0       83         13          North
## 6 September 06 2014   72  53                  Clear        1       43          6          North

Unfortunately, some time around September, 2016, IFTTT stopped loading high temperature data, but that’s only a minor wrench in my analysis. Since high and low temp are strongly correlated (\(r^2 = 0.91\)), I can use low temperature, even though the high temperature is actually the reason I’d be using air conditioning.

Note that this data is at a daily level, whereas the electricity usage is at a half-hour level. To be able to match this data, the electricity usage must be aggregated to the daily level (simply add all the kWh, by date).

Step 3: Observe Relationship

In cases such as this one, where there aren’t too many variables to manually look at, it is extremely useful to observe the relationship between the variables, to determine if we have to account for any changes in the relationship. In this case, I know there are times when I simply never use AC, so I expect there to be a change in relationship between electricity usage and temperature at some point.

It’s clear to see that, somewhere around 50 degrees, the electricity usage per degree changes. Zooming in, I suspect we can use 50 degrees as a cut point.

Step 4: Model Relationship

Now that we know we have to treat temperatures below 50 differently from temperatures above 50, we can develop models to describe the relationship between each. The model for low temperatures above 50 degrees will be used to make inferences about my AC usage.

## 
## Call:
## lm(formula = kWh ~ Low, data = Electric_Usage[Electric_Usage$Low < 
##     50, ])
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.6277  -2.0201   0.3376   2.0611   9.8223 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 17.28689    0.64476  26.811  < 2e-16 ***
## Low         -0.15254    0.01939  -7.865 4.27e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.919 on 168 degrees of freedom
## Multiple R-squared:  0.2691, Adjusted R-squared:  0.2648 
## F-statistic: 61.86 on 1 and 168 DF,  p-value: 4.266e-13
## 
## Call:
## lm(formula = kWh ~ Low, data = Electric_Usage[Electric_Usage$Low >= 
##     50, ])
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -17.2397  -4.9204  -0.6321   4.1269  17.8923 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -41.55948    5.37118  -7.737 1.62e-12 ***
## Low           1.03133    0.08467  12.180  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.634 on 144 degrees of freedom
## Multiple R-squared:  0.5075, Adjusted R-squared:  0.504 
## F-statistic: 148.4 on 1 and 144 DF,  p-value: < 2.2e-16

The second model (for low temperatures above 50 degrees) shows a slope of 1.03133. This means that for every additional degree in low temperature (above 50 degrees), I use an additional 1.03133 kWh of energy, on average.

Step 5: Infer AC Usage

Assuming that there were no other systematic behavior changes that led to changes in electricity usage, the only explanation for the additional 1.03133 kWh per degree is AC usage. So the next step is to figure out what that really means, in a practical sense.

Every AC unit has an energy usage label, such as this one:

The parts we care about are volts (230) and amps (21.8). Together, we can calculate Watts as:

\[\text{Watts} = \text{Volts} * \text{Amps}\] \[\text{Watts} = 230 * 21.8\] \[\text{Watts} = 5014\]

I’d hope it goes without saying, but \(kW = 1000*W\), and since the measurement is in kilo-Watt hours:

\[1.03133 = 5014*\text{hours}/1000\] \[1031.33 = 5014*\text{hours}\] \[.2057 = \text{hours}\]

And since there are 60 minutes in one hour:

\[0.2057*60 = 12.34\]

So what this means is that, for each day that the low temperature is above 50 degrees, I use an additional 12.34 minutes of AC per additional degree.

Step 6: Next Steps

Now that I know I currently use an additional 12.34 minutes of AC for each degree above a low of 50, my goal is to reduce that. Thus, I will continue to collect data and make changes with the intention of reducing my electricity usage, without sacrificing comfort, of course.

If you have any questions, or have an idea for an article, feel free to email me at r.sherwoodjr@gmail.com.

Return to Index