# Huawei SmartLogger Hybrid

> De integratie van de Huawei SmartLogger Hybrid in ons EMS

Source: https://voltmasters.io/nl/docs/device-integrations/battery-systems/huawei-smartlogger-hybrid/

Ons EMS ondersteunt Huawei-batterijinstallaties achter een **Huawei SmartLogger**\-gateway. Die SmartLogger doet dienst als **centrale gateway**: hij bundelt de omvormers, de batterijen en een netmeter achter één Modbus TCP-endpoint. Omdat alles via de SmartLogger loopt, toont ons EMS de installatie als een aantal logische toestellen (batterij, PV, netmeter) die allemaal door dezelfde integratie bediend worden.

De integratie ondersteunt **twee fysieke opstellingen**, bepaald door het model dat je bij het toevoegen kiest:

| Model | Opstelling | Indeling |
| --- | --- | --- |
| **SmartLogger Hybrid (residential)** | `per-inverter` | Elke hybride SUN2000-omvormer draagt zijn eigen LUNA2000-batterij, DC-gekoppeld. |
| **SmartLogger Commercial (AC-coupled ESS)** | `plant-level` | Aparte PV-omvormers en ESS-power conversion systems die de SmartLogger op arrayniveau bundelt. |

Het model bepaalt de batterijopstelling van de controller automatisch, je stelt ze niet apart in.

> **Opmerking**
>
> Deze integratie vraagt **controllerversie 0.0.277 of hoger**. Voor een losstaande Huawei SmartLogger 3000 of SUN2000-omvormers zonder batterijopslag, zie de [documentatie over de Huawei PV-omvormers](https://voltmasters.io/nl/docs/device-integrations/pv-inverters/huawei/huawei-smartlogger-3000/).

### Ondersteunde toestellen

| Onderdeel | Rol |
| --- | --- |
| Huawei SmartLogger | Gateway (slave 0), het toegangspunt over Modbus TCP |
| SUN2000-omvormers | PV-omvormers, elk met een eigen Modbus slave-ID |
| Batterijopslag | LUNA2000 (residentieel) of aparte ESS-toestellen (commercieel) |
| Netmeter | De netmeter die aan de SmartLogger hangt, met een eigen slave-ID |

De integratie praat over **Modbus TCP**. De SmartLogger zelf wordt aangesproken als slave `0`; elke SUN2000-omvormer en de netmeter hebben achter de gateway hun eigen slave-ID.

## Hoe de integratie werkt

De SmartLogger verschijnt in ons EMS als één bovenliggend **PCS**\-toestel met drie onderliggende toestellen (BMS, PV, netmeter), allemaal vanuit dezelfde Modbus TCP-verbinding aangestuurd. Die onderliggende toestellen worden automatisch vanuit het bovenliggende aangemaakt; er is geen aparte bekabeling en geen bijkomend Modbus-toestel nodig.

-   **PCS (batterijomvormer)**: het bovenliggende toestel. Het krijgt de laad- en ontlaadsetpoints.
-   **BMS**: geeft de samengetelde batterijtoestand door: de laadtoestand (SoC), het vermogen en de laadbare en ontlaadbare energie.
-   **PV**: geeft de samengetelde PV-productie en opbrengst door.
-   **Netmeter**: aangeboden als energiemeter op het net.

### Het toestel toevoegen (automatisch ontdekken)

Voeg je een SmartLogger toe, dan kies je het model en vul je de verbindingsgegevens in (IP en poort). De controller **doorloopt daarna de gateway** en meldt terug, zodat de wizard alvast kan invullen:

-   De **slave-ID's van de omvormers** en het **slave-ID van de netmeter**, zodat je die niet met de hand hoeft op te zoeken.
-   De **kenplaatgegevens**: het nominaal vermogen, de batterijcapaciteit, het nominaal PV-vermogen en de grenzen voor de minimale en maximale SoC.

De gevonden waarden vullen de velden van het formulier alvast in en zijn voor het opslaan nog aan te passen.

### Aanpak van de aansturing

#### Residentieel (`per-inverter`), geforceerde aansturing van de LUNA2000

De batterij hangt achter elke SUN2000-omvormer. De aansturing verloopt via de **interface voor geforceerd laden en ontladen** van de LUNA2000, die elke regelcyclus (ongeveer 1 s) naar elke omvormerslave weggeschreven wordt:

1.  Het gevraagde laad- of ontlaadvermogen, gelijk verdeeld over alle ingestelde omvormers.
2.  De geforceerde periode: een venster van 5 minuten dat als **dodemansknop** werkt. Ververst het EMS het commando niet meer, dan gaat de LUNA2000 vanzelf terug naar haar werkmodus. Om de 60 seconden gaat er een keep-alive uit.
3.  De instelmodus: geforceerde aansturing op tijdsbasis.
4.  Het commandoregister: `FORCIBLE_CHARGE`, `FORCIBLE_DISCHARGE` of `FORCIBLE_STOP`.

Buiten een actieve aansturing blijft de LUNA2000 in de werkmodus **MAXIMISE\_SELF\_CONSUMPTION** (modus 2). De PV wordt op **arrayniveau van de SmartLogger** afgeregeld via register `40420`, begrensd door het plafond dat uit `40697` gelezen wordt. Daar gaat het batterijsetpoint van af, zodat het PV-deel op de gevraagde grens uitkomt.

#### Commercieel (`plant-level`), één globaal ESS-setpoint

De batterijen zijn aparte ESS-toestellen die de SmartLogger enkel op arrayniveau bundelt. Het EMS stuurt de batterij daarom **globaal** aan via één register, `40381` (aanpassing van het actief ESS-vermogen, 0,1 kW, i32, slave 0). Het teken dat Huawei op plantniveau hanteert, is het omgekeerde van dat van het EMS: bij Huawei is negatief laden. Het setpoint krijgt dus het omgekeerde teken en wordt op het batterijvermogen begrensd voor het weggeschreven wordt. Dat vraagt dat **Northbound Scheduling** op de SmartLogger aanstaat.

In deze opstelling leest de adapter de PV wel uit maar regelt hij ze niet af, en is er geen geforceerde aansturing per omvormer en geen zelfvoorzieningsmodus van de LUNA.

#### Zelfvoorzieningsmodus

In de residentiële opstelling geeft het EMS de lokale balancering aan de eigen zelfvoorzieningslogica van de LUNA2000 wanneer **Zelfvoorzieningsmodus toelaten** op `automatic` of `yes` staat en er geen PV afgeregeld wordt. In de commerciële opstelling bestaat dat niet: die stuurt altijd het uitdrukkelijke setpoint.

### Wat er teruggelezen wordt

| Grootheid | Residentieel (`per-inverter`) | Commercieel (`plant-level`) |
| --- | --- | --- |
| **PV-vermogen, reactief vermogen en opbrengst** | Opgeteld per SUN2000-omvormer | Het arraytotaal van de SmartLogger (slave 0) |
| **Batterijvermogen en SoC** | Samengeteld per LUNA2000 | Het arraytotaal van de SmartLogger (slave 0) |
| **Laadbare en ontlaadbare energie** | Afgeleid uit de SoC maal de ingestelde capaciteit | Gelezen uit de echte registers voor resterende energie van de gateway |
| **Energietotalen van de batterij** | De laad- en ontlaadtotalen per toestel | De laad- en ontlaadtotalen van het array (slave 0) |
| **Netmeter** | Spanning en stroom per fase, actief en reactief vermogen, afgenomen en geïnjecteerde energie | Idem |
| **Fouten** | De alarmregisters van de SUN2000 (Alarm 1 en 2) per omvormer, omgezet naar incidenten | Idem: de alarmen per omvormer worden in beide opstellingen uitgelezen |

Het batterijvermogen volgt de conventie van het EMS: **positief is laden, negatief is ontladen**. Het actief vermogen van de netmeter volgt **positief is afname, negatief is injectie**.

### Wanneer de netmeter te vertrouwen is

De SmartLogger heeft een register met de verbindingsstatus van de meter. Het EMS publiceert de netmetingen enkel wanneer die status uitdrukkelijk op **verbonden** staat (`0xB001`). Staat hij op niet verbonden, dan komt er een kritiek incident `gridMeterDisconnected` en gaan de meterkanalen op nul.

### Netfrequentie

De netfrequentie is een eigenschap van de netaansluiting, dus ze komt van de **net- of energiemeter** en wordt niet uit de PV-omvormers gelezen.

## Configuratieparameters

Naast de gewone batterijparameters biedt de PCS van de SmartLogger:

| Parameter | Omschrijving |
| --- | --- |
| **Nominaal vermogen (kVA)** | Het nominale AC-vermogen van het batterij- en PCS-systeem. |
| **Nominaal batterijvermogen (kW)** | Het nominale laad- en ontlaadvermogen. Het begrenst de setpoints die uitgestuurd worden. |
| **Batterijcapaciteit (kWh)** | De totale capaciteit van de batterij. |
| **PV-vermogen (kWp)** | Het totale geïnstalleerde PV-vermogen over alle omvormers heen. |
| **Slave-ID's van de omvormers** | De Modbus slave-ID's van de SUN2000-omvormers achter de SmartLogger, automatisch gevonden. |
| **Slave-ID van de netmeter** | Het Modbus slave-ID van de netmeter, automatisch gevonden. |
| **Zelfvoorzieningsmodus toelaten** | Enkel residentieel: `automatic` (standaard), `yes` of `no`. |

De batterijopstelling (`per-inverter` tegenover `plant-level`) volgt uit het gekozen model en is geen apart veld.

## Validation status

De residentiële opstelling (`per-inverter`) is gebouwd tegen de Modbus-interface van de Huawei SmartLogger en de registerspecificatie voor de opslagaansturing van de LUNA2000, en op hardware gevalideerd. De commerciële opstelling (`plant-level`) is gebouwd tegen de arraytotalen en de northbound-schedulingregisters van de SmartLogger; de uitgelezen waarden zijn op hardware gevalideerd en het globale aansturingsregister is volgens de specificatie gebouwd. Er kan later functionaliteit bijkomen naarmate de integratie uitbreidt.
