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.
- 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
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.
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 HAInté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
HACSInté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
HACSInté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 / HACSSi 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.
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:) :
# 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.
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 GridkitAutomatiser 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.
# 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.
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.
# 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_idsurplus_W / 230 V) et le borne à 6 A minimum et 16 A maximum.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.
# 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.
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.
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.
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.