Le micro-onduleur ultime pour se faire une batterie autonome DIY

hms

Si vous suivez l’actualité de l’autoconsommation, vous connaissez sans doute l’EcoFlow Power Stream, très populaire pour connecter une batterie directement au réseau. Cependant, il existe une alternative plus performante, moins chère et fonctionnant 100% en local : le micro-onduleur Hoymiles HMS-1000-2T.

Dans cet article, nous allons voir comment détourner ce micro-onduleur pour le faire fonctionner sur batterie, le piloter via Home Assistant et pourquoi il surpasse le Power Stream sur bien des points.


⚡ Le matériel : Hoymiles HMS-1000-2T et mise en garde

Le cœur du système est le Hoymiles HMS-1000-2T. Contrairement aux onduleurs classiques, celui-ci accepte une large plage de tension, ce qui le rend théoriquement compatible avec des batteries 48V DIY.

⚠️ Attention à la polarité : Lors de mes premiers tests, j’ai rencontré un problème critique. Les connecteurs standards utilisés sur cet appareil peuvent être trompeurs. Sur mon modèle, les indications « + » et « – » moulées sur la prise ne correspondaient pas à la réalité du câblage interne, ce qui a conduit à la destruction d’une voie MPPT. Vérifiez impérativement la polarité au multimètre avant tout branchement.

Malgré cette mésaventure et quelques chocs physiques (chute de panneau), le matériel s’avère robuste et continue de fonctionner sur la voie restante.


🛠️ La solution technique et le montage

L’objectif est de piloter l’injection de l’onduleur (qui n’est pas connecté à des panneaux, mais à une batterie) en fonction des besoins de la maison. Pour cela, nous nous basons sur les travaux open-source de « Seb » (un vidéaste spécialisé), qui a décodé le protocole de communication.

Pour réaliser l’interface de communication, vous aurez besoin de deux composants :

  1. Un module ESP32 (microcontrôleur).

  2. Un module radio CMT2300A (pour communiquer avec le Hoymiles).

Le câblage de l’interface : Voici comment relier le module CMT2300A à l’ESP32 :

  • Alimentation : 3.3V sur 3.3V et GND sur GND.

  • D13 vers le 4ème pin (en partant du bas de la ligne jaune).

  • D12 vers le pin suivant (D14).

  • D27 vers le dernier pin.

  • Note : Conservez les cavaliers (jumpers) présents sur le module CMT pour associer les pins nécessaires.

Pour la partie puissance (batterie vers onduleur), je recommande vivement l’intégration d’un bouton avec résistance de précharge. Cela permet d’éviter l’étincelle et le pic de courant violent au moment de la connexion des condensateurs de l’onduleur.


💻 Programmation via ESP Home

La partie logicielle repose sur ESP Home. Contrairement aux versions WiFi de chez Hoymiles, la série HMS nécessite cette passerelle radio spécifique.

  1. Voici le code

    substitutions:
    name: hms   # éviter le "_" dans le hostname (recommandé)
    esphome:
    name: ${name}
    esp32:
    board: esp32dev
    framework:
      type: arduino
    external_components:
    - source: "github://SeByDocky/myESPhome/"
      components: [hms_inverter]

    logger:
    level: DEBUG

    # ⬇️ OBLIGATOIRE car le composant HMS utilise un bouton
    button:
    api:
    ota:
    - platform: esphome
    wifi:
    ssid: WifiBAS
    password: xxxxxxxxxxxxxxxxxxxxx
    time:
    - platform: homeassistant
      id: my_time
    hms_inverter:
    id: hms_id
    pins:
      clk: GPIO13
      cs: GPIO14
      fcs: GPIO27
      sdio: GPIO12   # ⚠️ strapping pin → OK si montage stable
    inverters:
      - serial: "xxxxxxxxxxxxxx"
        # 🔘 Bouton logiciel de resynchronisation / redémarrage RF
        restart:
          name: "${name}_restart"
        # 🔌 État de connexion HMS
        reachable:
          name: "${name}_reachable"
        # ⚡ Production en cours
        producing:
          name: "${name}_producing"
        # 📉 Limite de puissance en %
        limit_percent:
          name: "${name}_percent_power_limit"
        # 📈 Limite de puissance absolue (W)
        limit_absolute:
          name: "${name}_absolute_power_limit"
        # 🔋 Canaux DC (PV)
        dc_channels:
          - power:
              name: "${name}_pv0_power"
            current:
              name: "${name}_pv0_current"
              icon: mdi:current-dc
            voltage:
              name: "${name}_pv0_voltage"
            energy:
              name: "${name}_pv0_energy_today"
              device_class: energy
              icon: mdi:counter
              unit_of_measurement: kWh
              filters:
                - multiply: 0.001
          - power:
              name: "${name}_pv1_power"
            current:
              name: "${name}_pv1_current"
              icon: mdi:current-dc
            voltage:
              name: "${name}_pv1_voltage"
            energy:
              name: "${name}_pv1_energy_today"
              device_class: energy
              icon: mdi:counter
              unit_of_measurement: kWh
              filters:
                - multiply: 0.001
          - power:
              name: "${name}_pv2_power"
            current:
              name: "${name}_pv2_current"
              icon: mdi:current-dc
            voltage:
              name: "${name}_pv2_voltage"
            energy:
              name: "${name}_pv2_energy_today"
              device_class: energy
              icon: mdi:counter
              unit_of_measurement: kWh
              filters:
                - multiply: 0.001
          - power:
              name: "${name}_pv3_power"
            current:
              name: "${name}_pv3_current"
              icon: mdi:current-dc
            voltage:
              name: "${name}_pv3_voltage"
            energy:
              name: "${name}_pv3_energy_today"
              device_class: energy
              icon: mdi:counter
              unit_of_measurement: kWh
              filters:
                - multiply: 0.001
        # ⚡ Sortie AC
        ac_channel:
          power:
            name: "${name}_ac_power"
          energy:
            name: "${name}_ac_energy_today"
            device_class: energy
            icon: mdi:counter
            unit_of_measurement: kWh
            filters:
              - multiply: 0.001
        # 🔥 Onduleur (interne)
        inverter_channel:
          power:
            name: "${name}_inverter_power"
          energy:
            name: "${name}_inverter_energy_today"
            device_class: energy
            icon: mdi:counter
            unit_of_measurement: kWh
            filters:
              - multiply: 0.001
          temperature:
            name: "${name}_inverter_temperature"

 

  1. Paramétrez votre WiFi et entrez le numéro de série de votre onduleur dans le fichier de configuration.

  2. Compilez et téléversez le firmware sur l’ESP32 via USB (utilisez ESP Home Web pour faciliter la tâche).

Une fois flashé, l’ESP32 va communiquer sans fil avec l’onduleur et remontera les informations via le réseau local.


🏠 Intégration dans Home Assistant

Une fois l’ESP32 connecté à votre réseau, il suffit de récupérer son adresse IP (via un scan réseau) et de l’ajouter dans Home Assistant via l’intégration ESP Home.

Vous aurez accès à de nombreuses entités :

  • Puissance produite instantanée.

  • Température de l’onduleur.

  • Contrôle de la puissance : C’est ici que tout se joue. Vous pouvez définir la puissance de sortie (en Watts ou en pourcentage) en temps réel.

Contrairement à une solution autonome (type PID géré par l’ESP), cette méthode délègue la logique à Home Assistant. Si votre réseau coupe, le pilotage s’arrête. C’est une contrainte, mais cela simplifie grandement la mise en place pour ceux qui sont déjà équipés en domotique.


⚖️ Comparatif : Hoymiles HMS vs EcoFlow Power Stream

Faut-il remplacer votre Power Stream ? Après test, le Hoymiles HMS l’emporte sur plusieurs critères techniques :

  • Pas de Cloud : Tout est géré en local. Aucune dépendance aux serveurs chinois ou à une connexion internet externe.

  • Tension admissible : Le HMS accepte des tensions plus élevées (au-delà des 55V du Power Stream). C’est crucial pour charger/équilibrer correctement une batterie LFP 16S à 100%.

  • Réactivité et Durabilité : La modification de la puissance de sortie se fait en RAM (mémoire volatile). On peut ajuster la consigne toutes les 2 secondes sans risquer d’user la mémoire flash de l’appareil (problème connu sur le Power Stream).

  • Thermique : Le HMS chauffe nettement moins et tient ses 1000W (contre 800W max théorique pour le Power Stream, qui surchauffe souvent au-delà de 600W).

  • Prix : On trouve des HMS-1000-2T autour de 120 € sur le marché de l’occasion (Leboncoin), contre un tarif bien plus élevé pour la solution EcoFlow.


🏁 Conclusion

Le passage au Hoymiles HMS-1000-2T est une excellente opération pour qui souhaite monter une batterie domestique performante. La solution est plus robuste, plus puissante et totalement « cloud-free ».

Même si la mise en œuvre demande un peu de bricolage (ESP32, câblage), le jeu en vaut la chandelle, surtout si vous revendez votre ancien matériel EcoFlow qui cote encore très bien sur le marché de l’occasion.

Retour en haut