# Huawei SmartLogger Hybrid

> L’intégration du Huawei SmartLogger Hybrid dans notre EMS

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

Notre EMS prend en charge les installations de batteries Huawei situées derrière une passerelle **Huawei SmartLogger**. Le SmartLogger fait office de **passerelle centrale** : il agrège les onduleurs, les batteries et un compteur de raccordement derrière un seul point d’accès Modbus TCP. Comme tout passe par le SmartLogger, notre EMS présente l’installation comme plusieurs appareils logiques (batterie, PV, compteur de raccordement) tous servis par la même intégration.

L’intégration prend en charge **deux topologies physiques**, choisies par le modèle que vous sélectionnez à l’ajout de l’appareil :

| Modèle | Topologie | Disposition |
| --- | --- | --- |
| **SmartLogger Hybrid (résidentiel)** | `per-inverter` | Chaque onduleur hybride SUN2000 porte sa propre batterie LUNA2000 (couplée en DC). |
| **SmartLogger Commercial (ESS couplé en AC)** | `plant-level` | Des onduleurs PV et des systèmes de conversion ESS distincts, que le SmartLogger agrège au niveau du champ. |

Le modèle détermine automatiquement la topologie de batterie du contrôleur, vous ne la configurez pas séparément.

> **Remarque**
>
> Cette intégration exige un **contrôleur en version 0.0.277 ou ultérieure**. Pour un SmartLogger 3000 Huawei autonome ou des onduleurs SUN2000 sans stockage, voir la [documentation des onduleurs PV Huawei](https://voltmasters.io/fr/docs/device-integrations/pv-inverters/huawei/huawei-smartlogger-3000/).

### Appareils pris en charge

| Composant | Rôle |
| --- | --- |
| Huawei SmartLogger | Passerelle (esclave 0), point d’entrée Modbus TCP |
| Onduleurs SUN2000 | Onduleurs PV, chacun avec son propre ID esclave Modbus |
| Stockage par batteries | LUNA2000 (résidentiel) ou unités ESS distinctes (commercial) |
| Compteur de raccordement | Le compteur de raccordement relié au SmartLogger (ID esclave propre) |

L’intégration communique en **Modbus TCP**. Le SmartLogger lui-même est adressé comme esclave `0` ; chaque onduleur SUN2000 et le compteur de raccordement ont leurs propres ID esclaves derrière la passerelle.

## Comment l’intégration fonctionne

Le SmartLogger est modélisé dans notre EMS comme un appareil **PCS** parent avec trois appareils enfants (BMS, PV, compteur de raccordement), tous pilotés depuis la même connexion Modbus TCP. Les appareils enfants sont créés automatiquement à partir du parent : il n’y a pas de câblage distinct ni d’appareil Modbus supplémentaire à ajouter.

-   **PCS (onduleur de batterie)** : l’appareil parent. Il reçoit les consignes de charge et de décharge.
-   **BMS** : il rapporte l’état agrégé de la batterie : l’état de charge (SOC), la puissance et l’énergie chargeable et déchargeable.
-   **PV** : il rapporte la production et le rendement PV combinés.
-   **Compteur de raccordement** : présenté comme compteur d’énergie du raccordement.

### Ajouter l’appareil (découverte automatique)

Quand vous ajoutez un appareil SmartLogger, vous choisissez le modèle et encodez les données de connexion (IP et port). Le contrôleur **scanne alors la passerelle** et renvoie les résultats pour que l’assistant puisse préremplir :

-   Les **ID esclaves des onduleurs** et l’**ID esclave du compteur de raccordement** (inutile de les chercher à la main).
-   La **plaque signalétique** : la puissance nominale, la capacité de la batterie, la puissance PV nominale et les limites de SOC minimal et maximal.

Les valeurs découvertes préremplissent les champs du formulaire et restent modifiables avant l’enregistrement.

### Approche de pilotage

#### Résidentiel (`per-inverter`), dispatch forcé LUNA2000

La batterie se trouve derrière chaque onduleur SUN2000. Le pilotage de la batterie utilise l’**interface de charge et de décharge forcées** du LUNA2000, écrite à chaque cycle de régulation (≈1 s) vers chaque esclave onduleur :

1.  La puissance cible de charge ou de décharge, répartie également entre tous les onduleurs configurés.
2.  La période forcée : une fenêtre de 5 minutes qui joue le rôle d’**homme mort** : si l’EMS cesse de rafraîchir la commande, le LUNA2000 revient automatiquement à son mode de fonctionnement. Un signal de maintien est écrit toutes les 60 secondes.
3.  Le mode de réglage : pilotage forcé sur base temporelle.
4.  Le registre de commande : `FORCIBLE_CHARGE`, `FORCIBLE_DISCHARGE` ou `FORCIBLE_STOP`.

En dehors d’un dispatch actif, le LUNA2000 est laissé en mode de fonctionnement **MAXIMISE\_SELF\_CONSUMPTION** (mode 2). L’écrêtage PV s’applique au **niveau du champ SmartLogger** via le registre `40420` (bridé au plafond lu dans `40697`), qui soustrait la consigne batterie pour que la part PV atterrisse sur la limite demandée.

#### Commercial (`plant-level`), consigne ESS globale

Les batteries sont des unités ESS distinctes que le SmartLogger n’agrège qu’au niveau du champ. L’EMS pilote donc toute la batterie **globalement** via un seul registre, `40381` (ajustement de puissance active ESS, 0,1 kW, i32, esclave 0). Le signe de puissance au niveau du champ chez Huawei est l’opposé de la convention EMS (Huawei : négatif = charge) : la consigne est donc inversée en signe et bridée à la puissance nominale de la batterie avant l’écriture. Cela exige que le **Northbound Scheduling** soit activé sur le SmartLogger.

Dans cette topologie, le PV est lu mais pas écrêté par l’adaptateur, et il n’y a ni dispatch forcé par onduleur, ni mode autoconsommation LUNA.

#### Mode autoconsommation

Dans la topologie résidentielle, quand **Autoriser le mode autoconsommation** vaut `automatic` ou `yes` et qu’aucun écrêtage PV n’est actif, l’EMS confie l’équilibrage local à la logique d’autoconsommation propre au LUNA2000. Ce n’est pas disponible dans la topologie commerciale (elle envoie toujours la consigne explicite).

### Ce qui est relu

| Grandeur | Résidentiel (`per-inverter`) | Commercial (`plant-level`) |
| --- | --- | --- |
| **Puissance PV, réactif, rendement** | Sommés par onduleur SUN2000 | Agrégat du champ SmartLogger (esclave 0) |
| **Puissance batterie et SOC** | Agrégés par unité LUNA2000 | Agrégat du champ SmartLogger (esclave 0) |
| **Chargeable et déchargeable** | Déduits du SOC × la capacité configurée | Lus dans les registres d’énergie restante réels de la passerelle |
| **Totaux d’énergie batterie** | Totaux de charge et de décharge par unité | Totaux de charge et de décharge du champ (esclave 0) |
| **Compteur de raccordement** | Tension et courant par phase, puissance active et réactive, énergie prélevée et injectée | Identique |
| **Défauts** | Registres d’alarme SUN2000 (Alarm 1 et 2) par onduleur → incidents | Identique (les alarmes par onduleur sont lues dans les deux topologies) |

La puissance batterie suit la convention EMS (**positif = charge, négatif = décharge**) ; la puissance active du compteur de raccordement suit **positif = prélèvement, négatif = injection**.

### Fiabilité du compteur de raccordement

Le SmartLogger rapporte un registre de statut de connexion du compteur. L’EMS ne publie les mesures réseau que si le statut est explicitement **connecté** (`0xB001`). Un statut déconnecté génère un incident critique `gridMeterDisconnected` et les canaux du compteur sont mis à zéro.

### Fréquence réseau

La fréquence réseau est une propriété du raccordement : elle est donc rapportée par le **compteur d’énergie du raccordement** plutôt que lue sur les onduleurs PV.

## Paramètres de configuration

Au-delà des paramètres de batterie habituels, le PCS SmartLogger expose :

| Paramètre | Description |
| --- | --- |
| **Puissance nominale (kVA)** | La puissance AC nominale du système batterie/PCS. |
| **Puissance nominale de la batterie (kW)** | La puissance nominale de charge et de décharge. Sert à brider les consignes de dispatch. |
| **Capacité de la batterie (kWh)** | La capacité totale de la batterie. |
| **Capacité PV (kWc)** | La capacité PV totale installée, sur l’ensemble des onduleurs. |
| **ID esclaves des onduleurs** | Les ID esclaves Modbus des onduleurs SUN2000 derrière le SmartLogger (découverts automatiquement). |
| **ID esclave du compteur de raccordement** | L’ID esclave Modbus du compteur de raccordement (découvert automatiquement). |
| **Autoriser le mode autoconsommation** | Résidentiel uniquement : `automatic` (par défaut), `yes` ou `no`. |

La topologie de batterie (`per-inverter` ou `plant-level`) est fixée par le modèle choisi et n’est pas un champ distinct.

## État de validation

La topologie résidentielle (`per-inverter`) est réalisée d’après l’interface Modbus du SmartLogger Huawei et la spécification des registres de pilotage du stockage LUNA2000, et validée sur matériel. La topologie commerciale (`plant-level`) est réalisée d’après les registres d’agrégat de champ et de northbound scheduling du SmartLogger ; ses relevés sont validés sur matériel et le registre de dispatch global est implémenté selon la spécification. D’autres fonctions pourront s’ajouter au fil du temps, à mesure que l’intégration évolue.
