Repository navigation
Curtailment
Open Configure > Advanced settings > Curtailment settings. Configure a separate AC inverter under Advanced settings > AC inverter curtailment. Battery export control, direct DC control and AC inverter control are independent paths; one toggle does not grant every path.
| Permission or setting | Effect and limitation |
|---|---|
| Enable battery export curtailment | Permits the supported battery/export-control route to reduce uneconomic export; mechanism varies by battery/provider |
| Enable DC solar curtailment | Explicit brand-specific opt-in where supported; requires suitable write access and firmware |
| Enable separate AC-coupled inverter shutdown | Enables the configured separate inverter path; see AC inverter curtailment |
| Curtail below export earnings | Economic entry threshold in the displayed rate unit; hysteresis separates entry from release |
| Allow curtailment control in Monitoring Mode | Explicit exception for permitted curtailment, not permission for ordinary battery dispatch |
| Enable Powerwall off-grid fallback | Optional Tesla-specific fallback with different electrical behaviour; see the battery and manual-control references |
At the default zero threshold, genuinely negative export is uneconomic; release uses a deadband to avoid rapid toggling. A custom threshold changes the entry boundary. PowerSync can skip or delay curtailment when the battery can absorb solar or when ownership, telemetry, connection or permission guards block control. A zero-export request does not guarantee zero instantaneous grid flow.
Ordinary optimizer battery commands remain blocked in Monitoring mode. Curtailment can still be permitted by its separate explicit setting and supported route. Relinquishing a permission can restore limits PowerSync owns before saving it off. Previously owned state and pending recovery need their own readback; neither a monitoring status nor an API acknowledgement proves every physical output is unchanged.
Monitoring-only battery connections do not become full-control routes because a curtailment option exists. An independently configured AC inverter can have separate capability and ownership. Do not point an AC controller at the battery's own Modbus endpoint; the setup/runtime guards are intended to prevent that conflict.
Compare real export price, active permission/path, logs, inverter readback and measured grid/solar/battery power in one time window. A status such as Active or a successful write is weaker evidence than independent readback and physical telemetry. Consult the battery references for each control mechanism.
When enabled in Battery Setup > Local Control, the optimizer can physically disconnect the Powerwall from the grid during low-value export periods. This is a stronger curtailment method — the grid connection physically opens, guaranteeing zero export.
The optimizer identifies eligible periods where export value is below 1 c/kWh and projected SOC is near full, then groups them into runs of at least 15 minutes to avoid rapid reconnection cycling. A reconnect window is automatically inserted before any upcoming charge period.
Requirements:
- Tesla Powerwall with completed gateway pairing
- Off-grid curtailment enabled in Battery Setup > Local Control
- Optimizer enabled
Safety gates:
- SOC floor (default 40%) — won't go off-grid below this battery level
- Near-full battery gate — optimizer overlay only schedules off-grid curtailment when projected SOC is at least 98%
- Daily duration cap (default 6 hours)
When the optimizer is enabled, the independent curtailment loop is bypassed to prevent conflicts. If the optimizer is disabled, the independent curtailment loop still works.
Solar continues producing while off-grid — it charges the battery and powers the home. The battery is the sole backup when solar is insufficient, which is why the SOC floor is important.
The tables use the current form labels and help text. They list the conditional field union: a field can be hidden for a different battery, provider, route or available integration. The instructions above explain those conditions. Existing saved/discovered values take precedence over fresh fallbacks. Rate units follow the provider; check the displayed currency/energy unit.
| Field | Meaning / input | Fallback / limits |
|---|---|---|
| Enable battery export curtailment | Stop battery export when earnings fall below the configured threshold (negative earnings by default). This controls the battery/Tesla path only; supported DC solar curtailment has its own opt-in. | Saved/detected value or the form’s shown fallback |
| Enable separate AC-coupled inverter shutdown | Shut down a separate AC-coupled or string solar inverter (Fronius, Sungrow, GoodWe, Enphase) when export earnings drop below the configured threshold (negative earnings by default). Do not enable this for the hybrid battery inverter already configured as the battery system. | Saved/detected value or the form’s shown fallback |
| Curtail below export earnings | The normal automatic trigger is below 0 c/kWh; export at exactly 0 c/kWh is not curtailed. A non-zero custom threshold retains a 0.2c/kWh release deadband. | -100.0–200.0 c/kWh; step 0.1 |
| Allow curtailment control in Monitoring Mode | When explicitly enabled, automatic curtail and restore commands may run while Monitoring Mode continues to block every unrelated battery, EV, and inverter dispatch command. Curtailment can change solar output or inverter export settings. | Saved/detected value or the form’s shown fallback |
| Enable DC solar curtailment | Reduce DC solar output when export earnings drop below the configured threshold (negative earnings by default). This is independent of battery export curtailment and requires Modbus write access; Monitoring Mode also requires curtailment-control permission. | Saved/detected value or the form’s shown fallback |
| Enable Powerwall off-grid fallback | Allow PowerSync to temporarily island the Powerwall when export curtailment is needed but no AC inverter curtailment path is configured or available. | Saved/detected value or the form’s shown fallback |