Home Electric Demand Control (Using Solar Panels for Heat Pump Power)

Continuing the discussion from Using Solar Panels for Heat Pump (AC) Power:

Hi, A couple of users requested an update to my previous post. Briefly, my primary automation in Node Red has become more complex, and I've added a simple automation to pre-cool the home. You are more than welcome to read the old post, but here I will reintroduce the topic.

I. Introduction

Utility-scale management with distributed (solar) power sources is a complex issue. Utility cost, particularly for delivery of peak-power, is a major concern. My utility, Salt River Project (Phoenix, AZ USA) has responded with residential tariff for solar customers with low “volumetric” energy (kWh) rates but high (escalating) charges for on-peak power demand (kW). A detailed explanation with analysis may be found here:

Unfortunately, this pricing plan makes residential solar an unattractive investment for most customers. However, I decided to try to find a way to realize a ~10-year payback period for solar by writing my own “load controller” in HA. (I decided not to install a commercial load controller due to cost and to concerns about cycling appliance power off and on.)
Here I will outline the approach I am taking for demand/load control and home energy management. The challenge is for home cooling during summer months.

II. Approach and equipment

My largest electrical loads during the summer are from two air-to-air split heat pumps. We defer other large loads to off-peak (hot water, laundry, oven etc.). Summer peak-tariff periods are from 14:00-20:00 weekdays. The automation controls the use of the heat pumps (HP's). Rather than turn the HP's on and off, the automation sets low or high temperature setpoints. This allows each HP to ramp power as designed.

I use a Sense Home Energy Monitor (Solar model), and I have two inverter heat pumps controlled by two Ecobee thermostats. The larger heat pump is for the downstairs (rated at 5 tons or 17.5 kW), and the smaller for the upstairs (rated at 3 tons or 10.5 kW). Typical power draw is much less than the rated power. The Ecobees are controlled by a Hubitat hub, and I created two virtual switches that are shared with Home Assistant. I'm using Home Assistant Device Bridge (@tomw and others) along with @jasonx043 's Hubitat integration in HA.

In Home Assistant I am using the Node-Red add-on for automation. I think Node Red greatly facilitated writing the main automation. HA also has a handy integration for Sense.

III. Automations

a. “Supercool” This is a simple automation in Rule Machine that pre-cools the home from 08:00 – 14:00 (off-peak) to a setpoint adjusted based on the high-temperature forecast for the day. For hot days the setpoint is around 70 F (21 C). My wife complains about the “cold,” but pre-cooling is necessary to limit maximum temperature in the home later in the day. This automation runs in Hubitat with a setpoint calculated in Home Assistant.

b. Thermostat control. This is an automation (Hubitat Rule Machine) that controls Ecobee temperature setpoints based on the state of the two virtual switches. If the “Upstairs Heatpump” switch is “on,” the setpoint on the corresponding Ecobee is set to 70 F (21 C). If it’s off the setpoint is set to 85 F (29.4 C). The same applies to the “Downstairs Thermostat.” This automation runs every 6 minutes to avoid excessive heat pump cycling but allow responsiveness to loss of solar power or to high grid demand. This automation is constrained to run only during peak-rate periods on weekdays.

c. Primary “Switch Automation” in Node Red (HA).
In NR, I decided not to create complex objects or arrays containing all the information required to set the switches, opting instead to use message payloads. I created a few global variables that are used several times in the flow. I also created a couple of sub-flows to tidy up the look a bit.

Note that this is my very first Node Red automation, and it’s likely there are more efficient ways of accomplishing the same goals.


Trigger (30 s) and set Global Variables. The automation uses Net Power production (Solar – total power use, minimum 0), the setpoints for the upstairs and downstairs thermostats, and reads in a Demand Limit from a helper. The two change nodes for thermostat setpoints pull the setpoints from the message object and set corresponding global variables. FYI, global variables are used since they are passed to sub-flows.


Main Automation. The green nodes are debug nodes. The blue call-service nodes simply set the states of the two virtual switches. For example:

image
Call service node that turns on both virtual switches.

The logic is set by several switch nodes.
First Power Switch:

This switch takes the rolling-average Net Power Production and evaluates whether there is enough excess power to start both heat pumps (output 1), enough excess power to start one of the two heat pumps (output 2), enough excess power to “do nothing” (if one or both heat pumps are running this is ok), or zero Net Power Production (which requires evaluating how much power is being pulled from the grid).
From here there are several possible combinations of Heat Pump states and grid export/import power levels that are used to set the virtual switches. Explaining the rest would require a very long (and very dull) post. But the idea is to set the switches in such a way as to keep the demand below a threshold (demand_limit).

IV. Performance

So, how well does it work? Here is an example from yesterday.


Plot on the left is Power and on the right Temperature.

Power and temperature plots for yesterday. On the power plot, you can see that grid demand fell at 14:00 (the start of the peak-tariff period). Around 16:00 it appeared that the automation was not working – you can see that power was being exported to the grid. I found that the Ecobee thermostats were in “eco+ mode,” and at that time my thermostats were ignoring the automation setpoints. Around 16:54 I turned eco+ off, but it was too late to prevent the home from becoming uncomfortably warm. It was a very hot day. Lesson learned!

(Apologies for using the Fahrenheit temperature scale – my wife would be unhappy if I set up the thermostats in Celsius.)

Yesterday, my power company reported that my peak demand was 1.2 kW, which occurred between 19:30 and 20:00, after sunset. Maximum demand between 14:00 and 18:30 (when the sun was up) was 1.0 kW, a little below the automation’s demand_limit.

My June electric bill ran around 30% of historical values, and if I stay on-track with demand, July will be about the same. It’s early days, but so far, I am on-track with my goal to pay-back the solar panel investment in < 10 years. :smile:

6 Likes

Nice work!

Here in Straya, all the crazy early adopter FiT's are long gone and most ppl only get about 6c p/kWh (wholesale rate) for their excess solar power. As a result, battery storage is now IMO worth the investment, especially if you live in an area with unreliable power (im in the Yarra Ranges and trees like to take down power lines when it's windy).

Here in Victoria, we also have a Peak/Off-peak structure for Solar system owners. 3pm - 9pm is peak rates (~30c p/kWh) and outside of that is off-peak (~16c p/kWh).

During the winter / low sun months, (April - September), I run our Powerwall 2 in Time-based control mode (it charges up on cheap off-peak power), and the rest of the year I run it in Self-powered mode. This strategy saves us between $1,500 to $2,000 a year off our power bill (used to average $3k p/a) without making any major changes to our usage patterns.

1 Like

G'Day @dJOS !

I admire the good things you are doing out there in the Yarra Ranges, :grinning:

My solar capacity is about 60% of total use, over the year. In the summer, I try to use 100% for running heat pumps and baseline load in the home. If I added batteries I'd need to pull more power from the grid off-peak, which would increase my utility expense. I could perhaps offset some of that expense by reducing demand... But my targeted demand fee is around US $18/mo. It would be hard to justify Powerwall installation on that basis (US $10k for a single Powerwall).

In winter, the situation is a bit different, but my use and bills are quite low in winter. I've run the numbers, and Powerwall (and alternatives) do not make financial sense for me. Now, if power from the utility becomes unreliable, then my situation will change. But my utility has been very reliable over the past 29 years I have been in my home. I'm actually more concerned about water than power...

Cheers!

1 Like

Our system is only 5.4kW so during the winter it doesn’t generate much at all. In summer tho it’s good for between 30-40kWh’s a day and works pretty well. At some point I’d like to double the system size, but that will involve upgrading to 3 phase power. :weary:

1 Like

Our volumetric rates for the solar plan are very low - 4.9 and 7 cents per kWh during summer peak season. It's fixed charges and demand charges that can dominate the bill.

1 Like