TutorielHome AssistantÉnergie solaire

Comment automatiser le routage solaire avec Home Assistant en 2025

Blueprints YAML, template sensors, automatisations batterie et borne VE — un guide technique complet pour piloter intelligemment chaque watt produit par vos panneaux solaires, sans matériel propriétaire.

⏱ 10 min de lecture📅 Mis à jour mai 2025⚡ Compatible HA 2024.1+🔧 Code YAML inclus

L'automatisation solaire avec Home Assistantest aujourd'hui l'approche la plus flexible et la moins coûteuse pour maximiser votre autoconsommation. Contrairement aux routeurs solaires dédiés (Shelly EM en mode routeur, ioGo, MyEnergi Eddi), Home Assistant s'intègre avec l'ensemble de votre écosystème — onduleur, batterie, borne VE, compteur — et permet une logique de pilotage multi-équipements finement paramétrée.

Ce guide vous montre concrètement comment mettre en place le routage solaire avec Home Assistant : du template sensor calculant votre surplus instantané aux automatisations YAML contrôlant votre batterie Zendure et votre borne Easee — avec les extraits de code prêts à copier.

Ce que vous apprendrez :
  • Comment calculer le surplus solaire en temps réel dans HA
  • Automatiser la charge batterie sur l'énergie solaire disponible
  • Piloter dynamiquement une borne VE selon le surplus
  • Intégrer les tarifs HP/HC pour la recharge réseau optimisée
  • Structurer vos automatisations en packages réutilisables
Fondamentaux

Qu'est-ce que le routage solaire — et pourquoi c'est rentable ?

Le routage solaireconsiste à diriger en priorité l'énergie produite par vos panneaux vers vos équipements consommateurs, plutôt que de l'injecter sur le réseau. L'enjeu est purement économique : en France, le rachat du surplus est rémunéré entre 0,06 et 0,13 €/kWhselon votre contrat, tandis qu'un kilowattheure autoconsommé vous évite d'en acheter un à 0,20–0,25 €/kWh(davantage en heures pleines Tempo). Le ratio est de 2 à 4× en faveur de l'autoconsommation.

Un système de routage solaire surveille en continu trois grandeurs : la puissance PV instantanée, la consommation du foyer, et l'état de charge de la batterie. À partir de ces valeurs, il décide où orienter l'énergie disponible selon une hiérarchie de priorités :

1

Alimentation de la maison

2

Charge de la batterie

3

Recharge borne VE

4

Injection réseau (ultime recours)

Home Assistant est idéalement positionné pour orchestrer cette logique : il agrège les données de tous vos équipements via des intégrations locales (Modbus, API REST, MQTT) et exécute vos automatisations YAML sans dépendance au cloud. Le résultat : un routage solaire entièrement local, résilient et personnalisable.

Prérequis

Intégrations nécessaires dans Home Assistant

Avant d'écrire la moindre automatisation, vérifiez que chaque équipement expose ses données dans Home Assistant. Voici les intégrations recommandées pour une installation SolaX + Zendure + Easee, qui est la configuration cible des blueprints Gridkit :

☀️

SolaX Power

Core HA

Intégration officielle Home Assistant (depuis HA Core 2023.4). Fonctionne via l'API Wi-Fi locale de l'onduleur. Expose la puissance PV, la puissance d'injection/soutirge réseau, la température et l'état de la batterie SolaX.

🔋

Zendure SolarFlow / Hyper 2000

HACS

Intégration HACS via le dépôt Zendure/Zendure-HA. Authentification par token Zendure App. Expose le SOC, la puissance de charge/décharge, les limites configurables et le mode de charge.

🚗

Easee EV Charger

HACS

Intégration HACS via nordicopen/easee_hass. Expose l'état de connexion du véhicule, le courant de charge dynamique, la puissance instantanée et le statut de session.

📊

Shelly EM / 3EM (optionnel)

Core HA / HACS

Si votre onduleur ne mesure pas précisément la consommation du foyer, un Shelly EM sur le tableau général complète les données avec la mesure de la puissance nette au point de livraison.

💡 Conseil :Privilégiez les intégrations locales (API Wi-Fi, Modbus, MQTT) plutôt que les intégrations cloud. Votre routage solaire fonctionnera même en cas de coupure internet, et la latence de réponse sera de l'ordre de la seconde plutôt que de plusieurs secondes.
Étape 1 — Code YAML

Calculer le surplus solaire avec un template sensor

Home Assistant ne propose pas de capteur « surplus solaire » natif. Il faut le créer soi-même via un template sensor qui calcule en temps réel la puissance disponible au-delà de la consommation instantanée et de la charge batterie en cours.

Ajoutez le bloc suivant dans votre configuration.yaml (ou dans un fichier inclus via packages:) :

template_sensor_surplus.yaml
# configuration.yaml (section template:)
template:
  - sensor:
      - name: "Surplus solaire"
        unique_id: gridkit_surplus_solaire
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        state: >
          {% set prod = states('sensor.solax_pv_power') | float(0) %}
          {% set conso = states('sensor.solax_house_load') | float(0) %}
          {% set bat_charge = states('sensor.zendure_charge_power') | float(0) %}
          {{ [prod - conso - bat_charge, 0] | max | round(0) }}

Ce template retranche la consommation maison et la puissance de charge batterie déjà en cours à la production PV, et borne le résultat à zéro pour éviter les valeurs négatives. Le capteur sensor.surplus_solaire sera la clé de déclenchement de toutes vos automatisations de routage.

Blueprint clé-en-main

Ne configurez pas tout manuellement — utilisez le blueprint Gridkit

Toutes les automatisations préconfigurées, les template sensors, la gestion HP/HC Tempo et le dashboard Lovelace — prêts à importer en 3 clics. Paiement unique 9,99 €.

Voir les blueprints Gridkit
Étape 2 — Automatisation batterie

Automatiser la charge batterie sur le surplus solaire

L'automatisation suivante surveille le capteur sensor.surplus_solaire et adapte la puissance de charge Zendure en temps réel. Un délai de 2 minutes avant déclenchement évite les oscillations dues aux nuages passagers.

automation_batterie_surplus.yaml
# automations.yaml
- alias: "Gridkit — Charge batterie sur surplus solaire"
  id: gridkit_charge_batterie_surplus
  description: "Lance la charge Zendure dès que le surplus dépasse 300 W"
  trigger:
    - platform: numeric_state
      entity_id: sensor.surplus_solaire
      above: 300
      for:
        minutes: 2
  condition:
    - condition: numeric_state
      entity_id: sensor.zendure_battery_soc
      below: 95
    - condition: state
      entity_id: input_boolean.mode_manuel
      state: "off"
  action:
    - service: number.set_value
      target:
        entity_id: number.zendure_charge_power
      data:
        value: >
          {{ [states('sensor.surplus_solaire') | float(0) | round(0), 1200] | min }}
    - service: select.select_option
      target:
        entity_id: select.zendure_charge_mode
      data:
        option: "Solar"

Points clés de cette automatisation :

  • Le seuil de 300 W évite de lancer la charge pour un surplus marginal (nuages, transitoires).
  • La puissance de charge est adaptée au surplus disponible, plafonnée à 1 200 W (max Zendure).
  • La condition SOC < 95 % protège la batterie d'une surcharge inutile.
  • L'input_boolean mode_manuel permet de désactiver l'automatisation temporairement depuis le dashboard.
Étape 3 — Borne VE

Piloter la recharge VE selon le surplus disponible

La recharge d'un véhicule électrique nécessite généralement au minimum 6 A sur une phase (≈ 1 380 W). L'automatisation ci-dessous n'active la borne Easee que si le surplus est suffisant ET si la batterie domestique est déjà chargée à plus de 80 %. Elle ajuste dynamiquement le courant de charge.

automation_ve_surplus.yaml
# automations.yaml
- alias: "Gridkit — Charge VE sur surplus solaire"
  id: gridkit_charge_ve_surplus
  description: "Active la borne Easee quand le surplus excède 1 500 W"
  trigger:
    - platform: numeric_state
      entity_id: sensor.surplus_solaire
      above: 1500
      for:
        minutes: 3
  condition:
    - condition: state
      entity_id: binary_sensor.easee_car_connected
      state: "on"
    - condition: numeric_state
      entity_id: sensor.zendure_battery_soc
      above: 80
  action:
    - service: easee.set_charger_dynamic_limit
      data:
        charger_id: !secret easee_charger_id
        current: >
          {% set surplus_w = states('sensor.surplus_solaire') | float(0) %}
          {{ [(surplus_w / 230) | round(0), 6] | max | min(16) }}

- alias: "Gridkit — Stop charge VE si surplus insuffisant"
  id: gridkit_stop_charge_ve
  trigger:
    - platform: numeric_state
      entity_id: sensor.surplus_solaire
      below: 600
      for:
        minutes: 5
  condition:
    - condition: state
      entity_id: binary_sensor.easee_is_charging
      state: "on"
  action:
    - service: easee.stop_charging
      data:
        charger_id: !secret easee_charger_id
Note sur le courant minimum Easee :La borne Easee supporte une plage de 6 A à 32 A par phase. En dessous de 6 A, la recharge s'arrête automatiquement. L'expression Jinja dans le template calcule le courant équivalent en ampères (surplus_W / 230 V) et le borne à 6 A minimum et 16 A maximum.
Étape 4 — Tarification

Intégrer les tarifs HP/HC et Tempo pour la recharge réseau

L'optimisation maximale combine le routage solaire de jour avec une stratégie de recharge réseau la nuit, uniquement en heures creuses. Avec le contrat Tempo EDF, la différence entre un kWh bleu creux (0,1222 €) et un kWh rouge plein (0,7562 €) justifie pleinement ce pilotage.

automation_hc_tempo.yaml
# automations.yaml
- alias: "Gridkit — Recharge batterie réseau HC"
  id: gridkit_recharge_hc
  description: "Recharge la batterie sur le réseau uniquement en heures creuses"
  trigger:
    - platform: time
      at: "22:30:00"
  condition:
    - condition: numeric_state
      entity_id: sensor.zendure_battery_soc
      below: 30
    - condition: state
      entity_id: sensor.rte_tempo_color_today
      state_not: "Red"
  action:
    - service: select.select_option
      target:
        entity_id: select.zendure_charge_mode
      data:
        option: "Grid"
    - service: number.set_value
      target:
        entity_id: number.zendure_charge_power
      data:
        value: 800

- alias: "Gridkit — Arrêt recharge réseau en début HP"
  id: gridkit_stop_recharge_hp
  trigger:
    - platform: time
      at: "06:30:00"
  action:
    - service: select.select_option
      target:
        entity_id: select.zendure_charge_mode
      data:
        option: "Solar"

Adaptez l'heure de déclenchement (22h30) à votre contrat. Pour les contrats HP/HC classiques, remplacez la condition Tempo par une vérification de l'heure via condition: time. L'intégration RTE eCO2mix (disponible en HACS) fournit le capteur de couleur Tempo en temps réel.

Bonne pratique

Structurer vos fichiers en packages Home Assistant

Pour garder votre configuration maintenable, regroupez toutes vos entités, scripts et automatisations liées à l'énergie dans des packages Home Assistant. Un package est un fichier YAML autonome qui peut contenir des sensor:, automation:, script: et input_boolean: ensemble.

# configuration.yaml

homeassistant:

  packages: !include_dir_named packages/


# Structure recommandée :

# packages/

# ├── solax.yaml # capteurs onduleur normalisés

# ├── zendure.yaml # capteurs + scripts batterie

# ├── eazee.yaml # capteurs + scripts borne VE

# └── routage_solaire.yaml # helpers + automatisations

Cette structure est exactement celle adoptée par les blueprints Gridkit. Chaque fichier de package normalise les entités de l'équipement concerné sous des noms préfixés gridkit_*, ce qui rend les automatisations indépendantes du modèle matériel et facilite les migrations futures.

Résultats

Ce que vous obtiendrez en pratique

−25 à −35 %

sur la facture électrique annuelle

80–90 %

d'autoconsommation solaire en été

< 1h

de configuration avec un blueprint prêt

Les résultats varient selon votre installation (puissance PV, capacité batterie, usage VE, tarif réseau), mais les utilisateurs ayant déployé un routage solaire complet dans Home Assistant rapportent systématiquement des économies significatives dès le premier mois complet de fonctionnement.

Le gain le plus immédiat vient généralement de la charge VE en surplus solaire: une voiture qui consomme 15 kWh chargée quotidiennement à l'électricité solaire représente environ 1 000 à 1 200 € d'économies par an au prix réseau actuel.

Questions fréquentes

FAQ : automatisation solaire avec Home Assistant

Faut-il être développeur pour configurer le routage solaire dans Home Assistant ?

Non. Les automatisations YAML de base sont accessibles à tout utilisateur HA ayant configuré quelques automatisations simples. Ce guide vous fournit les extraits de code prêts à copier. Si vous préférez une solution zéro-YAML, les blueprints Gridkit s'importent en 3 clics et ne nécessitent que de renseigner vos entités.

Est-ce que le routage solaire HA fonctionne sans batterie ?

Oui. Sans batterie, le routage solaire dirige le surplus vers votre borne VE, votre ballon d'eau chaude ou d'autres charges pilotables (piscine, climatisation...). La logique est la même, sans la couche de gestion du SOC batterie.

Quel matériel faut-il en plus de Home Assistant ?

Aucun matériel supplémentaire n'est nécessaire si vos équipements exposent déjà une API locale. Home Assistant s'installe sur un Raspberry Pi 4, un mini-PC ou en machine virtuelle. Le coût d'entrée se limite au serveur HA si vous n'en avez pas encore.

Les automatisations fonctionnent-elles si internet est coupé ?

Oui, si vous utilisez des intégrations locales (API Wi-Fi SolaX, MQTT Zendure, API locale Easee). Les automatisations s'exécutent entièrement sur votre réseau local. La seule fonctionnalité dépendante d'internet est la récupération de la couleur Tempo EDF.

Quelle est la différence entre ce guide et les blueprints Gridkit ?

Ce guide vous montre la logique et les extraits YAML fondamentaux pour comprendre et personnaliser votre propre setup. Les blueprints Gridkit sont des packages YAML complets, testés sur une installation réelle SolaX + Zendure Hyper 2000 + Easee, avec normalization des entités, gestion d'erreurs, et dashboard Lovelace inclus — prêts à importer sans configuration manuelle.

Gagnez du temps

Obtenez le blueprint complet prêt à importer →

Toutes les automatisations, template sensors, gestion Tempo et dashboard Lovelace en un seul package YAML — testé sur une installation réelle SolaX + Zendure + Easee. Import en 3 clics. Paiement unique 9,99 €.

Compatible Home Assistant 2024+ · Livraison immédiate par e-mail