For the complete documentation index, see llms.txt. This page is also available as Markdown.

Huawei SmartLogger Hybrid

Huawei SmartLogger Hybrid integration within our EMS

Our EMS supports Huawei battery installations behind a Huawei SmartLogger gateway. The SmartLogger acts as a central gateway: it aggregates the inverters, batteries and a grid meter behind one Modbus TCP endpoint. Because everything is reached through the SmartLogger, our EMS exposes the installation as several logical devices (battery, PV, grid meter) that are all served by the same integration.

The integration supports two physical topologies, selected by the model you pick when adding the device:

Model
Topology
Layout

SmartLogger Hybrid (residential)

per-inverter

Each SUN2000 hybrid inverter hosts its own LUNA2000 battery (DC-coupled).

SmartLogger Commercial (AC-coupled ESS)

plant-level

Separate PV inverters and ESS power-conversion systems that the SmartLogger aggregates at array level.

The model determines the controller battery topology automatically — you do not configure it separately.

This integration requires controller version 0.0.277 or later. For a standalone Huawei SmartLogger 3000 or SUN2000 inverters without battery storage, see the Huawei PV inverter documentation.

Supported devices

Component
Role

Huawei SmartLogger

Gateway (slave 0) — Modbus TCP entry point

SUN2000 inverters

PV inverters, each with their own Modbus slave ID

Battery storage

LUNA2000 (residential) or separate ESS units (commercial)

Grid meter

The SmartLogger's connected grid meter (own slave ID)

The integration communicates over Modbus TCP. The SmartLogger itself is addressed as slave 0; each SUN2000 inverter and the grid meter have their own slave IDs behind the gateway.

How the integration works

The SmartLogger is modelled in our EMS as one parent PCS device with three child devices (BMS, PV, grid meter), all driven from the same Modbus TCP connection. The child devices are created automatically from the parent — there is no separate wiring or extra Modbus device to add.

  • PCS (battery inverter) — the parent device. Receives the charge/discharge setpoints.

  • BMS — reports the aggregated battery state: state of charge (SOC), power, and chargeable/dischargeable energy.

  • PV — reports the combined PV production and yield.

  • Grid meter — exposed as a grid energy meter.

Adding the device (auto-discovery)

When you add a SmartLogger device, you select the model and enter the connection details (IP/port). The controller then scans the gateway and reports back so the wizard can pre-fill:

  • The inverter slave IDs and the grid-meter slave ID (no need to look these up by hand).

  • The nameplate: rated power, battery capacity, PV rated power, and the min/max SOC limits.

The discovered values pre-fill the form fields and can still be edited before saving.

Control approach

Residential (per-inverter) — LUNA2000 forcible dispatch

The battery sits behind each SUN2000 inverter. Battery control uses the LUNA2000 forcible charge/discharge interface, written each control cycle (≈1 s) to every inverter slave:

  1. Target charge or discharge power, split evenly across all configured inverters.

  2. Forcible period: a 5-minute window that acts as a dead-man switch — if the EMS stops refreshing the command, the LUNA2000 automatically reverts to its working mode. A keep-alive is written every 60 seconds.

  3. Setting mode: time-based forcible control.

  4. Command register: FORCIBLE_CHARGE, FORCIBLE_DISCHARGE or FORCIBLE_STOP.

Outside active dispatch the LUNA2000 is left in MAXIMISE_SELF_CONSUMPTION working mode (mode 2). PV curtailment is applied at the SmartLogger array level via register 40420 (clamped to the ceiling read from 40697), which subtracts the battery setpoint so the PV portion lands on the requested limit.

Commercial (plant-level) — global ESS setpoint

The batteries are separate ESS units that the SmartLogger only aggregates at array level. The EMS therefore steers the whole battery globally through a single register, 40381 (active ESS power adjustment, 0.1 kW, i32, slave 0). Huawei's plant-level power sign is the opposite of the EMS convention (Huawei: negative = charge), so the setpoint is sign-inverted and clamped to the battery rating before writing. This requires Northbound Scheduling to be enabled on the SmartLogger.

In this topology PV is read but not curtailed by the adapter, and there is no per-inverter forcible dispatch or LUNA self-consumption mode.

Self-consumption mode

In the residential topology, when Allow self-consumption mode is automatic or yes and no PV curtailment is active, the EMS hands local balancing to the LUNA2000's own self-consumption logic. This is not available in the commercial topology (it always dispatches the explicit setpoint).

What is read back

Quantity

Residential (per-inverter)

Commercial (plant-level)

PV power / reactive / yield

Summed per SUN2000 inverter

SmartLogger array aggregate (slave 0)

Battery power / SOC

Aggregated per LUNA2000 unit

SmartLogger array aggregate (slave 0)

Chargeable / dischargeable

Derived from SOC × configured capacity

Read from the gateway's real remaining-energy registers

Battery energy totals

Per-unit charge/discharge totals

Array charge/discharge totals (slave 0)

Grid meter

Per-phase voltage/current, active/reactive power, import/export energy

Same

Faults

SUN2000 alarm registers (Alarm 1 & 2) per inverter → incidents

Same (per-inverter alarms are read in both topologies)

Battery power follows the EMS convention (positive = charge, negative = discharge); grid-meter active power follows positive = import, negative = export.

Grid meter trust

The SmartLogger reports a meter connection status register. The EMS only publishes grid measurements when the status is explicitly connected (0xB001). A disconnected status raises a critical gridMeterDisconnected incident and the meter channels are zeroed.

Grid frequency

Grid frequency is a property of the grid connection, so it is reported by the grid/energy meter rather than read from the PV inverters.

Configuration parameters

Beyond the standard battery parameters, the SmartLogger PCS exposes:

Parameter
Description

Rated power (kVA)

Nominal AC power of the battery/PCS system.

Battery rated power (kW)

Rated charge/discharge power. Used to clamp dispatch setpoints.

Battery capacity (kWh)

Total battery capacity.

PV capacity (kWp)

Total installed PV capacity across all inverters.

Inverter slave IDs

Modbus slave IDs of the SUN2000 inverters behind the SmartLogger (auto-discovered).

Grid meter slave ID

Modbus slave ID of the grid meter (auto-discovered).

Allow self-consumption mode

Residential only: automatic (default), yes, or no.

The battery topology (per-inverter vs plant-level) is set by the chosen model and is not a separate field.

Validation status

The residential (per-inverter) topology is implemented against the Huawei SmartLogger Modbus interface and the LUNA2000 storage-control register specification and validated on hardware. The commercial (plant-level) topology is implemented against the SmartLogger array-aggregate and northbound-scheduling registers; its readouts are validated on hardware and the global dispatch register is implemented per specification. Additional functionality may be added over time as integration capabilities evolve.

Last updated