Utilize excess solar energy instead of wasting it! (DIY)

How you can utilize your excess energy from your solar eelectricity

So what is this all about?

First we start with the off grid systems. An off grid system generally means that we are isolated from the grid. We can take electricity from the grid but we cannot feed it back. We either use all power from the solar combined with the grid power or we use solar and battery systems.

So what will happen when the battery bank is full? When your battery bank is full we will be wasting the energy coming in. You could go with some kind of dump-valve like you use on wind-mills. But lets be a little bit more creative. Lets move that energy to something other that we can use. Lets use it for heating water or just heating your house!

But what about hybrid-systems or grid-tie systems?

Yes this can be a little bit more tricky. In this case where you really don’t need any extra electricity. Or even no extra heat then of course you sell the excess back to the grid instead. But what if you use a electric water boiler? Or even heat your house with some kind of electric source?

Water is a really great place to store energy! 1m3 (1000liter) water can store 50kWh of energy easily.

In many places you sell your excess electricity for a lot less than you buy it back. And in some places you buy for a lot less during the night compared to the day. So what if you could turn on your water-heater when you have excess solar electricity or when your battery bank is full?  You can! Some inverters or chargers do have this function but most doesn’t. There is also systems out there already doing this for you, diverting excess energy from solar electricity to heating water, but the price for them are often really high!

I’m going to show you a way of doing this for hardly anything!

So lets add more panels to heat up our water tanks for shower and heating the house?

No, please dont do that yet…

What about efficiency? Yes that’s something many of the makers of Excess solar to heating water never talks about in the whole. Yes they say that the device they have is more efficient than going through an inverter and yes that’s totally true. It is very efficient and can easily be up to 99%

PV -> MPPT charger -> 48V battery bank -> Inverter -> Heating element

Isn’t the most effective way of doing it. We have 2 big factors (Charger and inverter) here that both often have up to 10% loss.

PV -> This magic device -> Heater

As you see alot less steps. And no the device isn’t that magic really 🙂 Since we doesn’t transform the voltage in bigger grade but merely just divers its to the heating element its good to go. Most heaters doesn’t care what comes in. Though todays topic is not to talk about how those works so i leave that to “Magic device” for now.

The efficiency part that most often is left out is the efficiency of the solar panels. Panels today are between 15-24% of efficiency today. Yes they have become a lot better last years but they are still not the best way to heat your water or house with (Unless you hook it up to inverters or other devices)

Lets compare to solar water and solar air systems

Solar water, depending on what system used have an efficiency between 50-75% in general. A self running such system can easily get you enough heated water during most of the year. Of course depending on where you live.

Solar air, simplest system out there if you ask me. Some glass and painted black wood and a 12v computer fan including a small solar panel and you will have warm air as soon as the sun is out. Can it be more simple than that? Efficiency easily up to 80% or above when it comes to w/m2!

A good thing about the water is that you can store energy over time pretty simple. But it takes som effort to utilize it in form of heating your house. Heating with air directly is easy but you cannot store the energy you get during the day.

What is is then I’m trying to say here. Im just trying to say that for pure heating water or heating your house the Solar electricity systems for using excess energy to heat may not be what you need. If you have a huge need you should look at above instead of just installing more panels.

BUT, if you have excess energy today, then those systems ARE the way to go!

And this whole article is about how you could use that excess energy. And depending on how you set it up you can use it all or part of it.

Lets start!

What i use:

Raspberry Pi with Raspian installed

SSR relays rated 3-30VDC

Some wires

Though its recommended to use some transistors in between. Check drawing.

What i basically did was just to hook up the SSR relay directly to GPIO pins on the Raspberry. The Raspberry is capable of somewhere between 15-30mA on the output. 3.3V.  This is not much so for long term use i do recommend to hook up a transistor in between. And most SSR relay need somewhere between 7.5mA to 20mA to trigger. So be carefull 🙂

Another note is that if you hook up Led lamps or other low current draw stuff to an SSR relay you may see blinking or glowing light. That’s because the SSR relay do leak some current through.

The Hardware part of this setup is pretty simple as can be seen here  (The GPIO pins do differ from the program so you need to change that accordingly)


I would suggest at least 2 different approaches. Lets start with the pure grid-tie one.



echo “Input value $val”
output=$((`cat /sys/class/gpio/gpio21/value` + `cat /sys/class/gpio/gpio13/value`))
if [[ $val -lt -100 ]] && [[ $output -gt 0 ]]; then
echo “This means we need to turn off 1 of the heaters.”
output=$(($output – 1))

elif [[ $val -gt 400 ]] && [[ $output -lt 2 ]]; then
echo “Lets turn on another heater if we can”
output=$(($output + 1))
echo “Nothing todo”


echo “will set: $output”
if [ $output -eq $old ]; then
echo “Nothinig to change”

if [ $output -gt 1 ]; then
echo 1 > /sys/class/gpio/gpio21/value
echo 1 > /sys/class/gpio/gpio13/value
elif [ $output -gt 0 ]; then
echo 1 > /sys/class/gpio/gpio21/value
echo 0 > /sys/class/gpio/gpio13/value
echo 0 > /sys/class/gpio/gpio21/value
echo 0 > /sys/class/gpio/gpio13/value

Lets define some variables for this script.

  • 2 Heaters connected on GPIO 21 and 13
  • The heaters are 500W and the threshold is set to 400W
  • Shut down threshold is set to -100W

So as soon as we are selling more than 400W we will enable one of the heaters. If we next run still have more than 400W excess power going out to grid we enable 1 more heater. The other way around is when we are using -100W we then disable a heater.

This is a very simple app  approach but it works.

If you do have a battery tied system you should look at the SOC of the battery bank as well as incomming power from the panels and what time of the day it is 🙂

Lets assume we starts with no heaters on.

If we have excess power of a battery tied system that also means we do have SOC of 100%. Lets add 1 heater online.

Next round when we do have 1 heater running its a bit different. On a off grid system we always want to make sure we never have excess power.

So as soon as we have just 1W excess turn on another heater. And never turn if off untill we are going negative with at least same amount as 1 heater. Ie lets make sure we never go positive after its turned off. This will of course use some capacity on the battery. Therefore we need to add another factor and thats the SOC. Ie as soon as we have SOC below xx% and we having a negative. So lets summarize this.


If ( no running heater && we have excess power ) -> turn on 1 heater

elseif (we have excess power ) -> turn on another heater

elseif (power used from battery more than 1 heater && SOC is less than 90% ) -> turn off 1 heater

elseif (using power from battery && SOC is less than 80% ) -> turn off all heaters

else -> do nothing.


So basically above should cover most general scenarios and keep us to always use all excess energy we have. All values to be trimmed to fit you. I would also add some basic factors like when sun goes down so you make sure you have some left to charge the battery bank. It could also be good to set SOC variables to not more than you can recharge in 30-90 minutes.



  • All excessive energy you have is to be used in some way or another
  • Don’t use electric from solar to heat your house or water unless its excessive energy (Energy that is left when all other stuff is used)
  • This article is just 1 way to do it. Its not the most efficient but it works.
  • Have fun experimenting but don’t kill yourself! 🙂


What if i don’t have above but have other stuff?

You could use an ESP8266 or any other uC or computer that you can control outputs on. Take what you have!

Instead of an SSR relay you can use normal relays. You most likely have some of the stuff needed already.

Beware of that local regulations where you are could  make this way illegal… Im not responsible if you would burn your moms house down 🙂


Extra material and links:


Good youtube video showing one downside with SSR

Very good reading about SSR relays

Liked it? Take a second to support daromer on Patreon!