Skip to content

Add external_solar_mode battery setting for AC-coupled PV systems #162

Description

@jdungen

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.yamlbattery.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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions