> For the complete documentation index, see [llms.txt](https://docs.voltmasters.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.voltmasters.io/device-integrations/battery-systems/huawei-smartlogger-hybrid.md).

# Huawei SmartLogger Hybrid

Our EMS supports the **Huawei SmartLogger Hybrid** configuration, which combines a Huawei SmartLogger gateway with **LUNA2000 battery storage** and **SUN2000 inverters** into a single, fully controllable energy system.

The SmartLogger acts as a **central gateway**: it aggregates all SUN2000 inverters and LUNA2000 battery units behind one Modbus TCP endpoint and includes a built-in grid meter. 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.

{% hint style="info" %}
This integration requires **controller version 0.0.277 or later**. For a standalone Huawei SmartLogger 3000 or SUN2000 inverters without LUNA2000 battery storage, see the [Huawei PV inverter documentation](/device-integrations/pv-inverters/huawei/huawei-smartlogger-3000.md).
{% endhint %}

### Supported devices

| Component                  | Role                                              |
| -------------------------- | ------------------------------------------------- |
| Huawei SmartLogger         | Gateway (slave 0) — Modbus TCP entry point        |
| Huawei LUNA2000            | Battery storage, one or more units                |
| Huawei SUN2000             | PV inverters, each with their own Modbus slave ID |
| SmartLogger built-in meter | Grid energy meter (telemeasuring block)           |

The integration communicates over **Modbus TCP**. The SmartLogger itself is addressed as slave `0`; each SUN2000 inverter behind it has its own slave ID, configured individually in the EMS.

## How the integration works

The SmartLogger Hybrid is modelled in our EMS as one parent device with three child devices, all driven from the same Modbus TCP connection:

* **PCS (battery inverter)** — the parent device. Receives the charge/discharge setpoints and manages PV curtailment at the SmartLogger array level.
* **BMS** — reports the aggregated LUNA2000 battery state: state of charge (SOC), bus voltage, current and temperature. Values are aggregated across all LUNA2000 units associated with the inverter slaves.
* **PV** — reports the combined SUN2000 PV production and yield totals, aggregated across all configured inverter slaves.
* **Grid meter** — the SmartLogger's built-in telemeasuring block, exposed as a grid energy meter.

Battery capacity and rated power are configured on the PCS parent device. The child devices are created automatically from the parent — there is no separate wiring or extra Modbus device to add.

### Control approach

#### Battery dispatch (LUNA2000)

Battery control uses the LUNA2000 **forcible charge/discharge interface**. Each control cycle (≈1 s) the EMS writes:

1. Target charge or discharge power (one register per LUNA2000, on each SUN2000 slave)
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 configured working mode. A keep-alive is written every 60 seconds to keep the period active.
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), so it handles on-device self-consumption when the EMS is not issuing a setpoint.

#### PV curtailment (SmartLogger)

PV curtailment is applied at the **SmartLogger array level** via register `40420` (active-power adjustment, 0.1 kW units, i32, slave 0). The SmartLogger distributes the cap across all connected inverters automatically. Before any curtailment is written, the EMS reads register `40697` (maximum active power adjustment value) to determine the valid ceiling — writes above this ceiling are silently ignored by the SmartLogger, so the ceiling is always used as the clamp maximum and as the "no curtailment" value.

#### Self-consumption mode

When **Allow self-consumption mode** is set to `automatic` or `yes` and no PV curtailment is active, the EMS can hand local balancing to the LUNA2000's own self-consumption logic.

### What is read back

* **Battery (per LUNA2000 unit, aggregated):** active power, SOC, bus voltage, bus current, temperature. Chargeable and dischargeable capacity are derived from SOC and the configured battery capacity.
* **PV (per SUN2000 inverter, aggregated):** AC active power, reactive power, grid frequency, cumulative yield.
* **Grid meter:** per-phase voltage and current (L1/L2/L3), active power, reactive power, cumulative import and export energy.
* **Faults:** SUN2000 alarm registers (Alarm 1 and Alarm 2) are read per inverter and surfaced as incidents.

### 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 (`0xB000`) raises a critical `gridMeterDisconnected` incident and the meter channels are zeroed.

## Configuration parameters

Beyond the standard battery parameters, the SmartLogger Hybrid PCS exposes the following fields:

| Parameter                       | Description                                                                                             |
| ------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Rated power (kW)**            | Nominal AC power of the battery system.                                                                 |
| **Battery rated power (kW)**    | Rated charge/discharge power of the LUNA2000 units. Used to clamp dispatch setpoints.                   |
| **Battery capacity (kWh)**      | Total battery capacity. Used to derive chargeable and dischargeable capacity from SOC.                  |
| **PV capacity (kW)**            | Total installed PV capacity across all SUN2000 inverters.                                               |
| **Inverter slave IDs**          | Modbus slave IDs of the individual SUN2000 inverters behind the SmartLogger.                            |
| **Grid meter slave ID**         | Modbus slave ID of the SmartLogger's built-in grid meter.                                               |
| **Allow self-consumption mode** | Controls whether LUNA2000 self-consumption balancing is allowed: `automatic` (default), `yes`, or `no`. |

## Validation status

The integration is implemented against the Huawei SmartLogger Modbus interface and the LUNA2000 storage-control register specification, validated on hardware. Additional functionality may be added over time as integration capabilities evolve.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.voltmasters.io/device-integrations/battery-systems/huawei-smartlogger-hybrid.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
