arrow1800 / Victron-VirtualBattery

8 stars 2 forks source link

Improvements on safety #5

Closed morres83 closed 1 year ago

morres83 commented 1 year ago

I am using this script now some days and some safety concerns come to my mind

The flow variables will still contain any data, even if this is not up-to-date anymore... this seems dangerous to me because virtualbattery doesn't know that it doesn't get real feedback anymore.

I think we need to think about how to implement some safety features on this topic...

arrow1800 commented 1 year ago

thank you for your message and suggestions. i also saw your merge request.

i agree, this can be a problem.

what if node-red freezes -> i have node-red running on the cerbo GX. a freezed node-red would probably mean the cerbo GX would freeze up as well, resulting in a total freeze. not sure what would happen then. i think the cerbo would reboot. Do you think we would need to take into account any other scenario's?

What if one of the BMSes is not reachable anymore at anytime -> this happens to me from time to time as well. i already adapted my node-red flow a bit(not shared yet) to change the cell voltage to 2.6 or 3.65 in case it did not receive at least one value from each bms. (triggering safety measures already in place)

regarding your merge request -> one last point. only changing max charge current or max discharge current is not a 100% safety measure yet. from my experience when the battery is almost full (and charge algorithm is in Constant Voltage mode) the max charge current value is ignored.. (thus i need to change max charge voltage too).

but lowering max charge voltage to prevent charging doesnt work great either. results in feeding back to grid what i don't want either. any suggestions here as well ?

teefixx commented 1 year ago

I have the same issue. Seeing that max charge voltage on MPPTs is ignored when grid feed in is enabled, I added a CVL function to my node red flow. That works somehow, but is unsatisfying as soon as the CVL is lower than the actual voltage and the batteries are used to feed into the grid…

regarding freezing: if this happens at least the BMS takes care that there is no overcharging. I use as well Nod Red directly on VictronOS on a Pi3. If venusOS freezes the system stops charging afaik.

morres83 commented 1 year ago

Yes I agree that the node red freeze is maybe not a big issue.

For the BMS not reachable I will also implement something now in Node red now to trigger a safety measure. But in fact I would feel better, still, to have something in the python. Maybe I will transmit some kind of timestamp which is compared in python. I need to think about when I have time.

For the merge request, it is true I didn't sync the latest version. In my script I also adapted CVL to 53.6V (3.35V) which should be a safe state. I do see that it happens that the battery then is discharging, but in my system never more than exactly 1A (50W). Is it more for you? It seems to be a Victron feature. But this also happens when using only one battery pack with the original serialbattery (unless you never lower the CVL)

teefixx commented 1 year ago

In my system I have 2 batteries with daly bms I lower CVL based on maxCellVoltage and maxDifference of cells. It´s somehow a function in javascript. I still need to tune it a bit. This is to prevent spiking of cells from 3.35V on. Of course when I lower CVL this leads to feed in to the grid, this can beup to 10A.

arrow1800 commented 1 year ago

Well, i think it depends on battery size right? my feedin can be pretty large (a few Kwh, not for long but still) i try to charge my bank to 55.2V which means 3.45 per cell. this way de BMS balancers have enough room to balance out the cells. however when i lower the CVL(54.4 or 54.8) because one of the cell spikes to a higher voltage i keep bouncing back and forth and the process does not stabilize.

arrow1800 commented 1 year ago

i totally agree with you @morres83 that we also need a safety measure in python itself. i think your proposal is the best for now, until we find a way to disable dis/charging all together.

arrow1800 commented 1 year ago

see mentioned fix for a temporary failing bms in this thread #7 as well

arrow1800 commented 1 year ago

this is fixed for now i guess