Problem
On AC-coupled installations the PV panels are wired to a separate inverter (e.g. SolarEdge, or microinverters), not to the battery's hybrid inverter. From the battery inverter's perspective there is no DC solar input — surplus solar reaches the battery only by being exported to the grid first and then AC-charged back in.
Today SOLAR_STORAGE is hard-coded in core/bess/inverter_controller.py:35 to grid_charge=False, charge_rate=100. On a DC-coupled hybrid that's correct: the inverter just routes its own MPPT surplus to the battery. On AC-coupled it means the battery sits idle the entire solar window even though the DP planner has scheduled it to store surplus — grid_charge=False blocks the only physical charging path the battery has.
I run AC-coupled (SolarEdge for PV, Growatt for battery, ~30 kWh) and have been carrying this as a local patch. Wanted to ask whether you'd accept it upstream — it would help users with any AC-coupled or external-inverter setup.
Proposal
Add external_solar_mode as a battery setting (default false, so DC-coupled users see no change whatsoever):
bess_manager/config.yaml → battery.external_solar_mode: false
- When
true, the SOLAR_STORAGE intent maps to grid_charge=True (the battery AC-charges from the grid during planned storage periods, mirroring the physical reality that exported solar comes back via the meter)
- Surfaced as
externalSolarMode in the battery settings API and the Settings → Battery tab so users can toggle it without editing YAML
The intent semantics don't change, only the hardware translation under one explicit opt-in flag.
Happy to open a PR if you're OK with this direction.
Problem
On AC-coupled installations the PV panels are wired to a separate inverter (e.g. SolarEdge, or microinverters), not to the battery's hybrid inverter. From the battery inverter's perspective there is no DC solar input — surplus solar reaches the battery only by being exported to the grid first and then AC-charged back in.
Today
SOLAR_STORAGEis hard-coded in core/bess/inverter_controller.py:35 togrid_charge=False, charge_rate=100. On a DC-coupled hybrid that's correct: the inverter just routes its own MPPT surplus to the battery. On AC-coupled it means the battery sits idle the entire solar window even though the DP planner has scheduled it to store surplus —grid_charge=Falseblocks the only physical charging path the battery has.I run AC-coupled (SolarEdge for PV, Growatt for battery, ~30 kWh) and have been carrying this as a local patch. Wanted to ask whether you'd accept it upstream — it would help users with any AC-coupled or external-inverter setup.
Proposal
Add
external_solar_modeas a battery setting (defaultfalse, so DC-coupled users see no change whatsoever):bess_manager/config.yaml→battery.external_solar_mode: falsetrue, theSOLAR_STORAGEintent maps togrid_charge=True(the battery AC-charges from the grid during planned storage periods, mirroring the physical reality that exported solar comes back via the meter)externalSolarModein the battery settings API and the Settings → Battery tab so users can toggle it without editing YAMLThe intent semantics don't change, only the hardware translation under one explicit opt-in flag.
Happy to open a PR if you're OK with this direction.