Green Part 7: Making full use of locally generated power
- Nik Ingle
- Oct 18, 2022
- 9 min read
Updated: Jun 3, 2025
How do you take a house that was never intended to be particularly efficient, and retrofit it so that it provides the creature comforts that you want, at the time you need them, without relying on a utility grid (gas or electric)?
One way to achieve this kind of radical energy self-sufficiency could just be to add a big solar system, and a big house battery. While that is now an option, I am looking for some more nuanced and interesting ways to do this -- ways that might also be less expensive and maybe more generally robust in the bargain.
To achieve this, you not only have to have the right components, but they need to work together well. Gluing together some different pieces of the puzzle can enable a more complete 'system' to serve your needs (hot water, heat, cooking, clothes washing, etc..) when you want them.
We have covered many of our home's system "puzzle pieces" in an earlier post (air-water heat pump, house heating, EV charger, clothes washer/dryer, PV system). Here, I want to explain two more small, but mighty, information gathering tools and then show how they can help to tie together an entire system that is hopefully fairly robust, and appropriately responsive to your service needs.

The first is a tool called the Emporia Energy Monitoring system. It allows you to measure and track the energy use of each of your electrical circuits. It is probably the most capable and cheapest option for energy monitoring I have seen. It provides a powerful set of information to extract and use in the planning stages of how to configure your overall system, as it helps you understand what energy you use, and when you use it. For instance:
I learned that the Sanden CO2 air-water heat pump used barely 1kW of power when it was running, which was almost 50% less than I was expecting from the installation manual, and was a nice piece of information.
I find that the Enphase solar inverters pull about 25W of power overnight. I was not expecting that, and although it does not seem like much, it does start to add up with other "phantom" power uses around the house.
LED lights are really amazing.
Our oven looks like it pulses power, rather than being continuously on when we use it, which I was not expecting. The total energy use is about what I expected, but it is not a constant power draw.
Once I got a feel for what the Emporia Energy Monitor could tell me about our uses of power, I was able to zero in on the information that was most relevant to understand the entire system. I reconfigured it to just measure a few of the most significant circuits (EV charging, stove, washing machine, Sanden air-water heat pump) and then lump other loads together (all lighting, all electrical plugs outside of the kitchen, etc.).
By default, the Emporia Energy Monitor pushes the data to the Emporia Cloud, which makes it easy to connect to and see with their software, but not easy for you to then use for other purposes. Luckily someone has written a python library that allows you to extract your data from the Emporia Cloud. With a little playing around, I was able to get a short snippet of python code that grabs the relevant data from the Emporia cloud. Using that, what I extract is:
the overall power that I either import from the grid, or export to the grid,
the amount of solar power that I generate (this could also come from Enphase, but I have yet to find a way to extract good information from Enphase's cloud services)
the power used by the EV charging and stove circuits
all power going into the sub-panel behind the Enphase automatic switch (which can isolate that sub-panel from the grid).
The difference between the amount of power I import/export to the grid and the solar power I generate is a particularly useful piece of information, as it tells me my instantaneous excess power. (I will come back to this, I promise -- we use it to charge our EV!)

The second tool I use is called the emonPi, and it is an open source all-in-one Raspberry Pi-based energy monitoring unit. It can monitor two single-phase AC circuits using clip-on CT sensors; it is also set up to monitor up to six temperatures, and can be be expanded to measure or control other physical devices, such as relays.
In addition, emonPi comes with a set of really useful software services installed, including:
a CMS (content management system) which is basically an internal database for locally storing all your monitored data,
a publish/subscribe message broker called MQTT,
and a flow-based programming language called Node-Red which lets you connect up and share many different information streams elegantly
for instance, I am able to run my python code snippet within Node-Red to grab power usage data from the Emporia Energy Monitor, and then drop that data into the CMS and publish it via MQTT, so that information is now readily available to use by other parts of my system.
The combination of these three services allow me to locally store data obtained from different systems, and then respond to that data. This is the 'system glue' I'd been looking for!
Using a Hot Water Tank as a Thermal Battery
I am using the physical connections on the emonPi to measure what the Sanden air-water heat pump is doing. The CMS allows me to plot this data out visually:

I measure the temperatures of the water inlet (green) and return (red) from the heat pump; I also measure the ambient temperature (purple) as well as the power required (grey) to run the heat pump. With that information (and the flow rate I get from the heat pump documentation), the emonPi allows me to then calculate the Coefficient of Performance (yellow) for the heat pump when it runs. This value is probably too high by 20-30% because I am assuming rather than measuring a flow rate, but it suggests the heat pump is as efficient as advertised, which is really efficient!! For every 1kW of power you put into it, you get 4-5kW of energy to use to shower or heat the house.
The emonPi controls a relay that tells the heat pump when to turn on and off. (I had to solder on a few additional wires to the GPIO connections to make this possible.) To decide when the heat pump should turn on and off, I also measure the hot water tank temperature. At 1pm every afternoon, the system checks to see if the tank temperature has dropped below 135F; if so, the heat pump turns on to top up the tank before the evening. If we were just using the built-in heat pump control mechanism, the heat pump would typically only run every 2.5 days in the summer (when the hot water tank temperature drops below 113F). The problem with this is that the heat pump can then end up running during the night, when we have no solar power. In essence, with this new control scheme I am using the hot water tank as a thermal battery, and making sure to fill it up every day from the solar power the house generates during the day. Because the amount of power draw from the heat pump is small (<1kW), I am not actively looking at the amount of solar I generate to decide whether to run the heat pump. Even on a cloudy/foggy day, I generate more than 1kW of solar.
During the winter, when the heat pump is generating hot water to heat the house, the usage pattern is very different. In this case, the primary hot water need is actually during the day, which nicely coincides with our solar generation. We can store enough hot water in the tank to run our heating from sundown into the evening -- we generally turn down the heat during the night so it almost never runs at all at night -- and then we can use the remaining hot water in the tank to start to heat up the house in the morning before the solar panels are generating power. So, in the winter, we naturally end up heating hot water during the day when we want a warm house to be able to work in and when the sun is out, and our thermal battery helps get us through the evenings and early mornings when the sun is not out.
Here is a good example of our electrical usage on a really cloudy day. The yellow is the solar production, which generates about 1.5kW during the afternoon. The purple is the power we are using in the house (from the sub-panel) and includes the air-water heat pump. You can see that turn on at 1pm, and it runs for 2.5hrs. The red is the amount of power we are importing from the grid. You will notice that during the day it is only positive for a few short minutes, which was when the hot water kettle was used! You can also see our general power usage during the times the sun is not out (left side of graph) and can see that we don't use that much power, so that a relatively small house battery (10kWh) could provide enough power to allow us to be grid free most of the time.

Here is a more typical day, which is foggy in the morning and sunny in the afternoon. The quantity of excess power we are not using at home, and therefore exporting to the grid, is shown in red (~18kWh). The purple shows our usage, with the air-water heat pump turning on at 1pm, and the kettle showing up again, along with some other power uses (a very inefficient light, and the dishwasher).

Charging an EV with excess solar power
The clear use case for the additional power we generate (the red line when it is negative in the figure above) is to charge a battery. We don't yet have a home battery, but we do have an EV! So, what we would like to be able to do is to charge the EV with the excess power we generate.
Currently when we charge the EV the overall power situation looks something like the figure below. The green curve is the car charger. You get a massive square power usage curve which will use all the solar energy, and also pull power from the grid because the EV is just charging at a set rate (7.2kW, in this case) not matter what the sun is doing. (we got some cloud cover from 12:30 to 1:15pm this day)

OpenEVSE has an EV car charger kit that has a very neat feature. A J1772 EV charger tells the car how much power it can provide by setting the duty cycle of a square wave control signal. The car then responds by pulling that much power from the charger. The Open EVSE kit can subscribe to an MQTT service (such as one provided by the emonPi) to learn what excess power you have, and then change the duty cycle of the square wave control signal so the car will pull only as much power as you have excess solar. This means as a cloud goes by, or you turn on another appliance, the car charger will compensate and charge the car slower. All home batteries do something similar when they charge during the day, so in many respects I am just repeating what they do, but for car charging.
This is the first car charger that I have seen which is capable of instantaneously responding to a changing amount of power available, and I really like the use of a general purpose MQTT pub/sub mechanism to share information between different systems. I could see this type of mechanism being used with other systems you might want to run only under certain conditions. Our heat pump is another such example. Within the emonPi, data from the temperature sensors and power meter are being published to the MQTT server and we are making decisions by subscribing to those feeds.
So, we are able to:
use our hot water service at any time, but only heat the water during the day when we have solar power.
heat our house at the times we need, but only heat the water during the day when we have solar power.
plug in our EV at any time, and know that it will charge at the fastest rate possible as determined by the amount of sun we get. We are lucky in that our car is more often than not sitting in our driveway during the day. I acknowledge that if you drive to work every day, then our particular setup will not be as beneficial.. (get your work to install 120V level 1 chargers like these, so you can plug in when you are at work and keep your battery full!).
we would need a house battery (~10kWh) to be able to use our other services (lights, cooking, etc..) at any time of the day and be powered solely by our solar panels. That will come at some point in the not too distant future... or maybe we will be able to use our car battery overnight to provide the 7-8kWh of power we need each night (Enphase just bought Clipper Creek and I expect they are working on some form of bi-directional car charger that will integrate with their micro-inverters and house battery systems).
See also Green Part 8: The Smartest HVAC on Earth and Green Part 9: Growing some food, and the start of rainwater management



Comments