question

jinetenoc avatar image
jinetenoc asked

Problem Victron Multiplus and Pylontech

Hello, I'm going to explain my problem to you. I have an installation made up of panels with 4kwp in three strings that go to a Victron 250/100 Mppt, a Victron Multiplus II 48/5000/70 inverter, 2 Pylontech US 5000 batteries with a total of 9.6 kw and I do grid injection. The issue is that while the batteries are below 99% there is a parameter that sets CCL charging current limit and its value is 160 amps but when it reaches 99% that value changes to 40 amps and does not allow the panels to perform any more. of 2.7 kwp although previously they were at 3.7 kwp. But also on these hot days the battery is set to 34 degrees and that parameter drops to 30 amps and even slows down the panels more and leaves them with a maximum of 2.5 kwp. Could someone shed a little light on this matter and give me a hand? The idea is to charge an electric car in the future and with this move it will be impossible for me.


Thank you very much in advance, greetings

Multiplus-IIPylontech
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

4 Answers
sharpener avatar image
sharpener answered ·

Are you using ESS? What other loads have you got connected? Where else can the PV generation go? If there are no other loads and you are not exporting then the MPPT will shut down the panels. Perhaps your export settings are wrong, you need Feed-in from DC enabled and a reasonable limit set.

This behaviour is fairly normal, the BMS is just protecting the battery. I have got Pylontechs and a 5k Multi with only a low AC load right now so the maximum allowable 3.68kW in the UK is exported. Below is a screenshot of my SoC today, the corresponding charging current limit (orange) and the input power which is negative showing an export:

1720725746483.png

1720725803163.png

1720726690469.png



1720725746483.png (19.6 KiB)
1720725803163.png (22.1 KiB)
1720726690469.png (24.6 KiB)
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Craig Chamberlain avatar image
Craig Chamberlain answered ·

As @sharpener said, this sounds like normal behaviour since PV generated power has to be able to go somewhere and if the batteries are full and there is no other load taking power then the MPPTs will throttle generation as required.

I have a 6.8kWp PV array feeding into a pair of 250/60 MPPTs with a Multiplus-II 5k and four US5000 batteries. My CCL is 320A (4x80) but when the batteries approach 100% charged, this drops back in stages to protect the battery. I can export up to about 4.4kW but if my batteries are 100% charged then it doesn't matter if the sun is blazing down, I won't generate 6.8kW, I'll only generate 4.4kW. Currently, on very sunny days, I start exporting early in the day to stop the batteries reaching 100% so that I can always absorb the full 6.8kWp if it's available.

34 degrees (celsius I presume) is pretty high for the batteries but I live in Scotland and I don't know where you live, but if there is anything you can do to reduce this with ventilation etc then you should. The US5000 can handle an ambient temp from 0C to 50C but as you have observed, will perform better if you can keep them closer to the middle of this range.

So, it seems as if you're not configured to export power to the grid even though you mention that you do "grid injection" which I presume means you expect to be able to export. We'll probably need more information on your setup, both in terms of physical connections and components, and in terms of configuration to help further.

4 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

sharpener avatar image sharpener commented ·

<I start exporting early in the day to stop the batteries reaching 100%>

What do you find is the best way of getting it to do this, @Craig Chamberlain?

Like you I have 6.9kW of PV but since much of that is on a grid-tied inverter I could theoretically export the whole lot. However my DNO only allows 3.7 so it is even more important for me. Is there a native method or do you have to use NodeRed?

0 Likes 0 ·
Craig Chamberlain avatar image Craig Chamberlain sharpener commented ·
Hi, at present I'm just doing it manually on mornings where I can see the forecast PV generation is going to be high and the batteries are going to be full long before the PV energy starts to tail off to the point where it's below my inverter max output.

However, I have done a few things in Node Red already and have started thinking about how I might automate this process. I just haven't quite decided how best to implement the solution yet.

My current thinking is that I need to run a Node Red flow, say, every hour to evaluate current battery SOC, forecast solar energy for the remainder of the day (ie. 'now' until midnight), and then try to manipulate the grid set point to keep the batteries below 95% SOC until such time as PV generation drops below, say, 3.5kW. Once PV is below that level then I can just reset my grid set point to -50w or whatever it normally is and let the batteries get topped up to 100% with the remaining PV. That will let the cells balance and will give me max storage to hopefully get me through the night.

Obviously I'm manipulating grid set point so if I was also consuming large amounts of energy in the house then that will cause the target battery SOC to be undercut a bit. If this becomes a problem then I can just do the Node Red flow more frequently to improve the tracking.

In your case you could certainly do what I currently do and just set the grid set point in ESS settings to -3700w on days when you know you'll be generating strongly. Then just keep an eye on generation during the day and ramp down the export.

That said, it's actually better to export at lower power level because the inverter runs more efficiently, but again you can only control grid set point not overall inverter power so that might be tricky in practice. This is why I'm leaning towards a flow that runs every hour and tracks the current situation and sets the set point to the lowest level which will avoid saturating the batteries too early.

HTH - will let you know how I get on.

0 Likes 0 ·
sharpener avatar image sharpener Craig Chamberlain commented ·

Thanks, will reply at more length when I have had a good think about it!

1 Like 1 ·
jinetenoc avatar image jinetenoc commented ·

Gracias por la respuesta. Si, exporto a la red y ahí es donde me he dado cuenta que algo pasa ya que llevo días exportando 10-12 kw y actualmente no pasa de 6, con más sol que antes.

Por otro lado, ¿cómo pudiste configurar el CCL a 320? ¿O el sistema lo hace solo? Ya que tengo 2 baterías y normalmente está a 160 pero luego baja a 40 o 30 como ahora.

También tengo curiosidad por saber cómo se puede exportar antes de que la batería llegue al 100%, ¿cómo se puede hacer?

Y si por ESS te refieres a un Color Control GX, lo tengo.

0 Likes 0 ·
daza avatar image
daza answered ·

@sharpener and @Craig Chamberlain i just export the full solar from i thing 9 at 0600 it will start to lower the DVCC via node red and then return DVCC to max at 2130 for charging from the grid at 2330 where i use the schedule charging not sure if any help to any of you but code is these are season specific and will stop solar export in the winter so that you are charging your batteries at max, this code doesn't stop your battery from charging it just limits it to about 100 odd watts @matt1309 helped me with this i have one that I've integrated with the Octopus saver session @Craig Chamberlain helped me with that bit ;) but this one is just the export with it 1 hour end for saver session I've integrated this into a bigger node so its all in one if your with octopus and want that or just want to change it and add the SOC like @Craig Chamberlain hope this helps


[

{

"id": "d964144e77efbe6c",

"type": "tab",

"label": "Export Solar",

"disabled": true,

"info": "",

"env": []

},

{

"id": "f777fc90a24b666e",

"type": "comment",

"z": "d964144e77efbe6c",

"name": "Limit DVCC Charge Of Solar In UK Spring To Summer Months",

"info": "",

"x": 220,

"y": 20,

"wires": []

},

{

"id": "308bead6e66cfa39",

"type": "comment",

"z": "d964144e77efbe6c",

"name": "Return DVCC To Max Charging Of Battery In UK Spring To Summer Months @2130 for Off Peak Charge Times",

"info": "",

"x": 370,

"y": 720,

"wires": []

},

{

"id": "6110b89057ff4844",

"type": "victron-output-settings",

"z": "d964144e77efbe6c",

"service": "com.victronenergy.settings",

"path": "/Settings/SystemSetup/MaxChargeCurrent",

"serviceObj": {

"service": "com.victronenergy.settings",

"name": "Venus settings"

},

"pathObj": {

"path": "/Settings/SystemSetup/MaxChargeCurrent",

"type": "float",

"name": "DVCC system max charge current (A DC)",

"writable": true

},

"name": "",

"onlyChanges": false,

"x": 530,

"y": 800,

"wires": []

},

{

"id": "848c0bc58feec51a",

"type": "victron-output-ess",

"z": "d964144e77efbe6c",

"service": "com.victronenergy.settings",

"path": "/Settings/SystemSetup/MaxChargeCurrent",

"serviceObj": {

"service": "com.victronenergy.settings",

"name": "Venus settings"

},

"pathObj": {

"path": "/Settings/SystemSetup/MaxChargeCurrent",

"type": "float",

"name": "Charge current limit (A)",

"writable": true

},

"name": "",

"onlyChanges": false,

"x": 580,

"y": 80,

"wires": []

},

{

"id": "6b57a5c3425c7d5b",

"type": "cronplus",

"z": "d964144e77efbe6c",

"name": "30A Charge Current From Solar @7AM",

"outputField": "payload",

"timeZone": "",

"storeName": "",

"commandResponseMsgOutput": "output1",

"defaultLocation": "",

"defaultLocationType": "default",

"outputs": 1,

"options": [

{

"name": "schedule1",

"topic": "topic1",

"payloadType": "num",

"payload": "30",

"expressionType": "cron",

"expression": " 00 00 07 * APR,MAY,JUN,JUL,AUG,SEP *",

"location": "",

"offset": "0",

"solarType": "all",

"solarEvents": "sunrise,sunset"

}

],

"x": 150,

"y": 120,

"wires": [

[

"33e04f1375e86d0b"

]

]

},

{

"id": "ce6e78e7d608f5b3",

"type": "pushover",

"z": "d964144e77efbe6c",

"name": "",

"device": "",

"title": "Sucsessful Return To Max DVCC Charging",

"priority": "0",

"sound": "climb",

"url": "",

"url_title": "",

"html": false,

"x": 490,

"y": 880,

"wires": []

},

{

"id": "3729ca5e892b9e4d",

"type": "cronplus",

"z": "d964144e77efbe6c",

"name": "40A Charge Current From Solar @6AM",

"outputField": "payload",

"timeZone": "",

"storeName": "",

"commandResponseMsgOutput": "output1",

"defaultLocation": "",

"defaultLocationType": "default",

"outputs": 1,

"options": [

{

"name": "schedule1",

"topic": "topic1",

"payloadType": "num",

"payload": "40",

"expressionType": "cron",

"expression": " 00 00 06 * APR,MAY,JUN,JUL,AUG,SEP *",

"location": "",

"offset": "0",

"solarType": "all",

"solarEvents": "sunrise,sunset"

}

],

"x": 150,

"y": 60,

"wires": [

[

"33e04f1375e86d0b"

]

]

},

{

"id": "59e3dd2e5cfd4a6b",

"type": "cronplus",

"z": "d964144e77efbe6c",

"name": "20A Charge Current From Solar @730AM",

"outputField": "payload",

"timeZone": "",

"storeName": "",

"commandResponseMsgOutput": "output1",

"defaultLocation": "",

"defaultLocationType": "default",

"outputs": 1,

"options": [

{

"name": "schedule1",

"topic": "topic1",

"payloadType": "num",

"payload": "20",

"expressionType": "cron",

"expression": " 00 30 07 * APR,MAY,JUN,JUL,AUG,SEP *",

"location": "",

"offset": "0",

"solarType": "all",

"solarEvents": "sunrise,sunset"

}

],

"x": 160,

"y": 180,

"wires": [

[

"33e04f1375e86d0b"

]

]

},

{

"id": "81d94264db7296f2",

"type": "cronplus",

"z": "d964144e77efbe6c",

"name": "10A Charge Current From Solar @830AM",

"outputField": "payload",

"timeZone": "",

"storeName": "",

"commandResponseMsgOutput": "output1",

"defaultLocation": "",

"defaultLocationType": "default",

"outputs": 1,

"options": [

{

"name": "schedule1",

"topic": "topic1",

"payloadType": "num",

"payload": "10",

"expressionType": "cron",

"expression": " 00 30 08 * APR,MAY,JUN,JUL,AUG,SEP *",

"location": "",

"offset": "0",

"solarType": "all",

"solarEvents": "sunrise,sunset"

}

],

"x": 160,

"y": 240,

"wires": [

[

"33e04f1375e86d0b"

]

]

},

{

"id": "6302aff0aa363816",

"type": "cronplus",

"z": "d964144e77efbe6c",

"name": "5A Charge Current From Solar @9AM",

"outputField": "payload",

"timeZone": "",

"storeName": "",

"commandResponseMsgOutput": "output1",

"defaultLocation": "",

"defaultLocationType": "default",

"outputs": 1,

"options": [

{

"name": "schedule1",

"topic": "topic1",

"payloadType": "num",

"payload": "5",

"expressionType": "cron",

"expression": " 00 00 09 * APR,MAY,JUN,JUL,AUG,SEP *",

"location": "",

"offset": "0",

"solarType": "all",

"solarEvents": "sunrise,sunset"

}

],

"x": 150,

"y": 300,

"wires": [

[

"33e04f1375e86d0b"

]

]

},

{

"id": "584cff24f4b86d0b",

"type": "cronplus",

"z": "d964144e77efbe6c",

"name": "Return DVCC To Max Charging @2130",

"outputField": "payload",

"timeZone": "",

"storeName": "",

"commandResponseMsgOutput": "output1",

"defaultLocation": "",

"defaultLocationType": "default",

"outputs": 1,

"options": [

{

"name": "schedule1",

"topic": "topic1",

"payloadType": "num",

"payload": "-1",

"expressionType": "cron",

"expression": " 00 30 21 * APR,MAY,JUN,JUL,AUG,SEP *",

"location": "",

"offset": "0",

"solarType": "all",

"solarEvents": "sunrise,sunset"

}

],

"x": 150,

"y": 840,

"wires": [

[

"6110b89057ff4844",

"ce6e78e7d608f5b3"

]

]

},

{

"id": "41739bc00c392785",

"type": "pushover",

"z": "d964144e77efbe6c",

"name": "",

"device": "",

"title": "Sucssesfull Solar Charge Limit",

"priority": "1",

"sound": "falling",

"url": "",

"url_title": "",

"html": false,

"x": 530,

"y": 260,

"wires": []

},

{

"id": "cc60b5af82e6581e",

"type": "victron-output-settings",

"z": "d964144e77efbe6c",

"service": "com.victronenergy.settings",

"path": "/Settings/SystemSetup/MaxChargeCurrent",

"serviceObj": {

"service": "com.victronenergy.settings",

"name": "Venus settings"

},

"pathObj": {

"path": "/Settings/SystemSetup/MaxChargeCurrent",

"type": "float",

"name": "DVCC system max charge current (A DC)",

"writable": true

},

"name": "",

"onlyChanges": false,

"x": 650,

"y": 380,

"wires": []

},

{

"id": "08f94d7d03b06c14",

"type": "victron-input-vebus",

"z": "d964144e77efbe6c",

"service": "com.victronenergy.vebus/276",

"path": "/Alarms/GridLost",

"serviceObj": {

"service": "com.victronenergy.vebus/276",

"name": "Quattro-II 48/5000/70-2x50"

},

"pathObj": {

"path": "/Alarms/GridLost",

"type": "enum",

"name": "Grid lost alarm",

"enum": {

"0": "Ok",

"2": "Alarm"

}

},

"initial": "",

"name": "",

"onlyChanges": false,

"x": 170,

"y": 360,

"wires": [

[

"302d2edc1462e742"

]

]

},

{

"id": "724aa01d6ebf2b4f",

"type": "switch",

"z": "d964144e77efbe6c",

"name": "if global.grid_down = 2",

"property": "grid_down",

"propertyType": "global",

"rules": [

{

"t": "eq",

"v": "2",

"vt": "num"

}

],

"checkall": "true",

"repair": false,

"outputs": 1,

"x": 140,

"y": 480,

"wires": [

[

"4bc99a673652f11b"

]

]

},

{

"id": "4bc99a673652f11b",

"type": "change",

"z": "d964144e77efbe6c",

"name": "Set payload to -1 to turn off DVCC limit",

"rules": [

{

"t": "set",

"p": "payload",

"pt": "msg",

"to": "-1",

"tot": "num"

}

],

"action": "",

"property": "",

"from": "",

"to": "",

"reg": false,

"x": 420,

"y": 460,

"wires": [

[

"cc60b5af82e6581e"

]

]

},

{

"id": "302d2edc1462e742",

"type": "change",

"z": "d964144e77efbe6c",

"name": "set global.grid_down",

"rules": [

{

"t": "set",

"p": "grid_down",

"pt": "global",

"to": "payload",

"tot": "msg"

}

],

"action": "",

"property": "",

"from": "",

"to": "",

"reg": false,

"x": 120,

"y": 420,

"wires": [

[

"724aa01d6ebf2b4f"

]

]

},

{

"id": "33e04f1375e86d0b",

"type": "switch",

"z": "d964144e77efbe6c",

"name": "if grid_down",

"property": "grid_down",

"propertyType": "global",

"rules": [

{

"t": "neq",

"v": "2",

"vt": "num"

}

],

"checkall": "true",

"repair": false,

"outputs": 1,

"x": 450,

"y": 180,

"wires": [

[

"848c0bc58feec51a",

"41739bc00c392785"

]

]

},

{

"id": "4e80af67c358483f",

"type": "delay",

"z": "d964144e77efbe6c",

"name": "Delay 1 Hour Before Max DVCC For Saver Session",

"pauseType": "delay",

"timeout": "5",

"timeoutUnits": "seconds",

"rate": "1",

"nbRateUnits": "1",

"rateUnits": "second",

"randomFirst": "1",

"randomLast": "5",

"randomUnits": "seconds",

"drop": false,

"allowrate": false,

"outputs": 1,

"x": 370,

"y": 540,

"wires": [

[

"e94b541686d86516"

]

]

},

{

"id": "e94b541686d86516",

"type": "change",

"z": "d964144e77efbe6c",

"name": "Saver Session Max DVCC",

"rules": [

{

"t": "set",

"p": "payload",

"pt": "msg",

"to": "-1",

"tot": "num"

}

],

"action": "",

"property": "",

"from": "",

"to": "",

"reg": false,

"x": 670,

"y": 500,

"wires": [

[

"cc60b5af82e6581e",

"bfe94d59c6c28dbb"

]

]

},

{

"id": "bfe94d59c6c28dbb",

"type": "pushover",

"z": "d964144e77efbe6c",

"name": "",

"device": "",

"title": "Octopus Saver Session Max DVCC",

"priority": 0,

"sound": "",

"url": "",

"url_title": "",

"html": false,

"x": 800,

"y": 420,

"wires": []

}

]

3 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Craig Chamberlain avatar image Craig Chamberlain commented ·

Hi @Daza , I'll be honest, I'm struggling to understand what benefit lowering the charge current would have UNLESS it's because you have an AC coupled PV array which I think you have if memory serves? In my case, I have a DC coupled PV array and so the DVCC charge current doesn't have any effect. I think I can restrict the MPPT charge current but there is no benefit in doing that either because I always want to capture as much PV as possible.

Essentially what I'm trying to do is ensure that my MPPTs can run at maximum power by ensuring the CCL of the battery modules is higher than 120A (2 x 60A MPPTs) at all times. That basically means keeping battery SOC below 95% or so by preemptively exporting early enough in the day to cope with the peak generation period.


1 Like 1 ·
daza avatar image daza Craig Chamberlain commented ·

@Craig Chamberlain yes sorry I’m AC I assumed you were too. Cool are you doing this all year round or just summer months?

0 Likes 0 ·
Craig Chamberlain avatar image Craig Chamberlain daza commented ·

It's mainly a summer months issue but even in mid to late spring I have seen PV generation greater than my ability to invert the power if my batteries get full. It's a great problem to have for sure but I hate seeing my batteries at 100% and PV generation pegged back to 4kW when I know there is 6.8kW hitting my PV panels. I guess my best option is to upgrade my 5kVA inverter to an 8kVA or even 10kVA model but in the meantime I'll try to do the best I can.

1 Like 1 ·
sharpener avatar image
sharpener answered ·

Well I have been scratching my head but want to keep it simple, perhaps I will write some NodeRed that will force it to export a fixed proportion of the surplus PV at all times by moving the grid setpoint as you suggest. This should help by slowing down the battery charging so keeping some reserve for later in the day.

It is a balance between having my exports curtailed in the middle of the day and not having the battery fully charged by sundown. Once Octopus have installed a smart meter I can move to Cosy, then it is better to tip the balance of risk towards export as I will be able to buy back cheaper 1300 - 1600 and again 2200 - 2400 if necessary.

So maybe I will start with 50% and then can make it more sophisticated later using Solcast if it is worth the effort.

Does DESS do this already? There is a setup parameter for an export limit, so in theory it "knows". Not sure if it makes use of the information in this way though.

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Craig Chamberlain avatar image Craig Chamberlain commented ·

Yeah I can see why it's a finer balance if you're not on a tariff like Intelligent Octopus Go like I am. In my case I get 15p/kWh for export and it only costs 7.5p/kWh to buy it back between 23:30 and 05:30 if I end up exporting too much. It makes me wonder if it makes sense for some people to just buy a second hand EV to gain access to the Go tariffs. There are some very cheap second hand EVs around these days.

Anyway, ultimately the forecast PV generation is just that, a forecast, and it will be wrong in one direction or the other at times.

Having thought a bit more about what I want to do with my system, basically I want to have a maximum SOC of 90% during peak solar hours because this means my battery CCL is the full 320A. I could go slightly higher with my SOC and still keep my CCL above the 120A max combined output of my MPPTs but the CCL quite quickly rolls off and is just 80A by the time I get to 92% SOC. That is for 4 battery modules so just 20A per module.

So I now just need to calculate how early and how strongly (remember lower export power is more efficient) I need to start exporting to ensure my PEAK SOC doesn't exceed 90%. This will obviously depend on starting SOC but like I said, I intend to recalculate this every 15/30/60 mins to stay on track and allow for consumption and forecast inaccuracies. The next thing I need to do is calculate what time I need to stop exporting to ensure I can top the batteries up to 100% before solar generation ends. For this I need to be mindful of my CCL dropping to 80A at 92% SOC so I would want to avoid doing this too early. I might be able to use forecast irradiance data to predict PV power levels to help with this but this is really just the icing on the cake and I'll tend to err on the side of achieving 100% and a bit of cell balancing time rather than fall short.

It's a surprisingly complicated balancing act and gives me more of an appreciation as to why the DESS system doesn't always behave as you might expect.

Edit: I just had a thought - if I'm generating at 120A (from the MPPTs) and at the same time inverting at max power (~100A into the inverter) then I only need my batteries to be able to accept the remaining 20A. So I could let my SOC climb quite a bit higher. But of course it's better not to be inverting at full power so my ideal inverting power level would be up to around 2kW where efficiency is still 95% rather than go to 4kW where it's dropped to 90%. More variables to contend with! :)

0 Likes 0 ·