Skip to content

Battery System Setup

bolagnaise edited this page Jul 14, 2026 · 44 revisions

Battery System Setup

At a Glance

System Connection Key Limitations
Tesla Powerwall PowerSync.cc (recommended), Fleet API, or Teslemetry
FoxESS (H1, H3, H3-Pro, H3 Smart, KH) Modbus TCP or RS485
Sigenergy Cloud API + local Modbus TCP Requires installer-enabled local Modbus access
GoodWe hybrid (ET/EH/BT/BH/ES/EM/BP) UDP or TCP (local), or Modbus TCP gateway Grid-only models (DT/MS/XS) not supported
Sungrow SH-series Local Modbus TCP SG-series: AC curtailment only (no battery control)
AlphaESS (SMILE/Storion) Local Modbus TCP + optional Cloud API One active local connection at a time
Solax Hybrid (X1/X3 Gen4–Gen6, AC Retro-Fit) Via Solax Modbus integration (HACS) Gen2/Gen3 not supported
ESY Sunhome (HM series) Via ESY Sunhome integration (HACS) No W-level power setpoints; no backup reserve control
SAJ H2 / HS2 Via SAJ H2 Modbus integration (HACS) No backup reserve control
Fronius Reserva Via Fronius Modbus integration (HACS) Requires Reserva storage-control entities from the upstream integration
Neovolt / Bytewatt Via Neovolt Modbus integration (HACS) Requires dispatch entities from the upstream integration; independent stacks need Host mode
SolarEdge Home Battery / inverter curtailment SolarEdge HA entities for telemetry and storage control; direct Modbus TCP or SolarEdge Modbus entity fallback for curtailment Full dispatch when writable SolarEdge storage-control entities are exposed
Custom / external controller Existing Home Assistant telemetry entities Planner-only Smart Optimization in monitoring mode; no PowerSync hardware commands

Custom / External Controller

Use this when your battery system is already managed by another integration, Node-RED flow, MQTT bridge, vendor controller, or custom automation, and you want PowerSync to calculate and publish Smart Optimization decisions without taking over the hardware.

This is selected during the Battery system setup stage. It is not an optimizer-specific option. PowerSync asks you to choose the Home Assistant entities you already have for the site:

Entity Expected value
Battery level sensor Battery state of charge as a percentage
Battery power sensor Power in W or kW. Positive means discharging; negative means charging
Grid power sensor Power in W or kW. Positive means importing; negative means exporting
Solar power sensor Current solar production in W or kW
Home load sensor Current whole-home/site load in W or kW

PowerSync also asks for planner limits:

Setting Purpose
Battery capacity Usable battery capacity for the LP model
Maximum charge power Highest charge rate the planner may schedule
Maximum discharge power Highest discharge/export rate the planner may schedule
Maximum grid import Optional total site import cap for optimizer planning. Set to 0 for no cap
Minimum discharge level SOC floor the planner will not go below
Allow grid charging Whether the plan may include grid-charging windows

Behaviour

  • PowerSync forces Smart Optimization on in monitoring mode for custom systems.
  • It reads the selected HA entities, normalizes W/kW values, and feeds them into the optimizer, cost tracking, and forecast sensors.
  • It does not create a brand-specific hardware coordinator.
  • It does not send force charge, force discharge, reserve, restore, or inverter control commands.
  • The optimizer action sensors expose the planned decisions. Your existing controller or automations decide how, or whether, to act on them.

This is the right setup for multi-inverter or mixed-brand systems where PowerSync cannot own every device directly, such as a GoodWe hybrid plus separately controlled AC batteries.


Tesla Powerwall

Don't want to run Home Assistant? PowerSync Cloud is a fully hosted alternative ($4.99/month) for Tesla Powerwall users on Amber, GloBird, or Energy Locals. No local server needed — sign in with Tesla, pick your retailer, and PowerSync handles negative-price protection and AEMO spike export automatically. Includes iOS/Android apps and a real-time web dashboard.

PowerSync supports three methods for accessing your Tesla Powerwall via the Home Assistant integration. Choose one — you don't need all three.

Option 1: PowerSync (Recommended — Free)

The easiest option. PowerSync is a registered Tesla Fleet API partner — when you sign in, Tesla authorizes PowerSync.cc to read your Powerwall data and send commands on your behalf. We never see your Tesla password.

Pros
Free Tesla doesn't charge for energy product reads or commands
30-second setup Click a link, sign in with Tesla, paste a token
No Tesla developer account We're already a registered Fleet API partner
No HA integration prerequisite Works without tesla_fleet installed
Works in any region NA, EU, APAC, MEA — region detected automatically

Setup:

  1. In Home Assistant, add the PowerSync integration. When asked which Tesla provider to use, choose PowerSync (recommended).
  2. Open this URL in any browser: https://api.powersync.cc/auth/start
  3. Sign in with your Tesla account (Tesla shows a consent screen — approve the energy product scopes)
  4. You'll get a token starting with psync_ — copy it
  5. Paste it back into the PowerSync setup form

That's it. Tesla never sees Home Assistant; PowerSync.cc never sees your Tesla password. The token is the only thing that links your HA install to your Powerwall, and you can revoke it any time at https://accounts.tesla.com/account-settings/security or by removing the integration.

If your token gets invalidated for any reason (revoked, expired, etc.), Home Assistant will automatically prompt you to re-authenticate via the same flow.

Option 2: Tesla Fleet API (Free)

Direct access via your own Tesla developer app. Free but requires you to do the developer registration and OAuth setup yourself.

Setup:

  1. Install the official Tesla Fleet integration in Home Assistant
    • Settings > Devices & Services > Add Integration > "Tesla Fleet"
    • Follow the login flow (requires your own Tesla developer app)
  2. PowerSync automatically detects your Tesla Fleet credentials
  3. When PowerSync asks which provider to use, select Tesla Fleet API

Option 3: Teslemetry (~$4/month)

Third-party paid proxy. Use this if you prefer a managed service or already have a Teslemetry subscription.

Setup:

  1. Sign up at https://teslemetry.com
  2. Connect your Tesla account
  3. Copy your API key
  4. Choose Teslemetry in the PowerSync setup and paste your API key

Powerwall Local Control Pairing

Pairing is separate from the Tesla provider choice above. The provider gives PowerSync access to your Tesla energy site; pairing registers a PowerSync RSA key with Tesla so Home Assistant can send signed Powerwall gateway commands and read the richer BMS data used for local control and per-pack battery health.

Pairing is used for:

  • Powerwall local control and gateway verification
  • Off-grid / reconnect controls
  • Off-grid curtailment
  • Battery Health and per-pack capacity/SOC/SOH sensors such as sensor.powerwall_1_capacity
  • Local gateway snapshots and faster local writes when a gateway IP is configured

Before you start:

  • Finish the Tesla Powerwall setup using PowerSync, Tesla Fleet API, or Teslemetry.
  • Make sure you can physically reach the Powerwall DC isolator.
  • Optional: enter the Powerwall gateway IP during setup, or later in Settings > Battery Setup > Gateway Connection in the PowerSync mobile app. Pairing itself is cloud-based and does not need a gateway IP or customer password. The gateway IP enables LAN-only features such as live local polling, automated curtailment, and fast operation-mode writes.

Pair from the PowerSync mobile app:

  1. Open the PowerSync app and connect it to your Home Assistant instance.
  2. Go to Settings > Battery Setup > Local Control.
  3. Tap Pair Gateway.
  4. Tap Start Pairing.
  5. Within the 2-minute pairing window, toggle the Powerwall DC isolator OFF, wait 10 seconds, then toggle it ON again.
    • Powerwall 3: the switch is on the left side of the unit, under the cover flap.
    • Powerwall 2: the switch is on the right side of the unit.
  6. Wait for the app to show Paired. Home Assistant should also show binary_sensor.power_sync_powerwall_local_paired as on.

Pair from Home Assistant:

  1. Open the PowerSync integration's entities in Home Assistant.
  2. Press button.power_sync_pair_powerwall_gateway.
  3. When the persistent notification asks for the physical-presence check, toggle the DC isolator OFF, wait 10 seconds, then ON again within the 2-minute window.
  4. Wait for the success notification and confirm binary_sensor.power_sync_powerwall_local_paired is on.

Re-pairing and unpairing:

  • If the site is already paired, pressing Pair Powerwall Gateway once only arms a 30-second confirmation. Press it again within 30 seconds to generate and register a new key. The old key stays valid until the new key is verified.
  • Press button.power_sync_unpair_powerwall_gateway twice within 30 seconds to clear the stored key and return commands to the Tesla cloud path.
  • If pairing times out, press Pair Gateway again and repeat the DC-isolator toggle.

FoxESS

Supports H1, H3, H3-Pro, H3 Smart, and KH model families. All control is done locally — no cloud API required for battery control.

OEM rebrands using identical hardware are also supported — the model family is detected automatically during setup.

Supported Models

Model Family Type OEM Rebrands
H1 Single Phase AIO-H1, a-TroniX AX
H3 Three Phase AIO-H3, Kuara H3, Sonnenkraft SK-HWR, 1KOMMA5
H3-Pro Three Phase (Higher Power)
H3 Smart Three Phase (Native WiFi)
KH Single Phase Hybrid

Rebrands: If your inverter is an OEM rebrand (e.g., Kuara, Sonnenkraft, 1KOMMA5), just connect it like any other FoxESS unit. PowerSync identifies the model family automatically — no special configuration needed.

Connection Options

Modbus TCP (Recommended for H3 Smart)

  • Port: 502 (default)
  • Slave ID: 247 (default)
  • For H3 Smart: Connect directly to the inverter's IP address — no external adapter needed

RS485 Serial

  • Baud rate: 9600 (default)
  • Slave ID: 247 (default)
  • Requires an RS485 adapter (USB or network gateway like Elfin EW11)

H3 Smart Setup

The H3 Smart has a built-in WiFi connection. No external adapter is needed.

  1. Find the inverter's IP address — it appears as "espressif" on your network
  2. Ensure firmware is up to date — required for a stable connection
  3. Use default settings — Port 502, Slave ID 247
  4. PowerSync will auto-detect the model as H3 Smart during setup

Troubleshooting: If the connection test fails:

  • Check your router for a device named "espressif" to find the correct IP
  • Update inverter firmware to the latest version
  • Verify port 502 is not blocked by your network

FoxESS Cloud (Optional)

A FoxESS Cloud API key allows PowerSync to sync electricity prices as time-based schedules on your inverter (up to 8 periods per day). This is not required for battery control.

Getting your API key:

  1. Log in to foxesscloud.com
  2. Go to User Profile > API Management
  3. Generate a new API key
  4. Enter the API key and your device serial number during PowerSync setup

Note: When Smart Optimization is enabled, cloud schedule sync is automatically skipped — the optimizer controls the inverter directly, and uploading schedules to the cloud would conflict.

Work Modes

Mode Description
Self Use Normal self-consumption — battery powers home, charges from solar
Feed-in First Prioritises exporting to grid
Backup Reserves battery for backup power
Peak Shaving Reduces grid import during peak periods (H3-Pro/Smart only)

Force Charge/Discharge (v2.5.0+)

Precise power control for charging or discharging the battery on demand. The power level is read from the inverter's own configured maximum — not a fixed cap.

Feature Description
Force Charge Charges battery from grid at a configurable power level
Force Discharge Discharges battery to grid
Max power Read automatically from the inverter

Sigenergy

Full support for Sigenergy hybrid inverters with integrated battery storage.

Features

  • Tariff Sync via Cloud API — Uploads pricing to Sigenergy Cloud using 30-minute time-of-use format
  • Real-Time Energy Data — Reads solar, battery, grid power and state of charge locally
  • DC Solar Curtailment — Stops grid export during negative prices while still powering your home
  • Grid Export Limit — The value selected in PowerSync Controls is saved as the persistent site cap, used by Smart Optimization, and restored after temporary zero-export curtailment
  • Charge / Discharge Rate Limits — Values selected in PowerSync Controls are saved as persistent caps, constrain Smart Optimization and force targets, and are restored after temporary optimizer modes; returning to native/VPP control restores the inverter-rated limits

Connection Requirements

Connection Purpose Required
Cloud API Tariff sync to Sigenergy Yes
Local (Modbus TCP) Real-time energy data + DC curtailment Yes

Important: Local Modbus access must be enabled on your Sigenergy inverter before PowerSync can connect. This is typically configured by your installer via the SigenStor app or installer portal.

Device ID Note: If you have an AC Charger installed, it uses Device ID 1 by default. The inverter must be set to a higher ID (e.g., 2).

Getting Cloud API Credentials

Credential Description Where to Find
Email Your Sigenergy account email Your login email
Password Your Sigenergy account password Your normal password
Device ID Optional — usually not needed Leave blank
Station ID Your Sigenergy station identifier SigenAI app or browser dev tools

Device ID (optional):

Leave this field blank — Sigenergy no longer requires a Device ID for authentication. If authentication fails without it, you can find it by:

  1. Go to https://app-aus.sigencloud.com/#/accounts/login in your browser (don't log in yet)
  2. Open Developer Tools (F12) > Network tab > filter by Fetch/XHR > check "Preserve log"
  3. Log in normally
  4. Find the token POST request > Payload tab > look for userDeviceId (13 digits)

Getting Station ID:

  • Ask SigenAI in the app: "Tell me my StationID"
  • Or find it in the browser dev tools network requests

Force Charge/Discharge (v2.5.0+)

Feature Description
Force Charge Charges battery from grid at a configurable power level
Force Discharge Discharges battery to grid
Restore Normal Returns to normal self-consumption and restores backup reserve
Backup Reserve Saved before force modes and restored automatically

Sigenergy Configuration

  1. In initial setup, choose your electricity provider first
  2. Select Sigenergy as your battery system
  3. Select your optimization provider
  4. Enter Cloud credentials (email, password)
  5. Select your station from the list
  6. Enter your inverter's IP address
  7. After setup, use Configure > Solar Curtailment if you want Sigenergy DC curtailment or AC inverter curtailment

When DC curtailment is active, the inverter's effective export limit temporarily becomes 0 kW, while the Export Limit control continues to show the configured non-curtailed cap. PowerSync restores that cap when the uneconomic-export window ends.


GoodWe

Full support for GoodWe hybrid inverters. Local connection only — no cloud API required.

Features

  • Auto-Detection — Model family is automatically identified during setup
  • Force Charge/Discharge — Charges or discharges the battery on demand
  • Backup Reserve — Set minimum state of charge
  • Grid Export Limit — Configurable export power limit
  • Battery Health — State of health read from inverter

Supported Models

Series Type Battery Control
ET Three Phase Hybrid Full support
EH Three Phase Hybrid Full support
BT Three Phase Hybrid Full support
BH Three Phase Hybrid Full support
ES Single Phase Hybrid Full support
EM Single Phase Hybrid Full support
BP Single Phase Hybrid Full support
DT/MS/XS Grid-only (no battery) Not supported

Connection Options

UDP via WiFi Dongle (Default)

  • Port: 8899
  • Works with most GoodWe inverters out of the box

TCP via LAN Dongle

  • Port: 502
  • Requires a GoodWe LAN dongle (WLA0000-01-00P V2.0)
  • More reliable for installations with poor WiFi

TCP via Modbus Gateway (EMS Mode)

  • Some installations connect GoodWe through a third-party Modbus TCP gateway
  • In this setup the inverter's UDP port 8899 is unreachable, so operation mode registers cannot be written directly
  • PowerSync works around this by relaying force charge/discharge commands through the GoodWe Home Assistant integration's EMS entities, which use registers that accept TCP writes
  • See Modbus TCP Gateway Setup below

GoodWe Setup

  1. Find the inverter's IP address — check your router's device list for the WiFi or LAN dongle
  2. Select GoodWe as your battery system during PowerSync setup
  3. Enter the inverter's IP address
  4. Select the protocol (UDP or TCP) matching your dongle type
  5. The port defaults automatically (8899 for UDP, 502 for TCP)
  6. PowerSync tests the connection and auto-detects your inverter model

Note: If setup reports "no battery support", your inverter is a grid-only model (DT/MS/XS series) which does not have battery control capabilities.

Modbus TCP Gateway Setup

If your GoodWe inverter is connected via a Modbus TCP gateway (rather than a direct WiFi/LAN dongle), force charge and force discharge require an extra configuration step. GoodWe's operation mode registers only accept writes over the proprietary UDP protocol on port 8899 — TCP writes are silently ignored.

Prerequisites:

  • The GoodWe Home Assistant integration must be installed and working
  • This integration must be providing select.<prefix>_ems_mode and number.<prefix>_ems_power_limit entities (where <prefix> is typically goodwe)

Steps:

  1. Go to Settings → Devices & Services → PowerSync → Configure
  2. Open GoodWe Connection Settings
  3. Set EMS Entity Prefix to the entity prefix used by the GoodWe integration — typically goodwe
  4. Save

PowerSync will now route force charge, force discharge, and normal operation commands through the EMS mode entities instead of writing directly to operation mode registers. EMS mode options used: charge_pv (force charge, falling back to charge_battery where needed), sell_power (force discharge, falling back to discharge_battery where needed), auto (normal/idle).

Operation Modes

Mode Description
General / Auto Normal self-consumption operation
ECO Charge / Buy Power Force charge from grid
ECO Discharge / Sell Power Force discharge to grid

Backup Reserve

GoodWe controls backup reserve using depth of discharge (how deeply the battery is allowed to deplete). PowerSync converts automatically:

  • Setting backup reserve to 20% → battery allowed to deplete to 20%
  • Setting backup reserve to 100% → battery kept fully charged (full backup)
  • Internally this is written as DOD = 100 - reserve percentage

When leaving force-charge or force-discharge modes, PowerSync restores General / Auto operation before applying the reserve floor so the inverter is no longer stuck in ECO Charge or ECO Discharge while the DOD setting is updated.


Sungrow SH-series

Full support for Sungrow SH-series hybrid inverters via direct local connection. No cloud API required.

Features

  • Direct Local Control — All control via your local network
  • Force Charge/Discharge — Manual or automatic battery control
  • Rate Limiting — Set maximum charge and discharge rates (kW)
  • Export Limit Control — Limit grid export power
  • Backup Reserve — Configure minimum state of charge for backup power
  • Battery Health Monitoring — Read state of health directly from the battery
  • AEMO Spike Auto-Discharge — Automatic VPP participation for Globird users

Supported Models

Series Type Battery Control
SH-series Hybrid Inverter Full support
SG-series String Inverter AC curtailment only (no battery)

Connection Settings

Setting Default
Port 502
Slave ID 1

Dual Inverter Setup (Optional)

If you have two Sungrow SH inverters — for example, a grid-facing primary and a secondary on the primary's backup port — PowerSync can manage both as a single combined system.

How it works:

  • During initial setup, after configuring the primary inverter you'll be prompted to optionally add a second inverter's IP address
  • Both inverters are polled independently and their data is combined into a single view
  • Solar, battery power, and load are summed across both inverters
  • Grid power uses the primary inverter only (it's the grid-facing unit)
  • State of charge is capacity-weighted across both inverters
  • Commands (force charge, force discharge, restore) are sent to both inverters simultaneously
  • Charge/discharge power is split proportionally — the emptier battery gets more charging power, the fuller battery gets more discharging power, and larger batteries get a proportionally larger share

Battery capacity weights:

If your two inverters have different-sized battery stacks, configure the capacity of each so that state-of-charge averaging and power splitting are accurate. For example, if your primary has 51.2 kWh and your secondary has 102.4 kWh:

Setting Value
Primary Battery Capacity 51.2
Secondary Battery Capacity 102.4

With these settings:

  • SOC averaging is capacity-weighted. If the 51.2 kWh stack is at 80% and the 102.4 kWh stack is at 40%, the combined SOC is 53.3% — not the naive 60% average
  • Power splitting accounts for both SOC and capacity — the larger stack receives a proportionally larger share

The default capacity is 25.6 kWh for both inverters. If your battery stacks are identical, you can leave the defaults — the ratio is what matters, not the absolute values.

Setup:

  1. Configure your primary (grid-facing) Sungrow inverter as normal
  2. On the "Secondary Sungrow Inverter" step, enter the IP of your second inverter
  3. PowerSync tests the connection and stores both configurations
  4. To add/remove a secondary later, go to Settings > Devices & Services > PowerSync > Configure

Grid-forming inverter SOC cap:

In an off-grid scenario, the primary inverter needs headroom in its battery to absorb excess output from the secondary. The Primary Inverter Max SOC (%) setting caps the primary inverter's maximum charge level — for example, setting it to 90% reserves 10% buffer capacity. Set to 100% (default) to disable.

Safety features:

  • If the secondary inverter fails to connect on startup, PowerSync falls back to single-inverter mode automatically
  • Each inverter is polled independently — a temporary connection failure on one doesn't block the other
  • Removing the secondary IP in the options flow cleanly removes all secondary config

Solax Hybrid (Battery System)

Full battery system support for Solax Hybrid inverters. PowerSync connects via the wills106/homeassistant-solax-modbus integration as a companion — that integration handles all direct Modbus communication, and PowerSync bridges through its HA entities for real-time telemetry and battery control. No direct Modbus connection is opened by PowerSync, so your existing solax_modbus setup keeps running untouched.

Supported Models

All models supported by the wills106 solax_modbus integration are supported:

Family Type
X1-Hybrid Gen4 Single phase hybrid
X1-Hybrid Gen5 Single phase hybrid
X1-Hybrid Gen6 Single phase hybrid
X3-Hybrid Gen4/5/6 Three phase hybrid
X1/X3 AC Retro-Fit AC-coupled battery

Gen2/Gen3: These generations use a different control model (Force Time Use schedule windows) and do not expose the Manual Mode select entity. They will show a "missing entity" error at setup. Use the AC-coupled curtailment path instead if you have a Gen2/Gen3 inverter without battery control needs.

Prerequisites

  • The Solax Modbus integration installed in Home Assistant via HACS. This integration manages the Modbus connection and creates the HA entities PowerSync reads.
  • Your Solax inverter paired and online in the solax_modbus integration before adding PowerSync.

No extra credentials needed in PowerSync. All authentication and Modbus communication is handled by the solax_modbus integration. PowerSync reads and writes its entities.

Features

  • Smart Optimization — PowerSync's built-in LP optimizer runs full charge/discharge scheduling based on price forecasts, solar generation, and home load.
  • Force Charge/Discharge — Charges or discharges the battery on demand via Manual Mode. An HA-side timer automatically restores Self Use mode when the window expires.
  • Backup Reserve — Configurable minimum state of charge using the upstream SolaX number entity's advertised range; legacy entities without range metadata retain the 15–100% fallback.
  • Grid Export Limit — Configurable export power cap via the export_control_user_limit entity.
  • Operation Mode Control — Supports Self Use, Feed-in Priority, Back Up, and Smart Schedule modes.
  • AEMO Spike Export — Automatically forces discharge during AEMO price spikes. Supported for all Australian retailers via the generic spike manager.
  • Live Telemetry — Solar (PV1 + PV2), grid, battery, and load power; battery state of charge and temperature; daily energy totals.

Setup

  1. Install the Solax Modbus integration from HACS and confirm your inverter entities are appearing (e.g. sensor.solax_battery_capacity).
  2. Add (or reconfigure) the PowerSync integration and select Solax Hybrid as your battery system.
  3. Enter the entity prefix used by your solax_modbus installation — this is the prefix in front of all entity names. The default is solax.
  4. Enter your battery's nominal voltage (default 51.2 V for LFP T-BAT packs; use 102.4 V for HV packs).
  5. Enter your battery capacity (kWh) and maximum charge/discharge current limits (A).
  6. PowerSync validates that all required entities exist and then saves the configuration.

Finding your entity prefix: In Home Assistant, go to Settings > Devices & Services > Solax Modbus. Click on your device and look at the entity IDs — the part before _battery_capacity is your prefix (e.g. if the entity is sensor.solax_x1_battery_capacity, the prefix is solax_x1).

Entities Used

PowerSync reads and writes the following solax_modbus entities (shown with default prefix solax):

Entity Role
sensor.solax_battery_capacity State of charge (%)
sensor.solax_battery_power_charge Battery power (W) — positive = charging
sensor.solax_measured_power Grid power (W) — positive = importing
sensor.solax_pv_power_1 + sensor.solax_pv_power_2 Solar generation (W)
sensor.solax_inverter_power Home load (W)
sensor.solax_battery_temperature Battery temperature (°C)
select.solax_charger_use_mode Operating mode
select.solax_manual_mode Manual mode command (Stop / Force Charge / Force Discharge)
number.solax_battery_charge_max_current Maximum charge current (A)
number.solax_battery_discharge_max_current Maximum discharge current (A)
number.solax_battery_minimum_capacity Backup reserve (%)
number.solax_export_control_user_limit Grid export limit (W)

Reconfiguring

Go to Settings > Devices & Services > PowerSync > Configure > Solax connection to update the entity prefix, battery voltage, capacity, or current limits.

Status

Solax Hybrid battery system support was introduced in PowerSync 2.12.113. Report issues on Discord.


Solax (AC-Coupled Inverter Curtailment)

For installations where a Solax inverter is used as an AC-coupled solar inverter (not for battery control), PowerSync supports export curtailment — limiting grid export during negative prices while still powering the home.

This path does not require the solax_modbus HACS integration. It connects directly via Modbus TCP and writes the export_control_user_limit register (0x42).

See AC-Coupled Inverter Curtailment for setup instructions.


AlphaESS

Support for AlphaESS SMILE and Storion hybrid inverter-battery systems via local connection, with optional Cloud API fallback when the local connection is unreachable.

Supported Models

  • SMILE5, SMILE-Hi5, SMILE-Hi10 (residential)
  • SMILE-B3, SMILE-T10, SMILE-G3
  • Storion-T30

Single-phase and three-phase variants are both supported.

Prerequisites

  • Ethernet cable between your AlphaESS inverter and your local network. The inverter accepts only one active local connection at a time.
  • Local control enabled on the inverter (usually default; check with your installer if unsure).
  • Optional: an AlphaESS Open API App ID + App Secret from open.alphaess.com for cloud fallback.

DC Curtailment firmware requirement

If you want DC curtailment, you must enable Modbus export control in your AlphaESS firmware before it will have any physical effect.

AlphaESS firmware has a separate setting that controls whether the inverter honours export-limit commands sent over Modbus. Without it, PowerSync can write the register and the value will change, but the inverter will not physically throttle PV output.

To enable it:

  1. Open the AlphaESS appSettingsGridExport Limit
  2. Set the export limit mode to Modbus or enable External Control (exact label varies by firmware version)
  3. Save and confirm

If you cannot find this setting, your firmware version may not support it — check for a firmware update or contact AlphaESS support.

Connection Settings

Setting Value
Port 502
Slave ID 85 — AlphaESS factory default. Not 1 or 247 like other brands.

Features

  • Smart Optimization — PowerSync's built-in optimizer writes charge/discharge plans every 5 minutes based on price forecasts.
  • Force charge / discharge / release — Standard power_sync.force_charge, force_discharge, and restore_normal services work for AlphaESS.
  • DC Solar Curtailment — When feed-in price drops below 1 c/kWh, PowerSync blocks grid export. Solar keeps powering the house and charging the battery. Requires firmware setting — see above.
  • Battery Health — State of charge, state of health, rated capacity, and current limits are exposed as sensors.
  • Cloud Fallback — If the local connection goes unreachable, PowerSync polls AlphaESS's cloud API for data. Cloud-based control is coarser than local.

AlphaESS Configuration

  1. Select AlphaESS as your battery system during PowerSync setup.
  2. Enter the inverter's host/IP, port (default 502), and slave ID (default 85).
  3. Optionally configure an export safety cap (kW) to limit grid export during force-discharge operations.
  4. Toggle Enable DC curtailment if you want zero-export protection when feed-in prices are low. Only enable this after completing the firmware step above — enabling it without the firmware setting will have no effect.
  5. On the next step, optionally enter Open API App ID + App Secret + serial number for cloud fallback. Leave blank to use local connection only.

Single connection limit: AlphaESS firmware allows only one active local connection at a time. Don't run other AlphaESS integrations on the same inverter in parallel.

Troubleshooting: curtailment enabled but export continues

  1. Check the firmware setting first — Modbus export control must be enabled in the AlphaESS app (see DC Curtailment firmware requirement above). This is the most common cause.
  2. Check PowerSync logs for AlphaESS export limit set to 0% — if absent, the write is not being attempted (DC curtailment toggle may be off).
  3. If the log shows 0% written but export continues, the inverter firmware is not enforcing it — the firmware setting is the fix.

Status

AlphaESS support was introduced in PowerSync 2.12.47 and validated end-to-end against a live SMILE system. Report any issues on Discord.


ESY Sunhome

Full support for ESY Sunhome HM-series hybrid inverter-battery systems. PowerSync connects via the ESY Sunhome integration as a companion — that integration handles the cloud connection, and PowerSync bridges through it for real-time telemetry and battery control.

Prerequisites

  • The ESY Sunhome integration installed in Home Assistant via HACS (search "ESY Sunhome"). This integration manages the ESY cloud connection and creates the HA entities PowerSync reads.
  • Your ESY Sunhome device paired and online in the ESY Sunhome integration before adding PowerSync.

No extra credentials needed in PowerSync. All authentication is handled by the ESY Sunhome integration. PowerSync just reads its entities.

Features

  • Smart Optimization — PowerSync's built-in LP optimizer runs full charge/discharge scheduling based on price forecasts, solar generation, and home load.
  • AEMO Spike Export — Automatically forces discharge during AEMO price spikes ($3000/MWh+). Supported for all Australian retailers via the generic spike manager.
  • Saving Sessions — Participates in grid demand-response events.
  • Live Telemetry — Solar, grid, battery, and load power; battery state of charge; daily energy totals.
  • Mode Control — LP optimizer commands map to ESY's native operating modes:
PowerSync Action ESY Mode
Force charge Emergency Mode
Force discharge Electricity Sell Mode
Restore normal / Idle / Self-consumption Regular Mode

Mode-only control: ESY Sunhome does not expose W-level charge/discharge setpoints. The optimizer issues charge/discharge commands, but the actual power level is determined by the battery firmware. set_backup_reserve is a no-op (logged, not sent).

ESY Sunhome Setup

  1. Install the ESY Sunhome integration from HACS and complete device pairing.
  2. Add the PowerSync integration and select ESY Sunhome as your battery system.
  3. PowerSync will auto-select the ESY entry if only one exists, or show a picker if you have multiple.
  4. Setup completes automatically — no IP address or API key required in PowerSync.

Extra Sensors

In addition to the standard PowerSync energy sensors, ESY Sunhome users get:

Sensor Description
Inverter Temperature Inverter heat sink temperature (°C)
Battery Status Operating state text from firmware (e.g. "Charging", "Discharging")
Battery Health (SOH) State of health percentage reported by the BMS

Reconfiguring the ESY Entry

If you re-add or replace your ESY Sunhome integration entry, go to Settings > Devices & Services > PowerSync > Configure > ESY Sunhome connection to re-bind PowerSync to the new entry.

Known Limitations

  • No W-level power setpoints — charge/discharge rate is firmware-managed.
  • No backup reserve control (set_backup_reserve is a logged no-op).
  • No DC solar curtailment support.
  • Requires the ESY Sunhome integration to be installed, running, and connected to the ESY cloud. If the ESY cloud goes offline, entities become unavailable and PowerSync falls back to last-known data.

Status

ESY Sunhome support was introduced in PowerSync 2.12.112. Report issues on Discord.


SAJ H2 / HS2

Full support for SAJ H2 and HS2 hybrid inverter-battery systems. PowerSync connects via the SAJ H2 Modbus integration as a companion — that integration handles the Modbus connection, and PowerSync bridges through it for real-time telemetry and battery control.

Prerequisites

  • The SAJ H2 Modbus integration installed in Home Assistant via HACS (search "SAJ H2"). This integration creates the HA entities PowerSync reads and writes.
  • Your SAJ H2/HS2 inverter paired and online in the SAJ H2 Modbus integration before adding PowerSync.

No extra credentials needed in PowerSync. All Modbus authentication is handled by the SAJ H2 Modbus integration. PowerSync reads and controls its entities.

Supported Models

SAJ H2 and HS2 series hybrid inverters are supported. Both single-phase and three-phase variants work, subject to the entities the upstream SAJ H2 Modbus integration provides.

Features

  • Smart Optimization — PowerSync's built-in LP optimizer runs full charge/discharge scheduling based on price forecasts, solar generation, and home load.
  • Force Charge / Discharge — Charges from grid or discharges to grid on demand. Power level is set proportionally using the inverter's own rated maximum.
  • AEMO Spike Export — Automatically forces discharge during AEMO price spikes ($3000/MWh+). Supported for all Australian retailers via the generic spike manager.
  • Live Telemetry — Solar, grid, battery, and load power; battery state of charge; battery temperature; daily energy totals.

SAJ H2 Setup

  1. Install the SAJ H2 Modbus integration from HACS and complete device pairing.
  2. Add the PowerSync integration and select SAJ H2/HS2 as your battery system.
  3. PowerSync will auto-select the SAJ entry if only one exists, or show a picker if you have multiple.
  4. Enter your battery capacity (kWh) — used by the LP optimizer for scheduling accuracy. Default is 10 kWh.
  5. PowerSync validates that all required entities exist and setup completes.

Battery Capacity

Setting the correct battery capacity helps the LP optimizer make accurate scheduling decisions. Find the rated capacity in your inverter's datasheet or the SAJ app. If you're unsure, leave the default (10 kWh) — the optimizer will still work, just with a less precise model.

How Control Works

PowerSync controls the SAJ H2 in passive mode using the number and switch entities exposed by the SAJ H2 Modbus integration:

Action Entities used
Force charge passive_bat_charge_power (number) + passive_charge_control (switch on)
Force discharge passive_bat_discharge_power (number) + passive_discharge_control (switch on)
Restore normal Both passive_charge_control and passive_discharge_control switched off

Power is specified as a percentage of the inverter's rated maximum (0–1000 scale internally). PowerSync converts the requested watts proportionally using BatChargePower / BatDischargePower entities.

Known Limitations

  • No W-level power setpoints in absolute terms — power is set as a fraction of inverter-rated maximum.
  • No backup reserve control (set_backup_reserve is a no-op).
  • No DC solar curtailment support.
  • Requires the SAJ H2 Modbus integration to be installed, running, and connected to the inverter. If the Modbus connection drops, entities become unavailable and PowerSync falls back to last-known data.

Status

SAJ H2 support is available in the current release. Report issues on Discord.


Fronius Reserva

Full support for Fronius Reserva battery systems via the upstream Fronius Modbus Home Assistant integration. PowerSync does not open a second Modbus connection; it discovers the Fronius/Reserva entities created by that integration and sends commands through Home Assistant services.

Prerequisites

  • The Fronius Modbus integration installed and working in Home Assistant before adding PowerSync.
  • Your Fronius GEN24 / Reserva system paired and online in the Fronius Modbus integration.
  • Reserva storage-control entities must be present. If required entities are missing, PowerSync stops setup with the first missing entity name.

No extra credentials needed in PowerSync. Modbus communication is handled by the Fronius Modbus integration. PowerSync reads and writes its entities.

Features

  • Smart Optimization — PowerSync's built-in LP optimizer schedules charge/discharge using Fronius telemetry and the configured Reserva capacity and power limits.
  • Force Charge / Discharge — Charges from grid or discharges to grid on demand using Fronius Manual storage-control modes.
  • Idle / Hold SOC — Uses the PV charge and discharge limit mode and sets both limits to 0 W where the upstream entities are available.
  • Restore Normal — Returns Reserva storage control to Auto.
  • Backup Reserve — Writes the Reserva minimum SOC entity when exposed by the upstream integration.
  • AEMO Spike Export — Supported through the generic spike manager for Australian dynamic or VPP setups.
  • Live Telemetry — Solar, grid, battery, load, SOC, battery temperature, daily energy totals, and configured BMS charge/discharge limits.

Setup

  1. Install and configure the Fronius Modbus integration in Home Assistant.
  2. Confirm the Fronius / Reserva entities are present and updating.
  3. Add the PowerSync integration and select Fronius Reserva as your battery system.
  4. Select the Fronius Modbus config entry if you have more than one.
  5. Enter usable battery capacity, maximum grid charge power, and maximum grid discharge/export power. These values are used by force modes, the mobile app controls, and the LP optimizer.
  6. PowerSync validates the required entities and completes setup.

Entities Used

PowerSync auto-discovers common Fronius Reserva entity names from the selected Fronius Modbus config entry.

Purpose Typical Entity Suffix
Battery SOC reserva_state_of_charge_2 or reserva_state_of_charge
Battery charge power storage_charging_power or reserva_storage_charging_power
Battery discharge power storage_discharging_power or reserva_storage_discharging_power
Grid power meter_1_power, smart_meter_63a_1_meter_1_power, or smart_meter_power
Solar power pv_power_2 or pv_power
Home load load_2 or load
Battery API mode reserva_battery_api_mode select
Storage control mode reserva_storage_control_mode_2 or reserva_storage_control_mode select
Grid charge power reserva_grid_charge_power_2 or reserva_grid_charge_power number
Grid discharge power reserva_grid_discharge_power_2 or reserva_grid_discharge_power number
PV charge limit reserva_pv_charge_limit_2 or reserva_pv_charge_limit number
Discharge limit reserva_discharge_limit_2 or reserva_discharge_limit number
Minimum SOC / backup reserve reserva_soc_minimum number

How Control Works

PowerSync Action Fronius mode / entity behavior
Force charge Sets Battery API mode to Manual, storage control mode to Charge from Grid, then writes grid charge power
Force discharge Sets Battery API mode to Manual, storage control mode to Discharge to Grid, then writes grid discharge power
Idle / hold SOC Sets Battery API mode to Manual, storage control mode to PV Charge and Discharge Limit, then sets PV charge and discharge limits to 0 W
Restore normal Sets storage control mode back to Auto
Backup reserve Writes reserva_soc_minimum when available

Reconfiguring

Go to Settings > Devices & Services > PowerSync > Configure > Fronius Reserva connection to change the selected Fronius Modbus entry, battery capacity, or max charge/discharge power.

Known Limitations

  • PowerSync depends on the upstream Fronius Modbus integration's entity names and service behavior.
  • If required storage-control entities are missing or unavailable, setup or control commands will fail until the upstream integration is fixed.
  • PowerSync does not upload a tariff schedule into Fronius hardware. Tariffs are used inside PowerSync for display, automation, and Smart Optimization.
  • DC solar curtailment is not a separate Fronius Reserva battery path. Use AC-Coupled Inverter Curtailment if you need export control for a Fronius solar inverter.

Status

Fronius Reserva support is available in PowerSync 2.12.389 and newer. Report issues on Discord.


Neovolt / Bytewatt

Full support for Neovolt / Bytewatt battery systems via the upstream Neovolt Modbus Home Assistant integration. PowerSync does not open a second Modbus session; it discovers the entities created by the Neovolt integration and sends commands through Home Assistant services.

Prerequisites

  • The Neovolt Modbus integration installed and working in Home Assistant.
  • The upstream integration must expose the required telemetry sensors and dispatch controls before PowerSync setup.
  • For independent inverter/battery stacks without a parallel kit or shared BMS coordination, configure each Neovolt inverter in the upstream integration as Host. Follower/read-only entries can provide telemetry, but PowerSync cannot coordinate both stacks unless the dispatch controls exist for each stack.

Parallel kit note: If your Neovolt batteries have a proper parallel/BMS coordination kit, let the Neovolt system coordinate the batteries natively. The guidance below is for sites with separate stacks that otherwise charge/discharge against each other.

Required Entities

PowerSync auto-discovers common Neovolt entity names from the selected Neovolt config entry.

Purpose Typical Entity Suffix
Battery power combined_battery_power or battery_power
Battery SOC combined_battery_soc or battery_soc
Grid power grid_total_active_power or grid_power_total
Home load combined_house_load or total_house_load
Solar power combined_pv_power, pv_total_active_power, or pv_power_total
Dispatch mode dispatch_mode select
Dispatch power dispatch_power number
Dispatch duration dispatch_duration number
Charge target SOC dispatch_charge_target_soc or dispatch_charge_soc number
Discharge cutoff SOC dispatch_discharge_cutoff_soc or dispatch_discharge_soc number

Optional entities include battery capacity, battery SOH, default discharging cutoff SOC, and a stop-dispatch button.

Features

  • Smart Optimization — PowerSync's built-in LP optimizer runs charge/discharge scheduling using Neovolt telemetry and dispatch controls.
  • Force Charge / Discharge — Uses Neovolt dispatch mode, power, duration, and target/cutoff SOC entities. On independent multi-host stacks, force-charge commands prioritise the lower-SOC stack before charging higher-SOC stacks.
  • Restore Normal — Returns dispatch mode to Normal, or presses the stop-dispatch button if available.
  • Backup Reserve — Writes the default discharging cutoff SOC when the upstream entity exists.
  • Independent Stack Surplus Balancing — On multi-host Neovolt systems without BMS coordination, PowerSync can temporarily force-charge an idle spare stack from measured solar export headroom, while keeping lower-SOC stacks ahead in the charge priority.
  • AEMO Spike Export — Supported through the generic spike manager for Australian dynamic or VPP setups.
  • Live Telemetry — Solar, grid, battery, load, SOC, battery capacity, SOH, and BMS max charge/discharge power where available.
  • Balancer Diagnosticssensor.power_sync_neovolt_surplus_balancer shows whether the coordinator is charging, waiting, balancing the low stack, blocked by battery discharge, or disabled.
  • Auto-Sync Tariff Prices — Refreshes provider tariffs and updates PowerSync's tariff schedule sensor, dashboard, and optimizer inputs. Neovolt is Modbus-only, so PowerSync does not upload an onboard TOU schedule to the battery.

Setup

  1. Install and configure the Neovolt Modbus integration in Home Assistant.
  2. Confirm the required Neovolt entities are present and updating.
  3. Add the PowerSync integration and select Neovolt / Bytewatt as your battery system.
  4. Select the Neovolt config entry if you have more than one.
  5. Enter maximum charge power, maximum discharge power, and minimum SOC. These are used for dispatch defaults and optimizer modelling.
  6. For independent stacks without a parallel/BMS kit, leave Independent stack surplus balancing on Auto or set it to Enabled. If your batteries already have hardware BMS coordination, set it to Disabled.
  7. Set the SOC balance tolerance. The default is 5%, which means PowerSync prioritises the lower-SOC stack while another stack is more than 5% ahead.

Independent Stacks Without BMS Coordination

Some Neovolt installations have two inverter/battery stacks that cannot talk to each other through a parallel kit. In that layout, leaving both stacks in Normal can make one battery discharge while the other charges, slowly wasting energy through conversion losses.

PowerSync handles this with a coordinator rather than true PV splitting:

  • PV splitting is not possible through the Neovolt Modbus entities. PowerSync cannot tell 6 kW of DC solar to become 3 kW on each inverter.
  • Keep the non-active stack in No Battery Charge or Idle (No Dispatch) when you need to prevent the batteries fighting each other.
  • Optimizer and manual force-charge windows are SOC-aware. If one stack is 30% and another is 60%, PowerSync force-charges the lower-SOC stack at its configured maximum charge rate and parks the higher-SOC stack until the gap is inside the configured tolerance.
  • When measured grid export is high enough, PowerSync can rotate surplus into a parked stack by starting a short force-charge burst on that stack.
  • The surplus balancer follows the same SOC priority, so export headroom is only used where it will not worsen the stack imbalance.
  • The balancer only starts when there is export headroom above the safety threshold, the target stack is below its charge target, and charging that stack will not worsen the SOC imbalance.
  • If the site begins importing, export disappears, or another stack starts discharging, PowerSync stops the surplus charge and restores the target stack's previous dispatch mode and settings.
  • This prevents battery-to-battery charging while still letting otherwise-exported solar top up the spare stack.

Expected behavior while the stacks are imbalanced:

  • The lower-SOC stack shows Force Charge, with dispatch power set up to that stack's configured charge limit.
  • The higher-SOC stack shows No Battery Charge or Idle (No Dispatch).
  • sensor.power_sync_neovolt_surplus_balancer shows balancing_low_stack, with lowest_soc_index, highest_soc_index, per-stack SOC, per-stack battery power, and dispatch modes in the attributes.

This is not a replacement for a Neovolt parallel kit. It is a software workaround for independent Host-mode stacks where the hardware cannot share BMS state.

Use sensor.power_sync_neovolt_surplus_balancer to see the coordinator's current decision. Useful states include:

State Meaning
charging PowerSync is using export headroom to force-charge a parked stack
balancing_low_stack A lower-SOC stack needs priority, so PowerSync is parking or avoiding charge on the higher-SOC stack
waiting_for_export The target is eligible, but there is not enough export headroom
blocked_source_discharging Another stack is discharging, so surplus charging is blocked
stopped_importing The site began importing, so the temporary charge was stopped and restored
disabled The feature is turned off in the Neovolt connection settings

The sensor attributes include the active stack index, target stack index, per-stack SOC, per-stack battery power, per-stack grid power, dispatch modes, SOC delta, and configured tolerance.

Known Limitations

  • PowerSync depends on the upstream Neovolt integration's entity names and service behavior.
  • If required dispatch entities are missing, setup aborts with a missing-entities error.
  • If one stack's Neovolt entities are unavailable, unknown, or stale, PowerSync cannot safely command that stack. Recover the upstream Neovolt/Modbus session first, then reload PowerSync if needed.
  • Auto-Sync does not program a tariff schedule into Neovolt hardware. Battery actions are sent live through the dispatch mode, power, duration, and SOC entities.
  • DC solar curtailment is not a separate Neovolt path; use Smart Optimization or AC inverter curtailment if your site needs export control.
  • PowerSync cannot split PV generation between Neovolt inverters. Independent-stack balancing uses AC-side surplus/export measurements only.

SolarEdge Home Battery / inverter curtailment

SolarEdge support covers SolarEdge Home Battery telemetry, battery dispatch, and active-power curtailment. PowerSync reads battery/site telemetry from SolarEdge Home Assistant entities so the dashboard, sensors, usage stats, and mobile app live flow can populate. It controls force charge, force discharge, backup reserve, Hold SOC, and Smart Optimization dispatch through writable SolarEdge storage-control entities. It can also limit SolarEdge inverter output during uneconomic export periods.

Prerequisites

  • Modbus TCP enabled on the SolarEdge inverter, gateway, or Modbus leader.
  • Inverter-side active-power control enabled in SetApp or the LCD menu.
  • The inverter reachable from Home Assistant on the local network, or a SolarEdge Modbus Home Assistant integration exposing an active power limit number entity.
  • SolarEdge battery telemetry entities exposed in Home Assistant, such as battery state of energy/charge, battery power, grid power, and solar power. sensor.solaredge_b1_state_of_energy or sensor.solaredge_i1_b1_state_of_energy style entities are auto-detected when present.
  • Writable SolarEdge storage-control entities exposed in Home Assistant for battery dispatch, including storage control mode, command mode, charge/discharge power limits, and optionally command timeout, backup reserve, and grid-charge permission.

Features

  • Battery telemetry bridge - PowerSync maps SolarEdge HA entities into the standard battery_level, battery_power, solar_power, grid_power, and load_power fields used by sensors, usage stats, and the app live-flow view.
  • Battery dispatch bridge - PowerSync maps SolarEdge HA storage-control entities into force charge, force discharge, restore normal, backup reserve, Hold SOC, AEMO spike export, Saving Sessions, Smart Optimization, and mobile controls.
  • Active-power curtailment - PowerSync sets the SolarEdge active power limit to 0% during low-value or negative export periods and restores it to 100% when export recovers.
  • Load-following conversion - PowerSync uses the rated AC power setting to convert load-following requests into SolarEdge's 0-100% active power limit.
  • Entity fallback - If direct Modbus is unavailable, PowerSync can use a configured HA entity prefix to find an entity such as number.solaredge_active_power_limit.
  • Optimizer compatibility - SolarEdge uses the same force-mode services as other controllable battery systems when the required writable storage-control entities are present.

Setup

  1. Add PowerSync and select SolarEdge as the battery system when SolarEdge is the primary controlled device, or configure it later through Configure > AC inverter curtailment when it is a separate AC-coupled inverter.
  2. Enter the inverter IP address, Modbus port, slave ID, rated AC power in watts, and optional HA entity prefix.
  3. Enable SolarEdge export curtailment if PowerSync should automatically limit export during uneconomic periods.
  4. Confirm that sensor.power_sync_battery_level and the PowerSync live-flow dashboard populate. If curtailment is enabled, confirm that sensor.power_sync_inverter_status reports SolarEdge status after setup.

Known Limitations

  • Some firmware versions or grid profiles reject third-party active-power writes. If setup fails, check SolarEdge Modbus TCP, power-control permissions, firmware support, and installer/grid profile settings.
  • PowerSync does not upload tariff schedules to SolarEdge hardware. Dispatch is live control through Home Assistant storage-control entities.
  • If the storage-control entities are missing, telemetry and curtailment can still work, but force charge/discharge, backup reserve, Hold SOC, and optimizer dispatch fail with a missing-entities error.
  • If both direct Modbus and entity fallback are unavailable, setup stops with a SolarEdge connection error.

Sungrow with Globird VPP

Globird's VPP program pays premium rates during AEMO price spikes ($3000/MWh or above). PowerSync can automatically participate:

  1. Enable AEMO Spike Auto-Discharge in the mobile app Controls screen
  2. Select your NEM region (NSW1, VIC1, QLD1, SA1, TAS1)
  3. When AEMO prices hit $3000/MWh, PowerSync automatically forces battery discharge
  4. When the spike ends, battery returns to normal operation
  5. Push notifications are sent for both spike start and end

Tip: If you also have a separate AC-coupled solar inverter, configure it in the AC Inverter Curtailment section. PowerSync will warn you if your Sungrow battery and AC inverter are configured with conflicting settings.

Clone this wiki locally