Le compteur électrique intelligent de ORES via le port P1

Classé dans : Jeedom | 39

Le compteur électrique intelligent de ORES via le port P1

Une partie de la domotique s’intéresse aux objets et aux actions (ou commandes) qui leur sont associés. C’est le thème principal de ce blog. Mais une autre branche, tout aussi intéressante, s’intéresse quant à elle à la partie contrôle. On retrouve, dans cette catégorie, les suivis de consommation.

Le suivi de la consommation d’eau était ce qu’il y avait de moins compliqué à mettre en place et ce fût le point de départ. Le suivi de la consommation électrique est plus compliqué. J’ai tout d’abord essayé une solution reposant sur des pinces ampèremétriques. C’est une option, pas chère et qui fonctionne relativement bien à condition de ne pas avoir de panneaux photovoltaïques sur son installation. Cette fois, j’aborderai une solution plus précise et plus efficace reposant sur le compteur intelligent (“Smart Meter”) placé par mon gestionnaire de réseau (ORES). Accrochez-vous bien car, hélas, rien ne sera simple.  

Le compteur intelligent et les ports P1/S1

ORES définit le compteur intelligent comme “un compteur électronique qui permet notamment de transmettre des données de consommation, comme vos index, et qui peut recevoir des informations ou des ordres à la demande du client”.

J’ajouterais que ces compteurs intelligents sont surtout intelligents parce qu’ils sont équipés de deux ports clients: les ports P1 et S1. C’est au travers de ces ports que les consommateurs peuvent se connecter et rapatrier les index de leur consommations/productions, jour et nuit.

Certains anciens compteurs placés il y a quelques années étaient déjà nativement communicants. Mais ils n’offraient pas ces ports clients et les moyens de communication étaient rendus inaccessibles de par le coffret plastique scellé. Mais c’est de l’histoire ancienne et on peut, maintenant, commander chez ORES l’installation des compteurs Sagemcom T211 (triphasé) ou S211 (monophasé).

Sagem-T211-ORES

Ces compteurs intelligents permettent aussi, le cas échéant, le suivi de la consommation de gaz.

Le coût de ces “Smart Meters”

L’installation d’un compteur intelligent a un coût non négligeable comme indiqué sur le site web d’ORES:

Le prix du placement et de l’achat du compteur intelligent est fixé à 152€ HTVA(tarif 2020, CWaPE). Si votre installation le nécessite, d’autres frais pourraient vous être facturés (ex : placement nouveau coffret de comptage, …).

Toutefois, afin d’encourager l’autoconsommation, la région wallonne a prévu une prime de soutient :

Le décret lié aux prosumers prévoit également de soutenir les clients en fournissant une prime de 152€ HTVA pour le placement et l’achat du compteur intelligent à fonction double flux. Celle-ci est octroyée à tous les clients résidentiels, prosumers ou non. Cette prime sera octroyée jusqu’au 31 décembre 2023 dans les limites des budgets disponibles accordées par la Région wallonne.

La demande de cette prime se fait d’ailleurs à travers ORES.

En sus, ORES demande 25 euros HTVA (tarif 2020, CWaPE) pour ouvrir le port P1/S1 (par défaut, les ports S1 et P1 ne sont pas ouverts. ORES invoque des questions de sécurité et de respect des données privées). Compte tenu du fait que cette ouverture est faite par le technicien, via trois appuis dans le menu de configuration, 25 euros c’est excessivement cher payé pour 15 secondes de travail ! La CWAPE démontre, une fois de plus, sa grande incompétence en valorisant si chèrement si peu de travail.

La différence entre S1 et P1 et la connectique

La connexion aux ports clients, P1 ou S1, se fait par un câble RJ11. Pour parler moins techniquement, c’est tout simplement le type de câble qu’on utilise (de moins en moins depuis les GSM) pour relier le téléphone de sa ligne fixe avec la prise murale de téléphone.

On trouve les deux ports clients, côte à côte, sur le compteur Sagemcom T211. Comme mentionné sur le compteur, le premier (à gauche) est le port S1 et le second (à droite) le port P1.

IMG_7107

Le port P1 a une fréquence d’envoi des données de une fois toutes les secondes. Pour un suivi dans une box domotique, c’est plus que suffisant. Le port S1, lui, a une fréquence d’envoi beaucoup plus importante : entre 2000 et 4000 mesures par seconde. C’est une fréquence beaucoup trop élevée pour un usage domestique et c’est la raison pour laquelle il est conseillé d’utiliser le port P1.

Les systèmes de gestion d’énergie

ORES a bien travaillé sur l’aspect pratique. Il renvoie notamment vers le site https://maconsosouslaloupe.be/ems qui recense les systèmes qui peuvent être utilisés pour le suivi de sa consommation. Il y a du choix : du gratuit ou du payant, des applications smartphones, des solutions avec tablette,……

ORES-Proposition-lecteur-P1

En ce qui me concerne, j’ai choisi en prenant en compte ces critères : 

  • le prix (à fonctionnalité égale, le moins cher est le mieux)
  • l’aspect ouvert (c’est-à-dire offrant une API locale pour récupérer les données et les intégrer dans une box domotique, Jeedom en l’occurence)
  • un protocole Wi-Fi
  • une application smartphone gratuite pour analyser ses données de consommation/production
  • l’existence d’autres capteurs de la marque : une fois qu’on est content d’un environnement, c’est très facile de l’étendre.

C’est finalement HomeWizard Energy et son lecteur Wi-Fi P1 qui a retenu mon attention. Pour 29,95 euros, on en a vraiment pour son argent.

HomeWizard Energy Compteur P1

Compteur Wi-Fi P1 HomeWizard Energy

L’installation est on ne peut plus simple. On commence par insérer le compteur Wi-FI P1 HomeWizard Energy dans le port P1 du compteur ORES Sagemcom T211 (le port de droite donc puisque celui de gauche est le port S1). Avec les nouveaux compteurs ORES, comme le Sagemcom T211, il n’y a même pas besoin d’alimentation externe (pour les autres, un port USB-C existe sur le le compteur Wi-FI P1 HomeWizard Energy).

HomeWizard Energy Compteur P1 T211 Sagemcom

HomeWizard a eu l’excellente idée d’ajouter un anneau lumineux. On sait donc directement et en permanence quel est le statut : ici, c’est vert, ce qui signifie que tout fonctionne bien (la photo a été prise à la fin de l’installation).

HomeWizard Energy Compteur Code couleur

L’application HomeWizard Energy

On télécharge l’application smartphone HomeWizard Energy. L’installation et la configuration initiale se font très vite et très classiquement : on définit une maison, on ajoute un capteur (le P1), on fait l’appareillage (en appuyant quelques secondes sur l’anneau lumineux), on donne le mot de passe WiFi et voilà : c’est tout.

On a alors accès aux index du compteur et donc aux consommations/productions (Ecran 2). On peut également accéder aux consommations instantanées, par jour (Ecran 3), par semaine, par mois (Ecran 4) et par année.

HomeWizard_P1_Application_1

L’application HomeWizard Energy fonctionne aussi pour les autres objets connectés de HomeWizard comme la prise de courant intelligente (Ecran 2). On peut alors brancher cette prise sur un appareil très consommateur d’énergie afin de l’activer en cas de production (photovoltaïque par exemple).

Enfin, pour 0,99€ par mois (Ecran 3), HomeWizard propose Energy+. Energy+ est une option permettant d’aller plus loin dans l’analyse : plus d’années de stockage des données, des notifications en cas de déviation par rapport à une consommation habituelle, la possibilité d’exporter les données,…

HomeWizard_P1_Application_2

L’API HomeWizard

Comme on le voit, l’application HomeWizard Energy couvre déjà beaucoup de fonctionnalités. Mais, pour ceux qui ont une box domotique, c’est dans cette dernière qu’ils souhaitent voir leurs données. Et c’est là qu’on est content d’avoir acheté HomeWizard car HomeWizard offre une API ouverte et documentée : https://homewizard-energy-api.readthedocs.io/

Récupérer les données de consommation est aussi simple que de lire une URL.

On doit tout d’abord trouver l’adresse IP du compteur Wi-Fi P1, ce que l’on fait sur son routeur (c’est un peu dommage que HomeWizard n’indique pas cette information dans l’application). On accède alors aux données via l’URL http://{IP_ADDRESS}/api/v1/data ou encore http://{IP_ADDRESS}/api/v1/telegram

Le format des données

On le voit ci-dessus, il est difficile de retrouver ses index de consommations électriques parmi tous ces chiffres. C’est dû à la complexité du protocole& DSRM 5. Mais, heureusement, un document bien fait permet de comprendre comment cela fonctionne :
https://rutg3r.com/wp-content/uploads/2018/11/P1_Companion_Standard.pdf

Pour résumer et simplifier, voici un petit exemple :

Protocole-DSRM5

Sur la dernière ligne du tableau, on lit dans la première colonne que cette ligne concerne la mesure de la consommation électrique (en kWh) fournie par le producteur d’électricité en tarif 1. Pour trouver cet index, on doit regarder la ligne qui commence par 1-0:1.8.1 (colonne 2). La cinquième colonne indique le format : la valeur est un numérique sur neuf caractères avec trois chiffres après la virgule.

Si on reprend l’image ci-dessus, on voit que le capteur a envoyé plusieurs lignes dont celle-ci:

1-0:1.8.1(00061.810*kWh)

La consommation de l’index 1.8.1 est donc de 61,81 kWh. Sur le compteur Sagemcom, l’index de consommation 1.8.1 qui correspond en fait à la consommation en journée (hors week-end), montre la même valeur de 61,810 kWh.

Sagemcom-T211-Index-181

HomeWizard et Jeedom

On crée un virtuel dans Jeedom

On va maintenant préparer la réception des données du compteur ORES Sagemcom T211 dans Jeedom. Ces informations vont être stockées dans un équipement virtuel (dont j’ai déjà parlé dans plusieurs articles dont celui sur le suivi de sa consommation d’eau).

Il faut créer une information virtuelle par index que l’on souhaite récupérer. Par exemple :

Jeedom-virtuel-P1-Smart-Meter

On récupère ensuite, pour chacune de ces infos virtuelle, son ID en cliquant sur le bouton avec les engrenages. Par exemple, sur l’info virtuelle “1.8.1”, cela donne l’ID 6292. On aura besoin de cette information dans la dernière étape.

Jeedom-virtuel-P1-Smart-Meter-ID

Pour que la solution fonctionne, il faut créer (et noter les ID) une information virtuelle pour :

Index 1.8.1 : index de consommation jour
Index 2.8.1 : index de production jour
Index 1.8.2 : index de consommation nuit (et week-end)
Index 2.8.2 : index de production nuit
Index 1.7.0 : puissance en cours de prélèvement sur le réseau
Index 2.7.0 : puissance en cours d’injection sur le réseau
Telegram : message complet du compteur ORES Sagemcom T211 au format texte
LastRunPY : date et heure à laquelle le script a tourné la dernière fois

Le script Python dans Jeedom

On utilise ensuite un script Python dans Jeedom pour récupérer les données et les insérer dans les infos virtuelles créées à l’étape précédente.

Jeedom permet à un utilisateur de créer des scripts Python via le plugin Script (dans Programmation sur le Market Jeedom).

Jeedom-Plugin-Script

Une fois le script installé, on crée un équipement.

Jeedom-Script-Python-Equipement

Soit on le fait de suite, soit on le fait à la fin mais il faudra cliquer sur le point d’interrogation sur fond noir afin de définir la fréquence à laquelle Jeedom exécutera le script. On ne peut hélas pas descendre sous la minute, fréquence que j’ai choisie. Cela signifie que Jeedom va exécuter le script toutes les minutes.

Jeedom-Script-Python-Cron

On crée ensuite une commande script avec un script comme ci-dessous, en prenant bien soin d’ajouter l’extension .py

Jeedom-Script-Python

Je n’avais jamais développé en Python. Le script est donc une compilation de ce que j’ai trouvé ici et là afin de faire réceptionner les données. C’est certainement améliorable (notamment la gestion des erreurs) mais cela fonctionne.

Voici une version du code pour ceux qui sont en Jeedom 4.2. A partir de cette veresion, la sécurité a été changée et, par conséquent il a fallu adapter un peu l’URL pour accéder au virtuel : Sagemcom pour Jeedom HomeWizard 4.2

Quelques explications du script Python

Le script Python est commenté et permet de comprendre la logique. Voici quelques points importants.

Le début du script contient les paramètres (variables). Il faut les adapter à votre configuration en indiquant:

  • les adresses IP (de Jeedom et du HomeWizard Energy P1) 
  • la clé API de Jeedom (que l’on trouve dans Réglages/Système/Configuration / API et on regarde la valeur au niveau de Clé API Virtuel)
  • les ID des infos virtuelles dans Jeedom (voir étape précédente).

Toutes les variables de cet écran doivent être changées pour correspondre à votre installation.

Screen Shot 2023-09-05 at 07.14.07

Juste en dessous, on trouve un petit truc pour contourner le fait qu’on ne puisse pas lancer le script plus d’une fois par minute (voir étape de réglage du cron de l’équipement Script ci-dessus). Avec NB_RUN = 2, le script lira deux fois les données et avec DELAI_WAIT=30, il attendra 30 secondes entre chaque lecture. Comme cela, on a des données mises à jour toutes les 30 secondes environ au lieu d’une fois par minute.

Screen Shot 2023-09-05 at 07.14.28

Le reste du script consiste en la réception du message du Sagemcom, sa décomposition pour extraire la donnée et son envoi, via http, sur l’info virtuel correspondante.

Le reste et le rendu dans Jeedom

Le reste, c’est de la mise en forme et la création d’autres informations virtuelles pour réaliser des calculs de consommation et production. On peut se contenter, au besoin, d’une version simple :

Jeedom-dashboard

Ou bien, si on dispose déjà d’un beau Design 2D, on peut l’enrichir et réaliser des calculs plus complexes avec des estimations et des calculs de facturation (depuis les derniers relevés d’index):

Screen Shot 2021-02-15 at 11.18.33

La vie n’est pas toujours un long fleuve tranquille

En domotique, les choses bougent en permanence et rapidement. Avant que je ne trouve la solution HomeWizard, j’avais réalisé plusieurs autres tentatives que je relate ici. Elles fonctionnent et, si vous avez envie de fabriquer votre capteur, vous trouverez votre bonheur.

La solution ESP8266 et le firmware Tasmota, le plan A

Dans des articles précédents, je vous ai déjà parlé de ces petits modules ESP8266 que j’ai utilisés pour mesurer la quantité de mazout dans ma cuve, suivre ma consommation d’eau ou encore pour suivre une consommation électrique.

Je suis donc parti à nouveau sur cette idée : un module ESP8266 au cœur d’un capteur maison pour lire les données du compteur Sagemcom.

J’ai tout d’abord cherché, longuement, un appareil qui ferait l’interface entre le compteur ORES Sagemcom (T211 ou S211) et mon microcontrolleur ESP8266 dont le rôle se résumerait à envoyer les données dans ma box domotique Jeedom via ESPEasy. Après des jours de recherches, j’ai abandonné cette piste n’ayant rien trouvé de compatible ESPEasy.

Et puis je suis tombé sur ce post https://tasmota.github.io/docs/P1-Smart-Meter/#description-of-each-line et, de fil en aiguille, je me suis dit que c’était une solution à essayer : un ESP8266 avec le firmware Tasmota, quelques résistances, un transistor, un câble RJ11 et quelques câbles. Pour la remontée dans Jeedom, l’avantage du firmware Tasmota est qu’il permet d’implémenter le protocole MQTT et, avec le plugin du même nom dans Jeedom, on pourrait alors facilement récupérer les informations.

L’installation du compilateur sous Docker

Le firmware Tasmota est un firmware très complet qui peut gérer un grand nombre d’équipements. Les ESP8266 ayant une mémoire limitée (qui varie selon le modèle), la première chose à faire est de se compiler un firmware Tasmota avec ce dont on a besoin, ni plus ni moins.

Il y a plusieurs méthodes possibles. Personnellement, ayant déjà docker sur mon NAS Synology (notamment pour une solution GED Alfresco), cette solution était la plus facile.

Dans Docker, au niveau des images, on trouve l’image Benzino77/tasmocompiler qu’il faut télécharger (bouton “Download”).

Tasmocompiler-Docker

Une fois téléchargée, dans le tab “Image”, on peut lancer l’installation d’un container et, une fois lancer, cliquer sur le bouton “Advanced Settings”.

Tasmocompiler-Create-Container

Au niveau de l’onglet “Port Settings”, on ouvre le port 3000 sur le NAS Synology. C’est en effet le port utilisé par TasmoCompiler et le port qu’on utilisera pour compiler un firmware sur mesure.

Tasmocompiler-Ouverture-Port

Pour le reste, on conserve les valeurs par défaut. Une fois le container créé et démarré, on vérifie dans les logs, que c’est bien le port 3000 (qu’on a ouvert précédemment) qui est utilisé et on vérifie qu’il n’y a pas d’erreurs.

Tasmocompiler-Port

La compilation du firmware

On peut maintenant se connecter à TasmoCompiler, dans un browser internet à l’adresse IP de votre NAS et avec le port 3000. Si tout se passe bien, vous devriez voir le premier écran de compilation du firmware Tasmota.

Cliquer sur Next.

TasmoCompiler-Ecran1

Dans le second écran, introduire ses paramètres WIFI. Je vous conseillerais de cocher la case “Static IP” afin d’avoir une adresse IP fixe (pour que Jeedom ne perde jamais votre équipement).

Tasmocompiler-WIFI-configuration

Choisir les fonctionnalités à compiler dans le firmware. J’ai coché “Energy Sensors” et, par curiosité, “Amazon Alexa”. J’ai aussi conservé ce qui avait été coché par défaut.

Tasmocompiler-features

Introduire ses paramètres MQTT. Il s’agit ici d’indiquer l’adresse IP de Jeedom au niveau de MQTT_HOST.

Tasmocompiler-Custom-Parameters

Les paramètres sont:

#ifdef MQTT_HOST

  #undef MQTT_HOST

#endif

#define MQTT_HOST               Adresse IP Jeedom

#ifdef MQTT_PORT

  #undef MQTT_PORT

#endif

#define MQTT_PORT               1883

#ifdef MQTT_USER

  #undef MQTT_USER

#endif

#define MQTT_USER            “mqttuser”

#ifdef MQTT_PASS

  #undef MQTT_PASS

#endif

#define MQTT_PASS            “mqttpassword”

#ifdef FRIENDLY_NAME

  #undef FRIENDLY_NAME

#endif

#define FRIENDLY_NAME          “Tasmota Smart Meter Sagemcom”

Pour plus d’informations sur ce compiler, la documentation se trouve ici : https://github.com/benzino77/tasmocompiler

Ajuster le paramètre “Board version” en fonction de l’ESP8266 que vous avez acheté. Cliquer sur “Compile”.

Tasmocompiler-Compile

La compilation prend quelques minutes. A la fin, on peut télécharger le fichier “FIRMWARE.BIN”.

Tasmocompiler-Compile-Finished

Tasmocompiler-Firmware-Download

L’installation du firmware dans l’ESP8266

Pour installer le firmware Tasmota dans l’ESP8266, cet article décrit à l’étape 3 comment procéder avec le logiciel le logiciel ESP.Easy.Flasher.exe. Il suffit, avant, de copier le fichier Firmware.bin généré à l’étape précédente dans le répertoire des firmware du logiciel ESP.Easy.Flasher.exe

On se connecte à l’ESP8266

Pour se connecter à l’ESP8266 flashé avec le firmware Tasmota, on utilise le navigateur internet en indiquant l’adresse IP de l’ESP8266 (pour la récupérer, il faut regarder sur son routeur l’adresse IP attribuée au device tasmota…..).

Tasmota Adresse IP

On arrive sur la page d’accueil de l’ESP8266.

ESP8266-Tasmota-Home-Page

La configuration pour P1 Smart Meter

Pour lire correctement les données du compteur Sagemcom T211, on navigue dans Configuration / Configure Module et on choisit Generic (18).

ESP8266-Module-Generic18

Ensuite, dans Console (bouton sur lequel cliquer dans la page de démarrage), il faut indiquer ces commandes afin que Tasmota publie chaque ligne de façon séparée sur MQTT.

  • SerialDelimiter 10
  • SerialSend 1

Tasmocompiler-Commands

La partie électronique

On entre ici dans le vif du sujet avec la réalisation du capteur physique et les branchements avec l’ESP8266 configuré comme ci-dessus. Le site web https://tasmota.github.io/docs/P1-Smart-Meter/ décrit ce sujet et publie notamment le schéma électronique à réaliser.

Le matériel est peu coûteux. On le trouve sur Amazon pour quelques euros : un câble RJ11, un transistor (il a fallu acheter une boite entière…dommage), une boite de résistances (pour n’en utiliser que trois…dommage également), quelques câbles et un breadboard pour faire les branchements.

Pratiquement parlant, j’ai dénudé un côté du câble RJ11 et j’ai repéré les câbles en regardant les couleurs:

IMG_6972

Pour la réalisation du montage, il n’y a que trois câbles à utiliser : le blanc, le brun et le jaune. J’ai soudé, au fer à souder, des câbles Elegoo sur les trois câbles dénudés afin de faciliter les branchements sur la breadboard.

IMG_6973

Finalement, pour terminer, on réalise le montage sur le breadboard. Si on se souvient de son fonctionnement, ce n’est pas si compliqué :

Pour le transistor, il est très important de bien repérer les connections et les trois branches.

Le tout a été placé dans une boite de dérivation. Ce n’est pas très beau mais, une fois la boite fermée, ce capteur maison est bien protégé et il n’y plus qu’à le brancher :

  • sur le 230V avec un transformateur (comme ceux pour recharger les GSM) pour alimenter l’ESP8266 (via le port micro-USB)
  • au compteur ORES Sagemcom T211 via le port RJ11.

IMG_6974

Ca fonctionne ou pas ?

C’est le moment fatidique : on a réalisé ses branchements électroniques et on a tout branché. Mais est-ce que cela va fonctionner ? Avec le firmware Tasmota, on peut le vérifier rapidement. Il y a un écran où l’on voit défiler ce que le capteur lit. Vous devriez avoir des lignes de données, au format DSMR (Dutch Smart Meter Requirements) en version 5 (pour les compteurs ORES Sagemcom T211).

Sans entrer pour l’instant dans les détails, les premiers caractères indiquent à quoi correspond la donnée : un index de mesure de consommation nuit, un index de mesure de production jour, un index de mesure de puissance consommée instantanée, la tension,… Derrière, on retrouve la mesure en elle-même (souvent l’index des compteurs donc) et son unité (kW, V, A)

Tasmota envoi donnée MQTT

Le plugin MQTT de Jeedom

On passe maintenant à la partie Jeedom. L’objectif est d’y récupérer les données envoyées en MQTT par notre capteur maison.

On commence par installer le plugin MQTT de lunarok (en vert).

Jeedom-MQTT-Plugin

On peut conserver les paramètres par défaut au niveau de la configuration.

Jeedom-MQTT-Parametres-Defaut

Jeedom trouve les équipements. Pour chaque équipement, cocher les case “Activer” et “Visible” et donner un objet Parent

Et dans Jeedom, voici ce que cela donne

Dans Jeedom, les données sont enfin remontées. Sur la dernière ligne d’un des équipements, on peut voir défiler, ligne par ligne, ce qui est lu par le capteur et publié en MQTT.

Tasmota dans Jeedom

Mais, et c’est ici que c’est ennuyant, c’est totalement inutilisable en l’état. Il y a le texte “”SerialReceived” devant, et puis les codes ( “1-0:51.7.0(” ) et puis seulement les données. Et les données ne cessent de défiler. Or, ce qu’il faudrait, c’est que chaque donnée soit bien isolée afin que l’on puisse faire des suivis de production et consommations (et des calculs).

J’ai donc abandonné la piste du Tasmota. Mais tout n’a pas été perdu car, dans le plan B que je vais décrire ci-dessous, je n’ai pas eu à modifier grand chose dans le capteur.

La solution plan B, avec le firmware Mega

Le principe de base

La solution que j’ai finalement retenue repose sur l’architecture suivante:

  • le capteur (le même que ci-dessus mais avec un autre firmware que Tasmota) fait le lien entre le compteur Sagemcom T211 et Jeedom
  • l’ESP8266, avec le firmware Mega, va lire les données du compteur mais va les publier via un websocket (et non plus en MQTT)
  • Jeedom va utiliser un script écrit en Python pour se connecter au websocket et récupérer les données du compteur

On n’a donc plus un capteur qui lit et envoie en permanence les données en MQTT à Jeedom. On a plutôt un capteur auquel on se connecte à la demande. Jeedom se charge, via un script Python, de

  • gérer la connexion à ce capteur
  • décomposer les données pour extraire les valeurs désirées
  • stocker les données dans des infos virtuelles d’un équipement virtuel

L’installation du firmware

Les premières étapes ont déjà été décrites dans cet article :

  • flasher le firmware Mega sur l’ESP8266. J’ai installé, la dernière version du firmware : ESPEasy_ESP32_mega-20210114.zip
  • se connecter en WIFI et configurer les paramètres WIFI de l’ESP8266

On ajoute un device P1 Wifi Gateway

Au niveau de “Devices”, on ajoute un Device de type “Communication – P1 Wifi Gateway” avec les paramètres suivant:

ESP8266-Device-Communication-P1-WIFI-Gateway

Comme le compteur ORES Sagemcom T211 implémente protocole DSRM 5, les paramètres sont en effet ceux-ci:

The interface will use a fixed transfer speed of 115200 baud. For character formatting a start bit, 8 data bits, no parity bit and a stop bit are used (8N1).Note this is not conforming to EN- IEC 62056-21 Mode D.

(source: https://rutg3r.com/wp-content/uploads/2018/11/P1_Companion_Standard.pdf)

L’aspect Controllers

On se souvient que, lors des articles précédents, la remontée des données se faisait via des “Controllers”. On créait un controller pour Jeedom et, au niveau des “Devices”, on indiquait le controller pour Jeedom.

Hélas, cette fois, cela ne fonctionne pas. On a beau créer un controller pour Jeedom, l’écran de configuration du Device “P1 Wifi Gateway” ne contient nulle part la possibilité de renseigner un controller à utiliser.

On se retrouve avec un Device comme ci-dessous où l’on remarque que la colonne Ctr (IDX) demeure vide. C’est clairement une limitation du firmware Mega et c’est bien dommage. Car, si cela avait été possible, les données seraient arrivées facilement dans Jeedom, sans avoir à écrire de script Python.

ESP8266-Devices

On branche et on teste

On peut ensuite brancher sur l’ESP8266 le capteur que l’on avait fabriqué et on peut rebrancher le tout sur le compteur ORES Sagemcom T211 (et sur le 230V pour alimenter l’ESP8266).

C’est le moment de vérifier que le capteur fonctionne. Pour cela, il suffit d’utiliser un client Telnet, comme la fenêtre terminal dans MAC.

La commande est:

telnet adresse_ip_esp8266 port

Le port dépend de la configuration du Device. Par défaut, c’est le 8088. L’adressse IP est celle de l’ESP8266 que vous avez utilisée pour vous connecter et créer le device “P1 Wifi Gateway”.

Les données du compteur ORES Sagemcom T211 apparaissent à l’écran.

ESP8266-Telnet

Dans Jeedom

On va maintenant préparer la réception des données du compteur ORES Sagemcom T211 dans Jeedom. Ces informations vont être stockées dans un équipement virtuel comme pour la solution via HomeWizard.

On récupère toujours, pour chacune de ces infos virtuelles, les ID

Maintenant que les données sont publiées sur le port 8088 et qu’on sait comment les interpréter, on peut écrire un script Python dans Jeedom pour les récupérer et les insérer dans les infos virtuelles créées à l’étape précédente. C’est le même principe qu’avec la solution HomeWizard mais le script est un peu différent.  

Voici une version du code pour ceux qui sont en Jeedom 4.1: Sagemcom pour Jeedom 4.1

Pour ceux qui sont en Jeedom 4.2, la sécurité a été changée et, par conséquent il a fallu adapter un peu l’URL pour accéder au virtuel. Le code devient donc Sagemcom pour Jeedom 4.2

Conclusions

C’est fait et je suis bien content. Car ce fût quand même long et fastidieux. Mais je suis fier de cette réussite car j’ai du creuser des heures pour débloquer chacun des problèmes. Maintenant je peux suivre ma consommation électrique et partir à la chasse au gaspillage !

39 Responses

  1. Jeff

    Encore très intéressant !! Restera à gérer (allumer / éteindre) en instantané ce qui peut l’être en fonction de la production photovoltaïque pour auto-consommer au maximum.

    • Avatar photo
      ObjetsConnectesAdmin

      Merci. Oui il restera ce morceau à gérer en effet. Et il faudra éviter les effets de bord. Car je vois que, parfois, on bascule vite du mode injection au mode consommation (en fonction du soleil : quelques nuages, momentanés parfois, changeant vite la donne).

      • Jeff

        Oui, avec le recul de l’installation de ce compteur, je me fais la même réflexion ! Il sera impossible de gérer entièrement. Des concessions seront indispensables.

        PS: juste pour info, je ne reçois pas les mails signalants les nouveaux articles et commentaires …

      • Quentin

        Merci pour cet article intéressant.

        Je pense que la meilleure façon de gérer intelligemment sa production/consommation instantanée (sans que cela coûte une fortune) passe obligatoirement par une (petite) batterie qui lissera les moments de production/consommation dû aux passages nuageux et éventuellement aussi la consommation de nuit.

        Plus la batterie sera grosse, plus le lissage pourra être long dans le temps, sans jamais prélever sur le réseau (1 jour?, 2 jours? 3 jours?). Le tout est de faire le rapport coût d’investissement/intérêt.

        Je peux tester ce fonctionnement sur mon camping car avec une batterie Lithium : lors de mauvaises journée météo, on peut tenir 2/3 jours où les panneaux ne donnent presque rien, puis en quelques heures recharger complètement les batteries quand le soleil revient.

        Avec un bon écran de suivi, on sait où on en est et on peut gérer les gros consommateurs en fonction de ce qu’il reste dans la batterie et la météo prévue.

    • Avatar photo
      ObjetsConnectesAdmin

      Merci. Oui ce câble devrait fonctionner en effet. Ensuite, il faut encore le raccorder et avoir un logiciel pour récupérer les données et les envoyer dans Jeedom. Je me souviens avoir vu une solution à base de raspberry sur lequel tournait le logiciel P1 reader.

  2. Éric D.

    Bonjour, j’ai une question pratique, je suppose que le compteur intelligent est monté à l’intérieur de l’armoire standard 25s60. Mais celle-ci est plombée, donc comment accéde-t-on au port P1 ? Le câble rj11 est pré monté ou dois-je le fournir le jour où ils montent le compteur ? Merci d’avance

    • Avatar photo
      ObjetsConnectesAdmin

      Bonjour. Sur les photos, on voit une trappe en bas à gauche. Cette trappe n’est pas plombée. Sur la seconde photo de l’article, on peut voir qu’on peut la soulever et accéder ainsi aux ports S1 et P1. Il n’y a pas besoin de prévoir de câbles lors de l’installation donc. Par contre pensez bien à leur dire d’ouvrir les ports.

      • Éric D.

        Merci de votre réponse, je vois en effet que le compteur est plombé, mais je parle de l’armoire 25S60 dans laquelle se trouve le compteur, elle est aussi plombée, en tout cas c’est le cas chez moi.
        Ils viennent monter le compteur fin septembre, je ne manquerai pas de leur demandé l’ouverture du P1. Pour info, ce sera aussi pour l’intégration dans jeedom.
        La solution C me plait bien car j’ai justement besoin d’un serveur MQTT avec cette info, qui est nécessaire pour ma future borne de recharge de voiture électrique openevse qui s’en servira pour démarrer et moduler la puissance de recharge en fonction de ma production solaire.

        • Benoit P.

          Ce compteur a été installé chez moi il y a 2-3 mois, le technicien a complètement enlevé le botier plombé dans lequel il y avait le vieux compteur pour installer le nouveau.

  3. Nathan

    Bonjour,

    J’utilise votre schéma avec un ESP32 . En faisant un simple Serial read (if available) sur le compteur puis un Serial write vers le bus USB pour afficher les données sur la console série de l’arduino IDE, j’obtiens bien des données 1x par seconde, mais celles-ci sont illisibles (garbage data). Mes 2 communications séries sont pourtant bien configurées (baudrate, data, parité et stop). D’ou pourrait provenir mon problème ?

    Bien à vous

    Nathan

    • Jean-Pierre Kuypers

      J’ai eu un problème similaire.
      Je recevais des trucs du genre :
      OOO~~~~~~~~~~~~O~~~~~~~~~~~~~~OOO~~~~~~~~~~~~~O~~~~~

      Un nouveau câble a tout réglé.

      Voir

  4. Jean-Pierre Kuypers

    À propos de « ORES demande 25 euros HTVA (tarif 2020, CWaPE) pour ouvrir le port P1/S1 (par défaut, les ports S1 et P1 ne sont pas ouverts », cela est vrai lorsqu’on demande l’ouverture après la pose du compteur. Cela demande donc une intervention spécifique et 25 euros représentent un coût patronal inférieur à une demi-heure de technicien.

    Comme conseillé par ORES soi-même, j’ai demandé que l’ouverture soit faite au moment du placement et je n’ai rien payé pour ce opération.

  5. jean-Pierre Kuypers

    Très belle synthèse qui m’aurait bien aidé, mais je ne la découvre que maintenant, cinq mois après l’installation du compteur double flux ORES.

    Mon dispositif actuel est basé sur un RPi 2B et Domoticz qui est déjà prévu pour reconnaître le port P1.

    Par ailleurs, un (petit) programme en perl, lancé par cron tous les jours à 08:01 et 18:01, m’envoie un message courriel avec les valeurs des compteurs entrée et sortie.

  6. Michaël dT

    Bonjour, super tuto merci.
    Je l’ai suivi mais… ça ne fonctionne pas chez moi. Le port P1 est bien ouvert, j’ai reproduis exactement la même chose mais lorsque je me connecte en Telnet je n’ai rien… Quand je vérifie entre GND et Rx j’ai bien une tension qui varie donc il y bien un envoie de donnée de la part de mon compteur mais je n’arrive pas à me connecter en Telnet. J’ai essayé 3 esp différent, 3 transistors, alimentation par le port P1, par le port usb, enfin j’ai tout essayé. J’arrive à me connecter à mon esp via une page web et voir la config mais en Telnet non. J’ai même ouvert un port sur mon routeur pour essayer mais rien non plus. Auriez-vous une idée ? Je désespère… Je vois que ça fonctionne chez plein de gens sauf chez moi. Seule chose que je n’ai pas essayé c’est un autre câble, j’ai un RJ12 plat pour l’instant.
    Merci d’avance.

    • Avatar photo
      ObjetsConnectesAdmin

      Bonjour. Je suis désolé mais toutes mes connaissances ont été documentées dans l’article. Il n’y a vraiment rien d’autre que je puisse dire pour vous aider. Bonne chance.

      • Michaël dT

        Bonjour, merci la seule chose c’est que j’ai essayé avec des D1 mini. Je vais acheter le même que vous et voir si ça fonctionne. C’est la seule chose qui pourrait peut-être tout changer.

  7. Alain

    Bonjour,
    Ores m’a remplacé aujourd’hui mon compteur électrique défectueux par un communicant.
    J’ai lu cette histoire des 30€ mais je vois sur l’écran le témoin GP qui indique que la fonction a été activée. Tant mieux. Note: c’est une maison et je suis le propriétaire.
    A propos des connecteurs sur le site d’Ores:
    La fréquence de transmission du Port P1 est de 1 mesure par seconde et la communication sérielle (RS422) répond à la norme IEC13239. Tandis que la fréquence de transmission du Port S1 varie entre 2.000 et 4.000 données par seconde, la communication sérielle (RS422) répond également à la norme IEC13239.
    Tous les deux sont connectés via des câbles RJ12.
    Une photo du compteur:
    https://1drv.ms/u/s!AoxDdvCuKz7Rhb1hA8i9esKaMDRErQ?e=yvH0kS

  8. Christian Acacia

    Bonjour,
    Le 20/10 on m’a changé l’ancien compteur Sibelga par un nouveau compteur intelligent.
    J’ai connecté au port P1 l’appareil de mesure « Moniteur d’ Énergie Wi-Fi HomeWizard – Compteur P1 » disponible sur Bol.com à 49,99. L’application donne en temps réel toutes les mesures disponibles sur le compteur Sibelga (In/Out) ce qui permet directement de gérer le meilleur moment pour lancer une activité qui consomme.
    J’y ai associé 4 prises connectées Antela Smart Plug que je peux mettre On/Off à distance. L’application Smart Life qui les gère peut même ne les ouvrir que quand on est en mode injection…càd idéalement pour augmenter l’autoconsommation.
    Mon seul problème pour le moment est que je ne sais pas si je peux connecter deux applications pour prendre les infos d’un seul lecteur P1…l’une pour lire et m’informer, l’autre pour détecter l’injection…

    • Avatar photo
      ObjetsConnectesAdmin

      Bonjour. C’est en effet ici que l’on se rend compte de la grande utilité d’une box domotique comme Jeedom. On y centralise tous les objets et toues les données. On peut donc à la fois voir les mesures P1, notifier et déclencher, au besoin, d’autres appareils (comme des prises de courant)

  9. Sylar

    Bonjour, merci pour vos informations et jaimerai savoir comment intégré votre solution selon le plan C , j’ai fait l’acquisition d’une smartgateway lorsque je l’alimente directement sans la branché au port P1 elle fonctionne bien en wifi , lorsque je branche sur le port P1 en direct , plus de wifi disponible , peut être la cause j’ai pas de Mqtt configuré ?
    merci d’avance

  10. Thierry

    Milles mercis pour le schéma électronique avec l’ESP. Pour le reste, je passe par ESP-Link avec un truc à ma sauce, mais ca m’a vraiment permis de me démer…er. MILLES MERCIS, génial !

  11. Stephan

    Hello,
    En ce moment, je suis en train de développer un firmware DIY pour l’ESP qui permettra de lire ce compteur et d’envoyer les données via MQTT. Chaque topic MQTT aura comme sujet le numéro de compteur (par exemple : 1.8.0) et comme payload la valeur de ce compteur.
    Si cela t’intéresse toujours, je peux te tenir au courant.

    • Avatar photo
      • Stephan

        Hello,
        Comme je l’ai promis, je suis de retour avec un nouveau firmware à installer sur un ESP8266 à l’aide de l’Arduino IDE.
        Ce firmware est conçu pour être utilisé avec un ESP-01, mais il peut également être utilisé avec d’autres modules basés sur ESP8266.
        Je tiens à te remercier pour le schéma de câblage sur lequel je me suis inspiré.
        Le firmware peut être téléchargé ici : https://github.com/SNatis/T211-MQTT-Bridge

        En tout cas, cela fonctionne sans problème depuis deux semaines chez moi et les données sont correctement récupérées dans Jeedom.
        Voici une photo du circuit sur mon compteur : https://ibb.co/ZS0pWbv

  12. POULIN Bernard

    Bonjour,
    excellentes informations.
    Question STP : les données Tension, courant, puissance active/réactive, facteur de puissance sont-elles accessibles sur les différents outils ? (et ce, sur les 3 phases en triphasé) ?
    En effet, selon la norme EN50160, les niveaux de tension maxi (10 %) sont de 257 V CA en plan de tension harmonisé européen.
    Or les décrochages systématiques de nos onduleurs sont liés à des surtensions (distribution transfo local).
    Il est donc nécessaire de prouver ces surtensions en cas de litige (dangerosité de vieillissement des composants).

    Merci pour ton retour – très attendu !

    Bernard

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.