• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

Grid-tied three-phase Victron system, no solar yet (Finland)

Jalle19

Solar Enthusiast
Joined
Jan 28, 2023
Messages
115
Location
Finland
Been working on this system for about a year now (including planning), I figured I might as well show you what I've got and what's in store for the future!

PXL_20240602_083724014.jpg

Specifications:
- 3x Victron MultiPlus-II 48/3000 in three-phase configuration
- Victron Lynx busbars + Victron battery switch + Victron SmartShunt
- EEL battery box with EVE LF280K cells, Seplos V2 BMS
- Cerbo GX
- Critical loads panel with manual transfer switch for maintenance

My main motivations for building this setup are:
- exporting excess solar power during the day is becoming a losing proposal, battery storage greatly helps with this dilemma
- backup power in case everything goes to shit (you never know these days with Russia as a neighbor)
- reducing the amount of money spent on energy transfer (cheaper tariffs during the night)

More details about the interesting parts:

Busbars:

PXL_20240602_083704657.jpg

I bought some copper bars, then cut and bent them into the right shape in order to fit a main disconnect switch and a SmartShunt between the power in and the distributor. Some RV guy on some forum mentioned that the BlueSea mega-fuse busbar cover can hold the SmartShunt, turns out he was right and you can make it look pretty neat! Originally I used a cheaper DC breaker here, but during testing I noticed it get way to hot when pushing over 100A, so I had to shell out money for a Victron switch instead. Now it barely gets luke warm even at 160A which is the maximum load the inverters can put on the bus.

Grid meter:
PXL_20240602_083816410.jpg

The Shelly Pro3EM is not officially supported as a grid meter by the Victron ecosystem, but I added support to it and it has been working flawlessly. Unfortunately, Victron seems reluctant to merge my changes. Here's the code for anyone who's interested: https://github.com/victronenergy/dbus-modbus-client/pull/4. I had the meter installed already since I've had somewhat of an obsession with metering all my consumption (even resorted to building my own software for aggregating data from multiple different meters, see https://github.com/Jalle19/eachwatt). The only electrical additions to this panel (the main panel) is the disconnect switch for the sub-panel inside the storage room where the inverters etc. are housed.

Backup circuits:

PXL_20240602_083851814.jpg

All wall outlets, the server room, heat pump (air-to-air), ventilation and lighting have been moved to a separate feed into the subpanel, via a transfer switch so I can switch them over to run directly from the grid in case I need to do maintenance on the inverters/batteries etc. The end result is that I have partial whole-house battery backup now.

PXL_20240503_111905189.jpg

There's a separate sub-panel in the storage room, nothing special really. Power comes in, goes to the inverters then power from the inverters come back, feeding the sub-panel inside (the one where most loads are connected) as well as some supplementary wall outlets in the storage room.

Software:
2024-06-02_12-05.png


2024-06-02_12-06.png

I use a combination of Node-RED and Home Assistant to decide when to charge the battery, keep it charged (i.e. grid pass-through), discharge the battery or sell/export from battery. The fact that I don't have any solar yet makes the algorithm a bit easier to grok, but the downside is that I can't really use any pre-existing algorithms (e.g. Victron's "dynamic ESS") since everything seems to revolve around self-consumption of solar energy.

Future:

Next summer I'll install 6.4 kWp of solar panels (two strings of 8 panels, east/west facing), a Victron MPPT RS 450/100 (you can see the empty spot on the wall that's reserved for it) and a second EEL battery box for a total of ~29 kWh of battery storage. Until then I'll try to optimize the power bill by leveraging the battery and selling when it makes sense. So far my average energy price since the system was installed a month ago has been around 1c/kWh, which isn't too bad. The higher the daily fluctuations, the higher the gains.

Various observations and things I've learned:

- don't cheap out on disconnect switches, the cheap ones can't actually handle much more than 50-100A
- don't underestimate the cost of the tiny things (battery cables, fire-proofed plywood, fuses etc.)
- the ESS assistant in Victron has completely bonkers defaults for lithium batteries which will result in you not being able to fully discharge your battery while on ESS (dynamic cut-off)
- Victron MultiPlus-II inverters are fairly noisy, especially the fan. I had to use rubber bushings and sound isolation to mount them to the wall to avoid vibrations reaching the other side (where the bedroom is). I've also had to limit charging power to 20A during 22.00-01.00 in order to reduce noise.
- always buy bigger cable ducts than you thought you needed
- always buy more battery storage than you thought you needed
 
- the ESS assistant in Victron has completely bonkers defaults for lithium batteries which will result in you not being able to fully discharge your battery while on ESS (dynamic cut-off)
I lowered mine significantly because I thought the same, but I was guessing on the voltage levels.
What did you come up with for settings, or was it trial and error testing?
 
- Victron MultiPlus-II inverters are fairly noisy, especially the fan. I had to use rubber bushings and sound isolation to mount them to the wall to avoid vibrations reaching the other side (where the bedroom is). I've also had to limit charging power to 20A during 22.00-01.00 in order to reduce noise.
Great install! I don't have a multi 2 but I can tell you my 450/100 fan noise is not objectionable at all, so once you add solar hopefully you'll get some noise abatement from the grid charging.
 
Oh believe me I've read everything there is about fan control, PWM modifications, fan swaps and DIY 3D-printed shims for external 120mm fans 😂 The noise level is acceptable now with the rubber bushings, I tell myself that whatever noise I'm hearing is the sound of money.

Good to hear that the MPPT RS isn't noisy! I won't be able to test it before mounting it so I have a feeling I'll add the same rubber bushings just in case.
 
I lowered mine significantly because I thought the same, but I was guessing on the voltage levels.
What did you come up with for settings, or was it trial and error testing?
Another issue of mine is that under heavy load, there's like a 0.7V voltage drop between the battery and the shunt, so the cutoff occurs "too early" if you discharge the last juice under high load. The effect is less noticable with moderate loads, but usually when I want to go down to 0% it's because I'm exporting for profit, which is typically done at almost full power.
 
Another issue of mine is that under heavy load, there's like a 0.7V voltage drop between the battery and the shunt, so the cutoff occurs "too early" if you discharge the last juice under high load. The effect is less noticable with moderate loads, but usually when I want to go down to 0% it's because I'm exporting for profit, which is typically done at almost full power.
Can you use a v.sense cable to get a more direct reading?

Or perhaps battery a little undersized for the inverters?
 
Is this just a clean way to get the 48V to the Cerbo?

View attachment 219530
No, that's a case containing an ESP32 for monitoring
Can you use a v.sense cable to get a more direct reading?

Or perhaps battery a little undersized for the inverters?
I could use the BMS as battery monitor in the Cerbo, and indeed the battery is slightly undersized at the moment. Will be remedied once I get a separate pack.
 
Very impressive setup.

Here in the US, we need back up power as well, just because we are good at shooting ourselves in the foot and weather / fire season related.

I have wondered about doing something similar as a way to have 3 phase power in the shop, and to be able to run some heavier duty tools that I cannot do now with just the single phase power that we have now.

Will definitely be reading more on your web links. Thank you.
 
Nice setup!

Have you played with power assist functionality? I am curious if MPs in 3-phase setup can pull power from grid to assist overloaded inverter. For example, what happens if you pull 10A on all phases and then increase the load on phase to 16A?
 
Last edited:
Yes I have. If I configure the grid setpoint to 0 watts, the inverters will provide up to 2400W per phase, the rest is taken from the grid. Easily tested by turning on the sauna, which pulls around 2800 watts per phase.

Another scenario is where only one phase is overloaded (i.e. more than 2400W). In that case, each inverter will work equally hard, i.e. the others will export power while one imports. This means that I can "zero out" any load up to 7200W, regardless of phase distribution. It's pretty neat and happens automatically.
 
Nice setup!

Have you played with power assist functionality? I am curious if MPs in 3-phase setup can pull power from grid to assist overloaded inverter. For example, what happens if you pull 10A on all phases and then increase the load on phase to 16A?
IMHO there are 2 types of Victron's PowerAssists:
Type 1: Original PowerAssist, that works with bare inverter without GX device*, but has limitations.
Type 2: PowerAssist, that is part of ESS, that's available only with GX device.

Type 1 has hard limit of minimum ampers from the grid you can set, when power assist can start to assist grid. For example with multiplus 5k you can't set PowerAssist to begin assist from lower grid current than 6A, i.e 230V*6A=1380W. For example: home uses 1000W and all this comes from the grid. Home uses 2000W and 1380 comes from the grid and 620W from the battery. When battery is empty, all 2000W must go from the grid. This setting is per inverter.
Type 2, or strictly speaking ESS, is set by default to 0 A, so it charges battery with surplus energy and exports to grid if battery is full and similarly tries to supply all required energy to home, to not to use energy from grid until battery is empty**.

* - cerbo gx, integrated GX in multiplus GX versions, Raspberry Pi with venus OS, etc.
** - in it's simplest form. There are differences in how it can work in 3 phase system. And there are more fancy algorithms, where ESS can take price from NordPool and try to calculate when it's best to export to the grid and when to charge batteries.
 
Last edited:
A few months in and I've gotten most of the monitoring, control and algorithms done. Mostly I use Home Assistant to check the status of the system:

1722878013776.png
1722878022749.png
I borrowed two 16S 280Ah batteries from a friend so I have a total of ~45 kWh of storage at the moment. Easily gets me through the day so I can use night-time power only (defined as 22.00-07.00).

In Node-RED I've added a bunch of minor "subroutines" for controlling various things. First up is a desktop fan that turns on if the load is high enough:
1722878138472.png
Second, and perhaps most interestingly, I made a dynamic charge rate algorithm. The idea is to charge as slowly as possible since the Victron inverter/chargers are more efficient at lower charge rates (can approach 90% on a good day).
1722878200074.png
Finally, I figured it's not worth the hit in battery capacity to use stored energy for the sauna, so I've made it switch over to "neutral" (meaning basically grid passthrough) whenever the sauna is active:
1722878260661.png
 
Nice job my friend 👍🏼
All installations are neat and clean.
Would like to see more about your node-red rules. Do you mind to share flows so people like me can learn about them?
 
Nice job my friend 👍🏼
All installations are neat and clean.
Would like to see more about your node-red rules. Do you mind to share flows so people like me can learn about them?
Sure! I have two flows basically:

ESS scheduling - uses node-red-contrib-power-saver to divide the day into different price brackets. These are used as the baseline for deciding what to do. Additionally, there are two overrides ("manual mode" which is a dropdown in Home Assistant) and "price-based mode" (which prevents battery usage if power is too cheap).

ESS control - this is where the outcome of the scheduler is handled, i.e. what exactly should we do when power is deemed to be "cheap" or "sell". The main thing here is controlling some ESS control points on the Victron GX device.

I've attached the complete flows here as well as up-to-date screenshots.
2024-08-25_11-27.png
2024-08-25_11-28.png
 

Attachments

Some minor updates done in December:

1. Second EEL battery box, so now the total capacity is 560 Ah. Deepest discharge so far is 565 Ah, and that's with ESS limiting the discharge to 46.4 volts. Pretty good all things considered, I've definitely noticed that the amount of Ah you can eek out of a battery increases slightly if you add a second battery in parallel (due to lower current draw per battery). It's possible it's due to there being twice the amount of cable area involved too.

PXL_20241216_120620804.jpg
I've had an ESP32 connected to the battery for reading cell voltages etc., and unfortunately it's not possible to read the data from the first battery in the pack when CAN is enabled and configured for multiple batteries. Unfortunate, but not a deal breaker. I could opt to sacrifice the CAN connectivity, but I decided that the metrics I get out of the RS485 bus are not worth it.

2. Switched from a Victron 275A main switch to a BlueSea one. The problem with the old switch was that the busbars had originally been made for a different cheaper switch where the poles weren't aligned the same way, so the connection was a bit suboptimal, leading to high temperatures. Now with new busbars and an even sturdier switch, the thing barely gets detectably warm at the ~150A which is my maximum continuous current use.

PXL_20241216_085621055.jpg

3. Expanded the DC bus with a second Lynx Distributor. I was happy to see that the power from the Cerbo's USB port is enough to drive the LEDs on two daisy-chained distributors (I've made my own USB to RJ10 cable to power them). Nothing fancy, but needed additional "ports" for auxiliary chargers.

PXL_20241216_100644097.jpg

Next step will be to actually finally connect my auxiliary chargers properly (meaning wall-mounted, on dedicated circuit breakers and backed by Shelly Pro 1PM devices).
 
Built a makeshift case for my two rectifiers. End result not the best but better than having them laid out bare on the table.

fit_3840_1.jpeg
Connected them up in parallel in a semi-permanent fashion, driven by two Shelly plugs so I can measure the power usage and turn them on and off programmatically.

fit_3840_2.jpeg
I programmed the chargers to pull 10A from the wall using @upnorthandpersonal 's excellent Python tool. I think I'll stick with this setup until next winter when I'll maybe make it even more permanent by wiring them directly to the consumer unit with Shelly Pro 1PM relays instead of wall plugs.
 
You're not using the Multipluses to charge? Nice to see that You've been a good boy and got lots of goodies on x-mas :)

What software are You running on the ESP32?
 
You're not using the Multipluses to charge?
I use them too. The algorithm starts with only the Multipluses, then when the requested amps reach a limit it turns on the first auxiliary charger and lowers the Multiplus charge current accordingly. When the next limit is reached, the second auxiliary charger is turned on. This is all controlled with Node-RED. To be honest, it has gotten quite complicated, I wouldn't recommend this setup to anyone. Save yourself the trouble and buy larger Multipluses...

2025-01-03_20-05.png2025-01-03_20-09.png


What software are You running on the ESP32?
ESPHome with https://github.com/syssi/esphome-seplos-bms
 
I like the additional charger setup, it's not pretty, but it will do the job. Logic is pretty straightforward imho... but I programmed PLCs for 8+ years :cool:
 

diy solar

diy solar
Back
Top