How to force MPPT PV to grid even if battery is not full?

Hi everybody,

I’m running my own HEMS, and now that I added an MPPT to my system, I can’t seem to force all my PV output to be exported directly to the grid.

Before, with only the AC-coupled PV, I would just set the CCL to 0 via Modbus, and that prevented battery charging and all the excess power went out to the grid. But with the MPPT (RS450/100) added to the system, the MPPT continues to charge the battery (which is correct according to the DVCC documentation), while the AC PV is exported.

I’ve seen various hints to solve this via DESS and node-red and just had a play with it, but I can’t seem to get it to do anything. I’m setting the DESS mode to 4 (node-red), the schedule 0 strategy to either “pro grid” or “target SOC” (with the current SOC being the target), and while I see under com.victronenergy.system that DESS is active and the strategy is accepted, I see no change in behaviour.

Any hints?

Hi. Many existing topics on this subject and related matters. Best dig around in the modifications and nodered sections.
You need to force a negative setpoint, nothing more complex required. This will also discharge the battery if it exceeds generation.

DESS has another purpose and can over-complicate a system with the mechanisms it uses. It is not required to export power.

That would require me to implement my own control loop to keep the setpoint updated with the PV production (or better, drive the battery current to zero). Possible, but not really elegant, I think…

That is the only way, and perfect for nodered.
ESS (and DESS) won’t do this natively.

1 Like

You can easily do this via Node Red (which ist part of the VenusOS “large image”). I have 5.4 kWp PV installed, but have only a MP2-3000 which can deliver a maximum of 2.4 kW. And yet I can feed in all my excess PV production to the grid, just using a battery with enough capacity and a Node Red flow. The flow uses Victron’s solar forecast and current SOC to calculate a propriate value for the grid-setpoint.

You can find many samples for that here in the Node Red section and at other places in the net.

1 Like

OK, so this is what I’ve done now – implemented a python thing that runs on VenusOS and implements that control loop via com.victronenergy.hub4/Overrides/Setpoint to keep the battery current at zero, and while I’m at it, it also does all the other things my code did via Modbus (charge from grid, discharge to grid, etc), it listens to commands via MQTT.

The control loop is a pure “I” loop (the I from “PID”), seems like the best thing to do for smooth operation and to prevent wild overshoots. This sunny morning seems to confirm it’s working, but I’ll have to see how it behaves when there’s clouds coming and going.