victronenergy / venus

Victron Energy Unix/Linux OS
https://github.com/victronenergy/venus/wiki
580 stars 73 forks source link

systemcalc: don't rely on /State of Inverter/Multi RS to distribute BMS link parameters #1186

Closed izak closed 8 months ago

izak commented 9 months ago

For solar charging

The algorithm tries to make the headroom of all the chargers the same, but in all likelihood a zero in the mix causes the fractions to behave improperly.

It already ignores chargers that are off (/State = 0), but of course inverter-RS and Multi-RS are not off, they are in /State=9 or similar, so the current limit is assigned to these even if it has no PV connected.

An easy fix is to simply remove chargers with /Settings/ChargeCurrentLimit = 0 from the list of chargers we distribute the limit over.

For BMS control

When the BMS sends DCL=0, and if there is no solar connected, then /State = 0. This causes systemcalc to no longer write link parameters to the device, which causes it to time out and switch on again after 60 seconds, ending up oscillating.

nmbath commented 9 months ago

An easy fix is to simply remove chargers with /Settings/ChargeCurrentLimit = 0 from the list of chargers we distribute the limit over.

This might be a better solution, as if for some reason an Alternator or any DVCC controlled device happens to send 0, and not set State to 0, it would also be excluded.