diy solar

diy solar

Adding storage to my Enphase system

And I could still have the PLC turn off a few if the export goes too high.
Well, that's an easy option if possible. You could turn off single panels one at a time to keep the back feed under 16 amps. And as the sun goes drops in the sky, turn them back on one at a time.
I found a place on Ebay selling iq7 inverters for just $60 each. That makes using the used San Tan panels make sense. 9 older 240 watt panels at $50 each. Under $1,000 for for 2,160 watts of panels AND the microinverters.
Wow
 
I was out of town for the weekend, just got back today. It was so nice to look in om my system and see that it kept working perfectly, even through the daylight savings time change. It has now been 7 days in a row with only a small amount of power exported, and virtually no import all day. The one place I still see it import is right as it ties to start charging in the morning. Since the bottom step is 5%, I have it waiting to see power coming in from the solar panels, and try to predict when it is enough to handle the 5% charge rate. It looks like I missed by 50 watts. Certainly not a big deal. It has been wiped out every day by the first real hour of sunlight when I let it export 200 watts.

Thanks to daylight savings time, today, my battery was fully charged by 3:15 pm, but the solar panels were still producing enough power that they were running the house and exporting power all the way to 6 pm. At about 6:30, the last Enphase inverter shut down for the night. So now we run on battery for the night. The battery did not run all the way down, so it only took in 12.5 kwhs to top off.

As soon as it get's warm enough outside, I want to fire up the A/C and see how my power management works out.
 
I have to rethink the charge block time.

Now that we are in daylight savings time, I still have good solar production well after 4 pm. But the start of solar production is later. So today, it didn't complete charging the battery when 4 pm rolled around and it went into charge block. I ended up exporting quite a bit at the higher rate, so it is not all bad, but th battery could have taken more and still been exporting a little. If I allow charging to go later, I have to make sure my logic is good to force it to discharge after 4 pm, if the solar does fall off for any reason. I want to be completely sure it never charges from peak rate grid power.

Yesterday, we had good sun, and it had no problem fully charging up before 4 pm.
XWBatt-03-14-22.PNG
It dropped to my 20% final charge for over 40 minutes and topped off just after 3 pm.
But today, we had spotty clods moving through. And each time a cloud goes by, it cuts the charge current to keep from pulling grid power.
XWBatt-03-15-22.PNG
It still did get the battery over 56 volts, so it's not bad, but I will have to see how much I ended up exporting. Solar must have picked up a bit, as it didn't need to start drawing from the battery until 5:50 pm. After 3 pm, the solar output was down about 1/3 from the day before. And the house uses a third, so that actually cut the charge rate in half.
 
But today, we had spotty clods moving through. And each time a cloud goes by, it cuts the charge current to keep from pulling grid power.
As a mental exercise I keep struggling with that one too. Logically the controlling factor should be import/export energy and not power-- the 30-second or less dips should not trigger charge limiting, at least not to the full dip in capacity. I might try to get it to limit at 10A below the previous setpoint for the first 10 or 30 seconds and then re-calibrate, or some logarithmic decay function to make sure your power delta is reasonable, but your energy delta is within an acceptable band.
 
I'm amazed at how similar and different out systems operate. I've got slightly more PV and a slightly lower base load. Here was a nice sunny day on Monday.

The battery covered loads all night. Allowing about 100 watts to come from the grid, so not quite grid zero, but that's what the XW defaults to...
The car charged until 12:30 (orange)
Then the home battery started charging and was full by about 3:30 (purple) It had actually been charging at something like 50-250 watts all morning, using the left overs that the EVSE couldn't, due to it's 1 amp resolution.
But, no one was home for those 3 hours and the morning was quiet.

Screenshot_20220316-071851.png

Here was yesterday with spotty sun as the clouds blew over.
The car was plugged in, but we never had good enough sun for the car to start charging.
Home battery was charged by 2:30

Screenshot_20220316-072355.png

You can also see something the new Schneider firmware is doing in the evenings with it's export. I've got an open tech support with Schneider about it. I'm going to post more in depth about it elsewhere. Basically it's randomly discharging I'm the evening at full tilt, when it should be pushing 1 amp to the grid.
 
I am not sure that I am seeing the random discharge you are talking about. What time of day? I see the downward spikes from about 16:15 to 17:15, but that looks to me like using the microwave from my system. But if it was, that should be reflected in the home load having spikes going up. Where are you measuring the home load for the graph? Is that on the output side of the XW-Pro? What loads are still ahead of the XW-Pro? When I have a load turn on back in my main panel, the XW load does not see it, but my PLC ramps up the grid sell power to cover it to keep the true grid power close to zero, but the XW reports it as grid export. Right now my clothes dryer is running, so the XW is inverting 900 watts from the battery with 500 watts going to the "load" and "exporting" 400 watts to the grid. But in reality, that 400 watts is running the dryer and my SCE power meter is showing essentially zero.

One of these days, I will figure out a way to read the data from all of my systems and graph it all together. The data from the PZEM power meters is actually available as Modbus TCP registers in my PLC now. I am reading all the data and placing it in the register space so I can use it for my internal calculation, but those same registers are visible externally. To make it easier to "see" the Enphase data, I may just add another PZEM meter to read the power on the drop from the iQ7's on the roof. I won't have to worry about direction as it is all coming in at that point. Then I should be able to use a Python script to read all the PZEM data from the PLC registers and the power readings from the XW-Pro so it can be viewed together on the PC.
 
I am not sure that I am seeing the random discharge you are talking about. What time of day? I see the downward spikes from about 16:15 to 17:15,
That's about the right time frame.
but that looks to me like using the microwave from my system. But if it was, that should be reflected in the home load having spikes going up.
Exactly. Here is zoomed in on that hour showing only the home load and battery power.
1647468418320.png
Where are you measuring the home load for the graph?
Between the sub panel and XW
Is that on the output side of the XW-Pro? What loads are still ahead of the XW-Pro?
Only the EVSE (the car has charging blocked from 4 pm to 9 am) and unused drier outlet are grid side (in the main panel)

PV goes into a breaker in the Schneider mini-PDP, it is not captured by the "home load" CT.
When I have a load turn on back in my main panel, the XW load does not see it, but my PLC ramps up the grid sell power to cover it to keep the true grid power close to zero, but the XW reports it as grid export. Right now my clothes dryer is running, so the XW is inverting 900 watts from the battery with 500 watts going to the "load" and "exporting" 400 watts to the grid. But in reality, that 400 watts is running the dryer and my SCE power meter is showing essentially zero.

One of these days, I will figure out a way to read the data from all of my systems and graph it all together. The data from the PZEM power meters is actually available as Modbus TCP registers in my PLC now. I am reading all the data and placing it in the register space so I can use it for my internal calculation, but those same registers are visible externally. To make it easier to "see" the Enphase data, I may just add another PZEM meter to read the power on the drop from the iQ7's on the roof.
That is exactly why I put a CT on my PV, I could have figured out how to get the data from RS485 that the Solar Edge inverter offers, but I had an extra CT available. This was so much easier.
I won't have to worry about direction as it is all coming in at that point. Then I should be able to use a Python script to read all the PZEM data from the PLC registers and the power readings from the XW-Pro so it can be viewed together on the PC.


Now that I am looking deeper at this issue, there is some correlation between PV (yellow) and what the XW is outputting. I don't understand why and it isn't consistent. If you compare the 10 minutes I underlined in red vs the 10 minutes I underlined in green, I just can't see the logic.
1647468919555.png

Here is Sunday, similar story. It just looks random.
1647468980898.png


This is harder to see, but this is the same time frame on Sunday. "Grid Load" is the CTs at the utility meter. The data resolution is significantly tighter (5 seconds) from my CTs vs the BMS, which I think has 30 second or 1 minute between data points.
For example the spike on of back feed to the grid at 17:45 was 15 seconds in total and completely missed by my BMS data.

1647469201842.png

Just to defend the Batrium BMS, I could have also taken the 100 ms data. That seemed a bit too much of a storage hog.

I have an open tech support email with Schneider. The first response came only 2 hours after I started the tech support email online and I've gotten 2 responses so far.
It doesn't feel helpful this far, but at least the response times are quicker than previous.
 
I have to head to work now, but I will look at this more tonight. 4,000 to 6,000 watts is some serious power. It has to be going somewhere, or it is a reading error. When my battery bank is full, and it goes into the "waiting state" before it starts running the house, I do see the XW alternating between charging and discharging the battery, but it is under a full amps. Any way you could put an amp probe on the battery line and log it to see if this is real power? IS the battery voltage falling at all when it shows it pulling 5,000 watts?
 
I have to head to work now, but I will look at this more tonight. 4,000 to 6,000 watts is some serious power. It has to be going somewhere, or it is a reading error.
It's going out to the grid.
In this image, we can see the solar + battery putting 5,800 watts onto the grid.

1647479284028.png
 
That is really odd.
What is your grid sell current set to?

My "Maximum Sell Amps" is the one I have the PLC adjusting, and right now it is at just 0.224 amps to cover the load on the faire alarms and the porch light that are still in the main breaker panel. If the laundry or dishwasher were running, that would step up a bit.

My "EPC Maximum Discharge Power" is set at 6,500 watts, but I have EPC disabled.

I have "Load Shave Amps" at 3.5, but I need to read over exactly how that one functions again. IT should cause it to increase inverter power if needed to keep the power coming from he grid under this setting. But how I have the charge current control, and sell current control working now, I don't think this is coming into play at all.
 
That is really odd.
What is your grid sell current set to?
1 amp from 4-9pm
My "Maximum Sell Amps" is the one I have the PLC adjusting, and right now it is at just 0.224 amps to cover the load on the faire alarms and the porch light that are still in the main breaker panel. If the laundry or dishwasher were running, that would step up a bit.

My "EPC Maximum Discharge Power" is set at 6,500 watts, but I have EPC disabled.
I'm using EPC to adjust charge power, so it is enabled.
Prior to this software update I was leaving the EPC discharge at 6800. I'm only sending a command to the EPC charge (edit:I should have proofread) discharge address.
I have "Load Shave Amps" at 3.5, but I need to read over exactly how that one functions again. IT should cause it to increase inverter power if needed to keep the power coming from he grid under this setting. But how I have the charge current control, and sell current control working now, I don't think this is coming into play at all.
I've got load shave disabled.
 
Last edited:
That is really odd. If my system kicked over to selling 5,800 watts, I would not only violate my NEM 2.0 export limit, it might also pop my 20 amp back feed breaker. It would probably take a little while though, as that is just 24 amps. Still a problem for sure.

Are you writing anything to the XW modbus registers at the time this is happening?

Since this is happening after you are fully charged up, can you suspend the Pi from sending data to the XW (even reads) and see if this behavior stops? If you go to the XW battery summary graph, is it showing the same thing happening? Here is my Battery Summary for yesterday.
XWBatt-03-17-22.PNG
My battery was fully charged by 3 pm. From 3 pm to 5 pm it does the +/- 0.75 amps as it "waits" for the solar output to fall below what the house is using. After 5 pm, the battery had to start "helping". The way my control is working, it is already setting the XW into "Sell to Grid" before 4 pm, but my export current setting is less than what the solar is already exporting, so the XW does nothing but pass through the solar to the grid side. It only starts to pull battery current when the solar drops off and/or the loads increase so that the grid export falls below the "Maximum Sell Amps" setting that is being updated by the PLC. In your case, you said that you have the "Sell Amps" set to a fixed 1 amp during this time. I used to run like that before I installed the PZEM power meters. If this keeps happening without getting commands from the Pi, then I would have to agree, they have a serious bug in the new firmware. If it stops happening when you stop the Pi, then it could be a glitch in NodeRed sending something to the wrong address. Or it could still be a bug that is reacting to the modbus calls. Have you notice any correlation between anything else happening in the system and the high power export events?

On my system, the only time the export increases is in response to a load. The furnace ran from 5:40 to 5:55 pm, making a very obvious power demand. After 8:45 pm, it looks like people started getting home and started using some more power. My son probably used the microwave a few times, and I'll bet my girlfriend vacuumed with that big spike to 51 amps of battery current. That lasted just 3 minutes. With how I have the power meters working now, we can't tell from this graph if the extra load is in the backup loads panel or if it was back in the main panel. It is working virtually seamlessly now.

Here is the matching SCE usage for the same day.
SCE-03-17-22.PNG
I just figured out the reason for the little import bump in the 8 am hour. I was going into "Sell Block" a little too soon now that we are in Daylight Savings Time. I just bumped it up an hour. The export ramp up is just the solar production left after the battery is full. I dialed in the charge current window a bit tighter, so now it is only exporting 100 watts while charging the battery. I can't really cut it any tighter than that with just 1% charge rate increments. 1% more charge current would result in using some grid power.

With what I have learned from watching this thing operate, I think I am going to take time of day out of the equation. If the PLC just watches where power is flowing, it can figure out when it should charge and discharge, so there may not even be any need to set block times. My only need for it may be to force some charging from grid if solar production is horrible. The real time clock on the PLC was an extra cost item, and it is not holding perfect time. And the time in the Schneider is also drifting off, and I need to correct that once in a while as well. This is not a big deal for me, it is easy to click update clock, and it sets it to my PC clock which is updated from internet time. But if I end up setting up a system for someone else, I would like to make it just plain work. At one point, I was thinking of setting up a package with an inverter and battery bank to add time shifting and battery backup to all of these homes around me with grid tie only solar. There are so many like that, it could be a full time business.
 
That is really odd. If my system kicked over to selling 5,800 watts, I would not only violate my NEM 2.0 export limit, it might also pop my 20 amp back feed breaker. It would probably take a little while though, as that is just 24 amps. Still a problem for sure.
I think you're fine, it does follow the max discharge limit. I lowered it to 1500 watts last night and it didn't spike up to the moon.
Are you writing anything to the XW modbus registers at the time this is happening?
Just the EPC charge address. I am going to rewrite a few things, so it doesn't continue to rewrite the same value and only sends new values.
Since this is happening after you are fully charged up, can you suspend the Pi from sending data to the XW (even reads) and see if this behavior stops?
Ah, yeah I should have read the entire post before starting my response. See above
If you go to the XW battery summary graph, is it showing the same thing happening? H
Yes it does, I'm away right now so I can't get a screenshot, but it does show.
My battery was fully charged by 3 pm. From 3 pm to 5 pm it does the +/- 0.75 amps as it "waits" for the solar output to fall below what the house is using. After 5 pm, the battery had to start "helping". The way my control is working, it is already setting the XW into "Sell to Grid" before 4 pm, but my export current setting is less than what the solar is already exporting, so the XW does nothing but pass through the solar to the grid side. It only starts to pull battery current when the solar drops off and/or the loads increase so that the grid export falls below the "Maximum Sell Amps" setting that is being updated by the PLC. In your case, you said that you have the "Sell Amps" set to a fixed 1 amp during this time. I used to run like that before I installed the PZEM power meters. If this keeps happening without getting commands from the Pi, then I would have to agree, they have a serious bug in the new firmware. If it stops happening when you stop the Pi, then it could be a glitch in NodeRed sending something to the wrong address. Or it could still be a bug that is reacting to the modbus calls.
I like this idea, I'll try just stopping the pi all together tomorrow night after the battery is done charging.
Have you notice any correlation between anything else happening in the system and the high power export events?
I haven't been able to see a correlation, yet. In those screenshots you could see the home was using a very stable amount of power.
I just figured out the reason for the little import bump in the 8 am hour. I was going into "Sell Block" a little too soon now that we are in Daylight Savings Time.
I see the same thing as a combination of hard coded time to start charging. I plan to include that as part of my rewrite.
And the time in the Schneider is also drifting off
I thought it was just me! I've set it twice and kept thinking that it was pulling time from somewhere about 5 minutes fast of me...
 
I just checked my email, here's the response from Schneider:

"Unfortunately, I will have to recommend you disable the EPC control. I checked with engineering and they informed me that this feature is not fully developed, so if it is activated the inverter behavior may become unpredictable."

I'm trying wait and temper my anger at this. It was working properly on the last release I was running. Maybe I'll roll back to a previous version. Maybe I'll add some more software so the PI can actively control discharge power as you are doing.
 
For "Grid Tie" power, it is just hard to beat all the advantages of the Enphase setup. Especially with the "Rapid Shutdown" requirements, it really does not cost that much more than a string inverter now. But when you want to have batteries as well, it throws a wrench into the whole equation.

When I ordered my system back in May 2019, there was only basic info about the upcoming Enphase Ensemble battery system, and I had hoped it would be what I was expecting. It is an excellent system, and I think it has some great potential, but the actual installed cost is quite a bit more than I was hoping, and from "svetz" experience so far, it seems the peak current from the batteries is not quite hitting the mark. He has had several software updates and the system is working better. He is documenting his system very well on the thread "An Enphase Ensemble Installation". If I had bought new batteries, I would probably be close to the cost of the Enphase batteries. My biggest savings is I am installing the new inverter. The two contractors here who would install the new Empower batteries wanted WAY too much. I almost went with a Tesla Powerwall 2. It is about the best bang for the buck for a complete new storage system, but I ran into issue with wait times, and the certified installers did not want to work with someone else's existing solar install. And good luck buying one to install yourself.

After all the study I did, the Schneider XW hit most of the buttons. When they updated it to the "Pro" version, it greatly improved how it would work with Lithium batteries and Enphase micro inverters. And the programming options make it incredibly flexible for how it will manage my energy. It also has a hug 12,000 watt surge power, so I know it will start anything in my home. Then add in the great deal I was able to get on the surplus Chevy Bolt batteries and my out of pocket cost is quite good.

On the negative side, there are a few things that I do not have yet. The Schneider system is very modular. But that means you "buy" each module. Since I am starting with my existing Enphase micros, I will not have an MPPT solar controller. This is not an issue now, but I may add some DC couples panels to help charge the batteries. The Schneider MPPT units that link to the Xanbus data network are pretty expensive, at about $500 for the cheaper 60 amp 150 volt unit. And I also want to have the output track my current consumption to limit export to the grid while still powering the part of my home that is still in the main panel, but in it's standard form, it only measures the current in and out of the XW box. This can do "grid zero" for the loads in the backup essential loads panel, but not the load in the main panel. Since I have some major loads back in my main panel, it will not know how much power to send back out the input side without another 3rd party box with external current measurement CT's at my breaker panel. That adds another $600 or so. Since it is modular, I can add it later, and I probably will, but for now, I can tell it how many amps to export, but it won't dynamically adjust as loads change. Since I do have a net metering agreement, I am ok with it pushing up to 16 amps out of my house without being in violation, so this is fine, but not ideal. Once I add the "Watt Node" CT box, It can adjust every few second, so if my A/C kicks on during peak energy time, it can send stored battery power back to the main panel to run the A/C and still have zero power coming in or out from the grid, and when the A/C stops again, it will go back to charging the batteries from the solar power, leaving enough solar to still run my minor loads. The Outback Skybox has both an MPPT controller and the external CT inputs included. I almost went to it, and "Ampster" is using one with excellent results. He has some Enphase and Solar Edge both feeding into it. His latest thread on it is "AC coupling my Outback Skybox to a Solaredge inverter". Our systems are a bit different, but we are trying to do the same thing. The main plan is to store power when the solar makes more than we need, and then use that power when the sun goes down. With the basic control built into the Schneider XW-Pro, I hope to reduce what I export now to near zero, and run my house off the batteries for just the 5 hour slot where my utility SCE kicks the rate to $0.40 per KwH and then run on the $0.25 per KwH overnight so I have at least 40% of my battery left in case we have a power failure. I miss my old tiered rate plan when tier 1 was just $0.15, but now I make some of my own power, so SCE wants me to pay MORE!

We don't have many power failures here now, but I expect it is going to get worse. We had one 2 years ago that lasted 3 days when an underground cable failed. And with wild fires and earthquakes, it could get very bad. We have had quite a few glitches during the "Lake Fire", and only a few blocks away, a whole area went dead, cutting power to 300 homes for 2 days. The fire is still burning. Having the batteries will reduce the cost of power a bit with the "Time of Use" rates, but it really won't pay off the cost of the gear, so it is the backup power that makes it viable now. Grid Tie solar is the most efficient way to make sun into AC power, but if the grid goes down, it has to shut down as well. Once you have to shuffle power in and out of batteries, you lose some of the energy. Combining the Enphase micros and an AC coupled battery inverter/charger looks like a very good compromise. If I can get the system balanced well, the only energy I will shuffle on a daily basis with the grid up is just the extra solar that I am basically giving back to SCE for free now. They only pay a net $0.02 to $0.06 for extra pushed back on the grid, and charge up to $0.40 when I need to buy it back as the sun goes down. If I can store 8 KwH that I am now sending back to SCE and then use it during peak time could save me about $3.00 a day. That does not sound big until you do it 250 days of the year, and I could save $750. Being more realistic, I expect to save about $1.00 per day on average, which is decent. Even if it never pays for the batteries, I am still giving SCE less money, and I will have power during a blackout. I have seen my system push over 10 KwH back in Spring and Fall, but with my A/C cranking I sent none back 3 days ago. It all depends on how much sun the panels see, and how much power you actually use.

Under the current California rules, it is not legal to sell back power that you charged from the grid, you can only sell power that the solar panels made. This prevents people from storing a ton of power at $0.15 on the EV owner "Prime" rate, and selling it back during the peak $0.41 rate. But if you can show your solar panels made more than you sell them, it is still legal. in an AC coupled system like I will have with the Schneider and Enphase setup, it is impossible to know which electrons actually went into the battery. But I can easily show that my panels did produce 20-30 KwHs in a day on their report page, so as long as my export is well below the production, I am legal, and they can't say I am cheating. In a perfect world, I would export nothing, and use all my own power. It would be great to only export when the battery reaches full charge, with all my loads being powered, and I have no where else to send the extra power coming in from the panels. This probably won't happen often, but if it does, it means I need a bigger battery. The other issue is getting the XW to adjust it's charge/discharge to exactly follow my generation and usage. Without the WattNode installed, I know for sure it will over and under shoot quite a bit. But as long as I stay within my NEM agreement of less than 16 amps of export current and no more than 900 KwH's a month to the grid, I am legal. But the closer I can get it to follow my load, the more money it will keep me from sending to SCE.
 
Last edited:
It looks like a very nice system but I wonder if it would be more economical to just develop an off grid system to reduce or eliminate the power bill would be more cost effective.

The greatest economy would come from controlling loads to consume exactly what PV produces.
(if you don't have 1:1 net metering available.)

Except for the cheapest DIY battery options, whether grid power costs $0.15 or $0.40/kWh, it is cheaper to just buy from the grid than to store in a battery for later use. But the day is coming when Elon or others will make PG&E obsolete.
 
The greatest economy would come from controlling loads to consume exactly what PV produces.
(if you don't have 1:1 net metering available.)

Except for the cheapest DIY battery options, whether grid power costs $0.15 or $0.40/kWh, it is cheaper to just buy from the grid than to store in a battery for later use. But the day is coming when Elon or others will make PG&E obsolete.
 
Last edited:
Off Grid is much more expensive but it has advantages which help justify the increase in cost.
1- Power bill is reduced
2- Electricity when the Grid is down
3- Insurance against future rate hikes
4- Eventual payback of system possibly when you are dead or the system is dead and needs to be replaced
What makes you think those points are not met by this system. From here all it looks like all 4 achieved.
 
Off Grid is much more expensive but it has advantages which help justify the increase in cost.

I think PV direct water pumping can be achieved around $0.03/kWh, a small fraction of what most of us pay for grid power.
Perhaps same could be achieved for cold storage, and any other application which could operate just when the sun shines, coast through times of darkness on what was done during the day.
Seasonal over capacity may cut into those savings; need to size system for worst time of year.
 
What makes you think those points are not met by this system. From here all it looks like all 4 achieved.
My two brothers decided on a Grid Tie system and they have been very pleased with the results. The only issue is that when the grid dies then they are without power.

If you are on a 1:1 level with your power provider then that works very well. You can make electricity during the day and use it during the night. Both my brothers have that.

My one brother is known to be plugging in all sorts of heaters in December to use it or lose it.
 
Last edited:
Back
Top