Guide: Intégrer le serveur WES dans Home Assistant pour le suivi de consommation

J'utilise le serveur WES de Cartelectronic depuis plusieurs années maintenant: c'est un petit boitier qui vient s'intégrer dans le tableau électrique, et qui est capable de suivre toute la consommation d'énergie du foyer, qu'il s'agisse de l'électricité via la téléinfo ou des pinces ampère métriques, l'eau, le gaz, et bien d'autres choses. Un serveur extrêmement complet, qui se suffit à lui seul. Mais Home Assistant proposant un tableau d'énergie très bien fait, je voulais pouvoir intégrer le serveur WES sur ce système domotique. Ce guide vous aidera à faire la même chose.

Pré requis

Il faudra bien sûr disposer d'un serveur WES fonctionnel et connecté au réseau, ainsi que d'une installation Home Assistant fonctionnelle.

CARTELECTRONIC - Serveur (ecocompteur) W.E.S. V2

Le W.e.s. est un serveur Ethernet dont le but est de centraliser toutes les informations sur les dépenses énergétiques afin de prendre en compte la consommation énergétique d'un ...
en stock
165,00

Avant toute chose, pour que mon fichier de configuration Home Assistant ne soit pas surchargé, j'ai découpé celui ci en plusieurs fichiers, chose prévue nativement par les développeurs. Nous aurons ici notamment deux fichiers:

  • sensors.yaml , qui accueillera la configuration de tous les capteurs du WES
  • customize.yaml , qui permettra de customiser ces capteurs pour qu'ils soient correctement reconnus par le tableau Energie de Home Assistant

Pour cela il suffit d'ajouter ces lignes dans le fichiers configuration.yaml si vous ne les avez pas déjà:

Création des capteurs du serveur WES dans Home Assistant

Le serveur WES ne propose malheureusement pas de connexion MQTT, bien que celle ci soit annoncée depuis plusieurs années déjà. Dommage, car cela nous aurait bien facilité la vie. Le WES met toutefois à disposition plusieurs fichiers permettant de lire les informations qu'il recueille. Le fichier le plus complet est sans doute le data.cgx, disponible à l'adresse http://IP_DU_WES/data.cgx . C'est celui que nous utiliserons pour éviter de jongler entre plusieurs fichiers.

Il regroupe toutes les informations utiles sous cette forme:

Il nous faut simplement déclarer les différentes informations voulues dans Home Assistant.

Pour cela, dans le fichiers sensors.yaml (à créer dans votre répertoire homeassistant si vous ne l'avez pas déjà), il nous faut déclarer la connexion au serveur WES:

Il faudra remplacer les champs en rouge, pour indiquer l'adresse IP du serveur WES, ainsi que le nom d'utilisateur et le mot de passe si vous n'utilisez pas ceux mis par défaut. Vous pouvez également modifier le “scan_interval” pour interroger le fichier plus ou moins souvent. Ici il est réglé pour l'interroger toutes les minutes, ce qui convient bien à la plupart des usages. Inutile de surcharger le serveur avec des appels répétés.

Viennent ensuite la déclaration des différents capteurs. Pour lire les informations du compteur électrique via la téléinfo, si vous êtes par exemple en abonnement heures pleines / heures creuses:

Vous pouvez personnaliser les champs “friendly_name” si vous le souhaitez: ce sont les noms qui apparaitront dans Home Assistant. Le reste ne doit pas être modifié.

Si vous êtes comme moi en abonnement Tempo, il y aura un peu plus de capteurs à créer:

On peut également récupérer les informations relatives à l'injection (si vous avez un contrat production d'énergie), la consommation instantanée, ou encore la tension:

Chez moi je dispose d'un second compteur Linky, pour la revente de ma production solaire (contrat 100% revente). Le serveur WES étant également relié à ce compteur, je peux y récupérer les informations de ma production:

J'ai ajouté un autre capteur qui me permet d'avoir l'état des heures creuses: si westic1tarif = 1, alors nous sommes en heures creuses. C'est une donnée très utile dans les scénarios par exemple, pour déclencher certaines machines uniquement quand nous sommes au tarif économique :)

En plus de la lecture Tic (téléinfo), le WES est également capable de suivre la consommation de 4 lignes électriques distinctes, grâce à des pinces ampère métriques. On peut par exemple suivre la consommation de son chauffe eau, de la borne de recharge de son véhicule électrique, du chauffage, etc. Il faudra utiliser ce code:

Par défaut le WES ne remonte que la consommation instantanée en ampères, et l'index de consommation. Comme je voulais également avoir la consommation instantanée en watts, j'ai ajouté un petit calcul pour obtenir “wespince1watt”. Vous pouvez modifier les “friendly_name” pour utiliser un nom correspondant à votre usage. Si vous utilisez les 4 pinces possibles, il suffit de dupliquer ce code (je vous le fourni complet dans le fichier à télécharger plus loin).

Le serveur WES dispose aussi de compteurs à impulsions, qui peuvent être utilisés pour différentes choses, comme le suivi de consommation d'eau ou de gaz par exemple. Chez moi le premier capteur est utilisé pour suivre mon compteur d'eau:

Selon votre usage, il faudra personnaliser le nom, mais également le “device_class” et le “unit_of_measurement”. Vous trouverez une définition des différentes valeurs possibles ici.

D'autres informations peuvent être récupérées, selon ce qu'on a connecté au WES. Il existe notamment le relevé de température (jusqu'à 30 sondes !) via ce code:

Ou encore l'état des relais:

Nous avons également des entrées analogiques, des switchs virtuels, ou encore des variables.

Vous trouverez le code complet dans ce fichier, avec la bonne indentation, et des commentaires pour vous y retrouver.

A ajuster en fonction de vos besoins, bien sûr. Pour ma part je n'utilise que les deux compteurs TIC, les 4 pinces ampère métriques, et un compteur à impulsion.

Une fois votre configuration enregistrée, il faudra se rendre dans “Outils de Développement”, puis cliquer sur “Vérifier la configuration” pour s'assurer qu'il n'y a pas de problème dans la syntaxe des fichiers.

Si tout est bon, il ne reste plus qu'à cliquer sur redémarrer.

Une fois Home Assistant redémarré, si vous allez dans Paramètres / Appareils et Services / Entités, en tapant “wes” dans la barre de recherche, vous devriez trouver tous les capteurs créés pour le WES:

A partir de là vous pouvez les utiliser pour déclencher des scénarios, créer des tableaux de bord de suivi de consommation, etc.

MAIS pas encore les utiliser dans le tableau de bord Energie de Home Assistant.

Intégrer le WES au tableau Energie de Home Assistant

Le tableau de bord Energie de Home Assistant est vraiment très bien fait. Mais il n'accepte que les index ou les compteurs de consommation totaux. On pourrait se dire que c'est bon pour le WES, puisque nous avons bien créé des capteurs pour les index. A ceci près que pour apparaitre dans la liste des périphériques compatibles du tableau de bord Energie, ces capteurs doivent posséder un argument de type “state_class : total”. Si cet argument peut être mis directement dans la configuration de capteurs MQTT, ce n'est pas le cas des capteurs créés ici pour le WES, puisque nous sommes dans le cadre d'appels REST et non MQTT.

Heureusement on peut modifier la déclaration des capteurs dans un fichier customize.yaml, en ajoutant ce type de code pour chaque capteur représentant une consommation totale:

Je vous laisse mon fichier complet ici:

Il suffit de le placer dans le répertoire homeassistant, puis de redémarrer une nouvelle fois Home Assistant (après avoir vérifié que le code est ok).

On peut alors enfin ajouter nos différents index sur le tableau de bord Energie, que ce soit pour la téléinfo, la conso, la production, la consommation d'eau, etc.

Après quelques temps nous avons notre suivi de consommation, avec ici le détail heures creuses et heures pleines (en bleu plus clair). J'ai également le suivi de ma production photovoltaïque en jaune:

De la même manière je retrouve le suivi de consommation de mon chauffe eau, parmi les autres appareils individuels:

Et voilà !

Conclusion

Migrant peu à peu mon système domotique sur Home Assistant, j'ai cherché pas mal de temps comment intégrer mon serveur WES, car contrairement à Jeedom, il ne dispose pas de plugin prêt à l'emploi sur Home Assistant. Différents sujets en traitent, notamment:

La documentation Home Assistant permet également de mieux comprendre le fonctionnement des capteurs REST.

Une compatibilité native MQTT aurait beaucoup facilité les choses, mais finalement nous arrivons à récupérer toutes les données du WES, parfaitement exploitables dans Home Assistant, c'est le principal. L'intégration fonctionne chez moi depuis un peu plus d'un mois maintenant, et aucun problème à signaler. J'arrive à exploiter mon WES, ce qui m'évite de devoir multiplier les capteurs, puisqu'il gère énormément de choses nativement. Si ce guide peut en aider certains qui comme moi cherchaient comment faire !

CARTELECTRONIC - Serveur (ecocompteur) W.E.S. V2

Le W.e.s. est un serveur Ethernet dont le but est de centraliser toutes les informations sur les dépenses énergétiques afin de prendre en compte la consommation énergétique d'un ...
en stock
165,00
Pour information, cet article peut contenir des liens affiliés, sans aucun impact sur ce que vous gagnez vous même ou le prix que vous pouvez payer pour le produit. Passer par ce lien vous permet de me remercier pour le travail effectué sur le blog chaque jour, et d'aider à couvrir les dépenses du site (hébergement, frais de port pour les concours, etc.). Ca ne vous coute rien, mais ca m'aide beaucoup ! Merci donc à ceux qui joueront le jeu !

Inscrivez vous à notre newsletter !

Ne ratez plus aucun article, test de produit ou guide, grâce à un mail dans votre boite chaque vendredi !

4 Commentaires
  1. Bonjour,
    Merci beaucoup pour ce tuto très pratique :-)

  2. Un grand merci Cédric pour cet excellent travail qui m’a permis de remonter toutes les infos de mon WES sur Home Assistant ( sur lequel je débute ). En personnalisant vos fichiers customize et sensor, j’ai tout récupéré à l’exception de l’état des relais ( je suppose que ce n’est que la visu de leur état ?) pour lesquels HA m’indique “indisponible” J’ai du louper quelque-chose vu que je ne maitrise pas bien HA. Je m’interroge également sur la manière de piloter ces relais avec HA avec les commandes ( par ex: http://admin:wes@wes/RL.cgi?rl1=OFF&rl2=OFF).
    Cordialement, Thierry

  3. Salut et merci aussi pour le tuto bien complet qui m’a permis de facilement récupérer les info aux quelques erreur d’indentations pres dans les yaml.

    Pour répondre à Thierry: il se peut que vos sensor relais affichent indisponible car dans l’exemple fournis, on s’attends à trouver une valeur 0 ou 1 dans le lu data.cgx hors (je ne sais si cela a changé entre l’exemple et les évolution du firmware du wes) désormais l’état des relais est plutot une string ON ou OFF.

    De manière analogue à trouvé dans l’exemple, j’ai adapté pour retourner 0 ou 1 en fonction de la string ON ou OFF du xml:

    wesrelais1:
    friendly_name: “Relais HC”
    unique_id: wesrelais1
    value_template: >-
    {% if “on” in states.sensor.wesdata.attributes[“relais”][“RELAIS1”].lower() %}
    1
    {% else %}
    0
    {% endif %}

    En espérant que ca serve.

Laisser un commentaire

Maison et Domotique
Logo
Register New Account
Enregistrez vous, et stockez vos articles préférés sur votre compte pour les retrouver n'importe où, n'importe quand !
Compare items
  • Casques Audio (0)
  • Sondes de Piscine Connectées (0)
  • Smartphones (0)
Compare