Sommaire
Introduction
Cet article n'est pas un tuto. Mon objectif est de décrire, pour que d’autres s’en inspirent, comment je contrôle sous Home Assistant ma production et consommation d’électricité, ma consommation d’eau de ville, du puits, celle de gaz ainsi que le détail des coûts correspondants.
Ma maison comporte un RDC et un étage, chaque niveau avec un panneau électrique. Elle est équipée d’un compteur Linky pour l’électricité, d’un compteur d’eau communicant (mais enterré sous une dalle) et d’un compteur Gazpar.
Je possède également une voiture électrique e208 avec une borne de recharge dans mon garage.
J’ai installé au cours du printemps dernier d’abord deux panneaux solaires plug and play de Sunology : le Playmax doté d’une batterie et le Play2, chacun doté de son propre onduleur puis 2 panneaux plug and play de Solarchoc (anciennement Chocdiscount) avec un onduleur Hoymiles.
Chaque fournisseur possède sa propre application sur smartphone Stream chez Sunology, S-Miles Enduser pour les onduleurs Hoymiles.
J’ai aussi acquis auprès de Sunology le transmetteur Linky Stream contrôlant ce transmetteur Linky.
J’ai fait une simple déclaration auprès d’Enedis et demandé que le compteur Linky passe d’historique à standard afin de suivre notamment l’électricité réinjectée gratuitement si les panneaux produisent plus que ma consommation.
J’ai découvert dans le même temps Home Assistant, étant précédemment équipé de Jeedom. Pour cela, j’ai acquis chez Domadoo une HomeAssistant green avec son dongle usb zigbee.
À partir de là, et de fil en aiguille, j’ai voulu contrôler et unifier dans Home Assistant ma consommation & production d’électricité, puis celle de l’eau de ville, mais aussi celle produite par mon puits et enfin ma consommation de gaz.
Dans chacun des paragraphes suivants, je décrirai le matériel supplémentaire nécessaire et son intégration dans Home Assistant.
J’ai aussi découvert la communauté HACF avec cet esprit de partage que j’avais connu dans les années 90 à Clermont-Ferrand où j’étais président de Linux-Arverne donc militant des logiciels libres.
À mon tour de partager.
Électricité
C’est la source d’énergie la plus complexe à contrôler.
Pour cela, j'ai utilisé un Shelly EM (aussi disponible chez Domadoo) avec deux pinces ampèremétriques.

Dans mon panneau électrique desservant l’étage et situé à côté du compteur Linky, j’ai installé deux pinces ampèremétriques sur le même Shelly EM :
- L’une sur la phase à la sortie du Linky mesurant l’énergie électrique totale consommée par ma maison, mais aussi celle négative rendue gratuitement à EDF.
- La deuxième sur le four électrique de l’étage.
Le Shelly EM est alimenté par L et N à câbler sur n’importe quelle phase et neutre. J’ai choisi la hotte en coupant bien sûr le disjoncteur correspondant.
Le pointillé bleu n’est pas connecté. Le shelly em a du wifi qu’il faut appairer à sa box.
Voir le disjoncteur hotte (deuxième depuis la droite) sur lequel est branché l’alimentation du shelly em et le disjoncteur table de cuisson four (cinquième depuis la droite) sur la phase duquel est mise la deuxième prise ampèremétrique.
La photo ci-dessous présente le tableau électrique ouvert et le Shelly EM alimenté sur la hotte, la deuxième pince sur la phase du four et la première pince (à droite de la photo) sur la phase générale.

Du côté de Home Assistant, il faut installer l’intégration Shelly puis ajouter un appareil.

On peut voir ici les deux Shelly celui du panneau électrique dont on vient de parler (le deuxième) dans la buanderie et celui du RDC dans les WC.

Le Shelly EM dans le panneau électrique des WC contrôle avec deux pinces ampèremétriques la borne de recharge et le chauffe-eau. Inutile de vous mettre une photo...
La consommation des autres appareils électriques sera décrite dans le paragraphe Utilisation détaillée des appareils individuels.
Après avoir configuré le tableau Energy de Home Assistant, on obtiendra ceci (exemple pour la journée du 13 janvier 2025) :

- En bleu, la consommation électrique heure par heure mesurée par pince ampèremétrique à la sortie du Linky
- En jaune, la production consommée des panneaux solaires ; en violet ce qui est restitué à EDF.
- À droite, la distribution animée de l’énergie.
Production solaire
Panneaux Solarchoc
Les panneaux Solarchoc sont connectés à un onduleur Hoymiles qui est supporté par Home Assistant.
Il a fallu installer le module complémentaire HoyMiles Solar Gateway stable Addon puis par configuration de ce module l’intégrer dans MQTT qui doit donc déjà être installé (module complémentaire Mosquitto broker).
La configuration de l'addon est assez simple :



Puis ENREGISTRER (c'est inactif ici car déjà fait).
Panneau Sunology PlayMax
L’onduleur sur le panneau Sunology PlayMax est un Hoymiles HMS-400 qui n'est lui pas accessible directement par Home Assistant : j'ai dû ajouter un DTU (passerelle de communication).
Le DTU compatible a été commandé ici :

Guillaume d’Icrea35 m’a aidé à configurer son OpenDTU, et également m’a mis les pieds à l’étrier de Home Assistant.
Son boîtier qui a son propre serveur web accessible sur une adresse IP locale s’occupe de l’intégration à MQTT où il apparaît ainsi :

Panneau Sunology Play2 et son onduleur Micro Inverter
Le panneau Play2 a un onduleur TSUN. Ce dernier a un serveur web et une adresse IP. Je possède un VPS SHPV (serveur virtuel) sur lequel j’ai installé docker puis sur celui-ci un container tsun-gen3-proxy.
Screen a également été installé sur le VPS. On fait tourner docker dans un screen-S docker après avoir défini une configuration qui s’occupe de l’intégration dans MQTT.
N'hésitez par à me contacter si vous avez un onduleur Tsun sur vos panneaux solaires.

Résultat dans le tableau Énergie
La production solaire apparaît dans le panneau Energy de Home Assistant après avoir renseigné la configuration partie panneaux solaires.

Trois onduleurs produisent de l’électricité : Hoymiles en jaune, Micro Inverter (Play2) en jaune-brun, Playmax en brun.
À droite 3 jauges qui parlent d’elles-mêmes.
Si la copie d’écran était faite après 17h, on verrait apparaître la production de la batterie du PlayMax car une partie de la production du PlayMax a été stockée dans la batterie et est restituée plus tard.
Sunology prépare pour cet été une batterie qui stockera en temps réel l’électricité restituée à EDF (en violet).
Gaz
Données GRDF
Pour le gaz les retours de GRDF sont actualisées avec un décalage de 2 jours. Un module complémentaire d’Home Assistant Gazpar2MQTT les récupère depuis votre espace client GRDF.
Il faut se rendre sur Mon Espace GRDF où vous devrez renseigner une adresse email avec mdp, votre PCE, et le nom donné à votre compteur communicant Gazpar (pour moi « maison Doyet »).
Il faut aussi créer le sensor suivant dans configuration.yaml :
sensor:
- platform: 'gazpar'
name: 'mygazpar'
username: 'adresse email renseignée'
password: 'votre mdp'
pce_identifier: '14 chiffres de votre PCE'
tmpdir: '/homeassistant/tmp'
scan_interval: '08:00:00'
et dans la partie template: de configuration.yaml ceci :
- sensor:
- name: gas_energy
unit_of_measurement: 'kWh'
state: "{{ states('sensor.mygazpar') | float(default=0) }}"
icon: mdi:fire
device_class: energy
state_class: total
Le module complémentaire récupère une fois par jour les données. Elles apparaissent dans MQTT sous le nom d’appareil « gazpar maison Doyet » avec les informations essentielles :
- consumption date : on voit ici le décalage de 2 jours
- conversion factor : 11,05 kWh/m³ en ce moment.
Voici ce qui apparaitra dans le sensor gas_energy.

Prise TIC du GazPar
Deux ZiPulses ont été successivement installés sur la prise :

avec le câble homologué Gazpar :

ZiPulses est connecté en Zigbee via la clef usb Zigbee SkyConnect de Home Assistant Green.
Voir aussi la documentation du ZIPulse.
J’ai demandé à GRDF de venir vérifier que les impulsions parviennent bien à la prise tous les 10 L de gaz consommé. Après changement du compteur j'ai bien les impulsions.
Entre-temps, j’ai installé un bouton Sonoff « impulsions gaz » zigbee relié au Gazpar par le câble homologué avec 2 fils soudés à la sortie du bouton.
Les impulsions sont bien captées.
J'utilise ZHA avec l’intégration suivante :

L'appareil « impulsions gaz » dans l’intégration zigbee nous donne ceci :

Deux automatisations décrémentent ou incrémentent le compteur indexreel qui est déclaré dans appareils et services : Entrées avec valeur initiale le relevé du compteur au moment de la pose du bouton et un pas de 10. Ce compteur est en litres.
Un petit aimant sur le 0 des litres active une impulsion magnétique lorsqu’il est à l’intérieur (quand on voit le 6 au niveau des litres). Donc une impulsion est émise vers la prise TIC lorsqu’un tour complet est effectué soit 10 litres. Ensuite un compteur de Home Assitant (counter.indexreel) est incrémentré de 10 à chaque impulsion puis un template sensor gaz_energy (ci-dessous le code dans configuration.yaml) le traduit en m³ en le divisant par 1000 puis en kWh en le multipliant par 11.05 le facteur de conversion actuel pour notre fournisseur de gaz Engie-gaz-passerelle.
À changer dès que l’on constate un changement.
- sensor:
- name: gaz_energy
unit_of_measurement: 'kWh'
state: "{{ (states('counter.indexreel') | int / 1000 | round(2)) * 11.05 | float(default=0) | round(2) }}"
icon: mdi:fire
device_class: energy
state_class: total
C’est ce sensor gaz_energy qui est renseigné dans la partie consommation de gaz du panneau Energy de Home Assistant. Le coût renseigné est 0.12272 le kWh.

Le 15 janvier à 17h le panneau consommation de gaz fait apparaitre gaz_energy
Mais deux jours après j'ai constaté que le contact avec le bouton sonoff était perdu
(peut-être une question de pile).
ZiPulses fonctionne à nouveau (le 22 janvier)
J’ai réappairé un ZiPulses en me plaçant près du nouveau Gazpar.
Et la « Consommation » se met bien à jour. Le ZiPulses stocke les impulsions et peut en envoyer 2 ou 3 à la fois au réseau zigbee. Du coup dans configuration.yaml j’ai créé dans la partie template : deux sensors energy_gazpar et volume_gazpar

- sensor:
- name: energy_gazpar
unit_of_measurement: 'kWh'
state: "{{ (states('sensor.zipulses_consommation') | int / 100 | round(2)) * 10.91 | float(default=0) | round(2) }}"
icon: mdi:fire
device_class: energy
state_class: total
- sensor:
- name: volume_gazpar
unit_of_measurement: 'L'
state: "{{ 121596 + states('sensor.zipulses_consommation') | int * 10 }}"
icon: mdi:fire
device_class: gas
state_class: total
- le premier energy_gazpar traduit en kWh et c’est ce qui est renseigné dans le panneau Energy partie gaz
- le second volume_gaz est aligné sur le compteur physique. Cela permettra de vérifier de temps en temps que des impulsions ne se perdent pas en route.
Vérification le 23 janvier à 11h45 :
- compteur physique : 147966
- compteur volume_gazpar : 147986
Pour 20 litres de différence je ne change rien pour le moment. Sinon il faudrait remplacer 121596 dans le sensor volume_gazpar par 121576
Eau
les compteurs d'eau
J’ai fait installer par mon plombier le compteur d’eau à impulsions Gioanola 1/4l et je lui ai connecté un ESP32 selon les modalités de l’article :


Un deuxième « compteur » a été installé à la sortie de la pompe à surpresseur tirant l’eau de mon puits. Le code de esp-puits est directement inspiré de celui de esp-eau.

Il faut donc avoir installé ESP Home dans Home Assistant.

- À gauche, le compteur Gionola avec son compteur à impulsions et l’esp-eau dans le petit boîtier bleu.
- À droite le « compteur » à impulsions chinois (une petite turbine intérieure envoie une impulsion à chaque 0.015 litre)
** comptage du nombre de litres : 1 impulsion ajoute 0.015 (compteur 1 / 0.015 litre) - L’esp-puits dans le petit boitier gris.
Eau et panneau Energy
Dans le panneau Energy correctement configuré, on retrouvera la consommation d’eau.
En bleu clair l’eau de ville 6,75L de 10h à 11h ; en bleu foncé l’eau du puits (deux WC et machine à laver le linge). HomeAssistant mesure cela grâce à deux ESP32 dans ESPHome.

Sources d'énergie
Le tableau Energy permet de voir les différentes sources d'énergie. Ce sont les capteurs qui donnent l’énergie électrique produite (gratuite) par les 3 onduleurs ; puis celle venant d’EDF consommée (au prix heures pleines -de 8h à minuit- ou heures creuses de mon contrat électricité-auto ) ; et celle gratuite produite. Le gaz puis l’eau de ville seule payante.
Dans tous ces coûts les abonnements ne sont pas comptés.

Consommation des appareils individuels
Pour mesurer la consommation individuelle des appareils, j'ai utilisé des prises Nous zigbee 3,0 vendues par 4 chez Domadoo et aussi 2 prises extérieures zigbee servant de routeur relais pour le capteur gaz :


Voici le rendu dans le tableau Energy :

Illustration : la nuit du 13 janvier à 2h du matin ma voiture e208 s’est chargée sur sa borne, dont la consommation (36,09kWh) est mesurée par une pince ampèremétrique. De même une autre pince ampèremétrique connectée au même ShellyEM mesure la consommation du chauffe-eau (5,04kWh). Les consommations des autres appareils sont mesurées par des prises Nous Smart Zigbee Socket A1Z.
Ma cave comporte un réfrigérateur-congélateur, un congélateur et une cave à vin. Le lave-vaisselle est programmé pour tourner à 3h du matin (donc en heures creuses).
En projet
J'ai en projet l'utilisation de la batterie Storey. La voiture électrique est chargée en gros une fois par semaine et en heures creuses à 0,160€/kWh. En heures pleines, le prix est de 0,295€/kWh.
Je compte sur la batterie Storey, ce à condition qu’elle stocke bien l’électricité en surplus même si les onduleurs ne sont pas Sunology, et qu’elle soit restituée dans le réseau en temps réel.
Actuellement je surveille l'énergie injectée (voir commentaire 29) avec l'idée de l'envoyer à la batterie Storey ou de lancer une lessive par exemple. La batterie du Playmax je n'en ai pas le contrôle. C'est Sunology à travers le logiciel Stream qui l'a !!
J'ai installé une intégration de simulation de batterie Tesla PowerWall de 13.5 kWh (voir commentaire 32). La vraie coûte 6945€. La Storey de 2.2 kWh est prévue à 1390€.
Conclusion
Voilà, je vous ai présenté l'ensemble de mon installation avec une illustration de tout ce que l'on pouvait faire avec le module Energy de Home Assistant. N'hésitez pas à poser vos questions et commenter.