Trois capteurs PZEM-004T pour mesurer la consommation électrique triphasée dans Jeedom

Classé dans : Capteur, Jeedom | 16

Une tentative de mesure de consommation électrique.

La première idée que j’avais eue pour mesurer ma consommation électrique était un détournement du capteur infrarouge TRCT5000 afin de capter les impulsions, que je croyais infrarouges, émises par certains compteurs électriques. L’essai n’avait pas été du tout concluant.

J’ai, à la maison un compteur Landis+Gyr Dialog ZMD 310. Ce compteur fait partie de ce qu’on appelle les compteurs intelligents (smart meter) avec lesquels on peut dialoguer. Hélas, livré enfermé dans un coffret scellé par le gestionnaire de réseau (ORES), cela limite fortement ce qu’on peut y connecter. On n’a en effet accès à rien du tout, même pas la liaison optique en haut à droite.

Compteur d'électricité Landis+ Gyr Dialog

J’ai contacté ORES, le gestionnaire belge de réseaux de distribution, pour connaître les possibilités de connexion à un compteur intelligent ou d’installation d’un nouveau compteur. J’ai en effet lu, sur le forum https://community.jeedom.com/t/smartmeter-avec-port-p1/15986/7 un possible déploiement en cours de compteurs intelligents Linky et/ou Sagecom. Deux mois plus tard, cinq emails envoyés et une plainte pour non-réponse déposée chez ORES, je n’ai eu aucuns retours de leur part. Et puis, fin décembre, ORES a enfin planifié l’installation d’un compteur intelligent T211 triphasé Sagecom pour fin janvier 2021. Après des jours de recherche, j’ai finalement réussi à l’intégrer dans mon Jeedom, ce que j’expliquais dans cet article-ci.

Sinon, en l’absence d’un compteur intelligent, la seule option possible restante était d’utiliser des pinces ampèremétriques et des capteurs pour les gérer. J’avais d’ailleurs réalisé un premier essai avec un seul ESP8266 et un seul capteur PZEM-004T et cet essai était concluant. Il n’y avait plus qu’à étendre la solution.

Ayant un compteur triphasé 230V sans neutre, j’ai donc maintenant besoin d’installer trois pinces ampèremétriques : une sur chacune des phases et d’utiliser un contrôleur ESP8266 pour remonter l’information en WIFI dans ma box domotique Jeedom.

L’installation proprement dite.

Pour la préparation du contrôleur ESP8266 et des capteurs PEZM-004T, je vous renvoie vers l’article précédent : https://www.objetsconnectes.be/2020/06/14/pzem004t-jeedom-espeasy-compteur-electrique/.. On peut très simplement reproduire trois fois ce qui est expliqué dans cet article (une fois par fil de phase) et calculer, dans Jeedom, la consommation totale.

Si vous souhaitez par contre n’utiliser qu’un seul micro-contrôleur ESP8266 pour gérer les trois capteurs PZEM-004T (au lieu d’un ESP8266 par PZEM-004T), c’est possible aussi moyennant quelques adaptations que je vais expliquer.

Les branchements des câbles

Côté 230V, les branchements ne changent pas pour les PZEM-004T. Si vous avez, comme moi, du triphasé 230V sans le neutre, alors vous pouvez utiliser les deux mêmes fils pour alimenter les trois capteurs PZEM-004T. Inutile d’essayer d’alimenter chaque capteur PZEM-004T avec des phases différentes, cela ne servirait à rien.

Pour le branchement des pinces ampèremétriques, rien ne change non plus. On continue de brancher une pince par capteur PZEM-004T.

PZEM-004T-Branchement Coté 230V

Côté basse tension, il y a par contre du changement. Il faut brancher les capteurs PZEM-004T en série, c’est à dire raccorder les broches des trois PZEM-004T et celle de l’ESP8266 ensemble. On le fait quatre fois, une fois pour chacune de ces 4 broches : Tx, Rx, GND et 5V. On branche donc les 4 Tx ensemble, les 4 Rx ensemble et ainsi de suite.

PZEM-004T-Branchement Coté basse tension

Le plus compliqué, finalement, c’est d’arriver à trouver la place dans le compteur pour installer une pince sur chaque phase. Dans mon compteur, les phases arrivent en haut à droite et l’espace est relativement compté. Il a fallu pousser un peu tout cela pour arriver à en mettre les trois pinces ampèremétriques.

PZEM-004T-Coffret

A noter, pour la complétude du propos, on trouve en bas deux autres pinces afin de suivre la production de mes panneaux photovoltaïques avec, cette fois, une solution Flukso et MQTT.

L’installation des appareils dans une boite étanche IP55

Concrètement, pour placer mon NodeMCU ESP8266 et les trois PZEM-004T, j’ai acheté une grosse boite étanche IP55 sur Amazon et j’ai installé le tout à l’intérieur.

Voici ce que cela donne. Note: il y a deux NodeMCU ESP8266 car j’utilise le même boitier pour un capteur inductif LJ18A3 branché sur le compteur d’eau.

PZEM-004T-Mon boitier avec NodeMCU et PZEM

Pour les fixations, j’ai simplement utilisé de la colle pour coller les PZEM-004T dans la boîte. J’ai également utilisé, pour la basse tension, ce qu’on appelle un breadboard (collé également). Cela simplifie les branchements :

  • L’alimentation 5V arrive sur l’ESP8266 via le port micro-usb. Un petit transformateur 5V, comme ceux utilisé pour charger un GSM, est branché sur le 230V en dehors de la boite. Cette alimentation 5V est ensuite amenée sur le breadboard via deux câbles qui partent des PIN Vin et GND de l’ESP8266 vers les lignes “+” et “-” du breadboard
  • A partir des lignes “+” et “-” du breaboard, on alimente chaque PZEM-004T (ce sont les câbles en haut à droite du breadboard)
  • Les câbles Tx et Rx, jaune et rouge, relient les Tx et RX des PZEM-004T avec le Tx et Rx de l’ESP8266 via le breadboard également

La configuration des PZEM-004T

Si vous avez installé un ESP8266 par PZEM-004T, l’article précédent explique comment configurer les capteurs PZEM-004T via l’interface web de l’ESP8266 https://www.objetsconnectes.be/2020/06/14/pzem004t-jeedom-espeasy-compteur-electrique/. 

Si vous avez choisi la méthode de cet article avec un seul ESP8266 et trois PZEM-004T comme branché ci-dessus, il y a une petite complication. Il faut attribuer à chaque PZEM-004T une adresse différente. Car, par défaut, elles ont toutes les trois la même adresse (1) et les trames de communication vont entrer en collision, ce qui donnera des mesures “NaN” au lieu des valeurs.

Voici comment, dans les grandes lignes, il faut procéder :

  • 1. Installer sur son PC/MAC les drivers qui permettent d’utiliser un port USB au lieu d’un port série (souvent devenu inexistant sur les nouveaux PC) pour communiquer avec les PZEM-004T. Ce sont les drivers PL2303 Windows Driver Download USB to UART RS232 Serial. Avec Windows 10, vous aurez peut-être un problème de reconnaissance de ces drivers qui seront affichés comme obsolète. Une solution de contournement existe et est expliquée ici : http://wp.brodzinski.net/hardware/fake-pl2303-how-to-install/
  • 2. Télécharger le software de communication qui permet de communiquer avec les PZEM-004T au travers de son PC/MAC via le port USB: http://www.mediafire.com/file/lk5wukg2v5n5iry/004T_software%252Bdriver%252Buser_manual.zip/file . Pour la version Windows, il faut bien lire le mode d’emploi dans le fichier “the user manuel of software.txt”. Pour lancer l’application, il faut cliquer avec le bouton droit et choisir “run as administrator”. Simplement double-cliquer sur le fichier run.bat ne fonctionnera pas car il faut les permissions administrateurs pour enregistrer les fichiers .ocx  

On branche ensuite une PZEM-004T sur le port USB du PC/MAC. Dans le software PZEM014 Master, on choisit tout d’abord le port de communication (via le bouton “Set COM Port”. Logiquement les drivers ont permis de transformer un port USB en port série utilisable ici). Si vous avez choisi le bon port et que vous avez branché une PZEM-004T, vous devriez alors avoir des valeurs de tension, de courant, de fréquence,… qui s’affichent. Si pas, c’est probablement que le port COM n’est pas le bon ou que les drivers ne fonctionnent pas.

image

On peut maintenant cliquer sur “Set Parameters” et régler l’adresse de la PZEM-004T. Il faut choisir, pour chaque PZEM-004T, une adresse différente (et retenir cette adresse car elle sera utilisée dans la configuration du plugin ESPEasy).

Après coup, je pense qu’il y a plus simple mais je ne l’avais pas vu et, du coup, je ne l’ai pas testé. Dans le firmware EspEasy, le dévelopeur Djelau a eu l’intelligence d’ajouter ce qui semble être une fonctionnalité pour régler les adresses des PZEM-004T. On se connecte donc sur l’ESP8266 installé et configuré comme expliqué dans l’article précédent et on voit, au niveau des PZEM actions, qu’on peut choisir “Program adress”. Je suppose qu’il suffit de brancher une seule PZEM-004T à la fois (important : ne pas brancher les trois PZEM-004T pour cette fonctionnalité), de choisir le mode “Program_adress”, de choisir l’adresse dans “Address of PZEM” et puis de cliquer sur le bouton “Submit”. L’adresse de la PZEM-004 devrait alors être changée. A tester toutefois.

PZEM-004T-Set Address

Après vos tests, je vous conseille de réinitialiser votre consommation d’énergie avec cette commande:

http://192.168.0.1/control?cmd=resetenergy,2 où il faut remplacer 192.168.0.1 par l’adresse de votre NodeMCU et le ,2 par ,adresse de la PZEM.

La configuration de l’ESP8266 et dans Jeedom

La configuration de l’ESP8266 et la remontée dans Jeedom a déjà été expliquée dans l’article  https://www.objetsconnectes.be/2020/06/14/pzem004t-jeedom-espeasy-compteur-electrique/. La seule chose qui diffère, avec trois PZEM-004T branchées comme ici, c’est qu’il faut bien penser à indiquer les adresses configurées pour chaque PZEM-004T.

Si tout fonctionne correctement, vous devriez maintenant voir toutes les mesures des trois capteurs dans l’ESP8266 :

PZEM-004T-Devices

Même chose dans Jeedom

Les limitations du système

1. La précision de la mesure

Le système n’est pas parfait. Il y a tout d’abord les limitations inhérentes à tout capteur : sa précision. Pour les PZEM-004T, les précisions annoncées par le constructeurs sont celles-ci:

PZEM-004T - Précision de la mesure 1

PZEM-004T - Précision de la mesure 2

La mesure ne sera donc jamais parfaite.

2. Le facteur de puissance cos phi, la puissance apparente et la racine de trois

Il y a ensuite la complexité liée à la différence entre puissance apparente et puissance réelle. C’est là qu’intervient le facteur de puissance cos phi, une valeur mesurée par les pinces ampèremétriques. Ces notions sont complexes pour un non électricien. On peut résumer et simplifier en disant qu’il y a plusieurs puissances telles qu’illustrées sur ce schéma de wikipédia:

Diagramme complexe de la puissance en régime alternatif :

Puissance active (P, en watts (W)) = U (tension) * I (courant) * Cos Phi
Puissance réactive (Q, en voltampères réactifs (VAr)) = U (tension) * I (courant) * Sin Phi
Puissance apparente (S, en voltampères (VA)) = U (tension) * I (courant) 

Les compteurs électriques en Belgique et pour les particuliers, mesurent la consommation relative à la puissance active, c’est-à-dire le P sur le schéma ci-dessus. Il faut donc, pour s’aligner avec les mesures du compteur électrique, utiliser le Cos Phi.

Mais, et tant mieux, la puissance calculée par la PZEM-004T est justement la puissance active.

Par contre, il y une chose dont il faut tenir compte, selon son installation électrique, comme expliqué ici : https://energieplus-lesite.be/mesures/energie-et-consommations2/mesurer-la-consommation-electrique/#La_mesure_via_une_pince_amperemetrique

PZEM-004T-Mesure en triphasé

La PZEM-004T calcule la puissance comme ceci : P = U * I * cos phi. On peut vérifier le calcul sur base des données brutes. P = 236,8 * 2,65 * 0,81 = 508,29 (je suppose que la différence avec les 508,6 sont une histoire d’arrondis).

Screen Shot 2020-07-08 at 06.55.09

Toutefois, vu que mon installation est en triphasé 230V sans neutre, j’ai un facteur racine de trois en trop. Il faut donc que je divise, dans Jeedom, la mesure de puissance par racine de trois pour trouver la vraie puissance consommée telle que mesure par le compteur électrique de mon gestionnaire de réseau.

3. Le sens du courant et les panneaux photovoltaïques

Une pince ampèremétrique ne connait pas le sens du courant. Elle mesure un courant qui passe dans le conducteur mais ignore si le courant vient du réseau ou s’il est injecté sur le réseau. Si vous avez des panneaux photovoltaïques et que, lors d’une belle journée ensoleillée, vous produisez plus que vous ne consommez, du courant est réinjecté sur le réseau. La pince ampèremétrique, quand elle est placée à la sortie du compteur, ne le sait pas. Elle va donc croire que c’est du courant consommé et va additionner votre production à votre consommation. Les chiffres sont alors complètement faux. Si vous avez un système de production d’électricité, cette solution ne fonctionnera pas.

Mais un internaute a visiblement trouvé la solution en commentant sur mon blog. Son idée me semble excellente. Je cite donc Damien:

pour mesurer la consommation électrique quand des panneaux photos-voltaiques sont presents, il suffit de passer aussi le cable venant de l’onduleur des panneaux dans la pince amperemetrique, a cote du cable venant du reseau .
Le principe est “d’annuler” le courant provenant des panneaux, il passe une fois dans la pince dans un sens en venant de l’onduleur, il repasse dans l’autre sens en repartant vers le reseau electrique, son effet est nul donc
Attention au sens relatif des deux cables !!!
De cette facon on mesure la consommation électrique totale : la somme de l’energie electrique venant du reseau et celle venant des panneau

je l’ai fait chez moi et je confirme que cela fonctionne tres bien, dans tous les cas de figure.
cela donne la consommation électrique reelle de la maison, pas la consommation réseau nette qui sera facturee par le gestionnaire de réseau.
L’idéal est de faire un schéma et de conceptualiser.
la pince mesure la somme des courants de l’onduleur et du réseau :
Deux cas de figure extremes :
+ les panneaux ne produisent rien, toute l’energie consommee vient du reseau, c’est bien cela que l’on va mesurer. OK
+ les panneaux produisent et rien n’est consomme, tout est reinjecte dans le reseau. le courant produit passe une premier fois dans la pince, de l’onduleur vers l’installation, et repasse une deuxieme fois mais dans l’autre sens, de l’installation vers le réseau, donc l’effet mesuré par la pince est nul.
Toute autre situation (courant produit partiellement reinjecte) n’est qu’une combinaison linéaire des 2 cas extremes, donc le raisonnement est toujours appliquable, le courant reinjecte n’est jamais mesure.

il faut par ailleurs mesurer aussi la production de l’onduleur, mais soit elle est fournie par l’onduleur, soit il faut un autre systeme de mesure base sur des pinces amperemtriques, mais la c’est plus trivial puisque le courant ne peut passer que dans un sens.

En soustrayant la production des panneaux de la consommation réelle mesurée comme expliqué ci-dessus, on obtient la consommation (facturée) réseau nette.

 

Conclusions

Beaucoup parlent de compteur intelligent et du port P1. En Belgique, ORES a débuté en 2021 son déploiement et ce sera l’objet d’un article futur. Cette solution de compteur intelligent a toutefois un coût : comptez plus de 200 euros. Mais c’est une solution qui fonctionne très bien et dont je suis ravi.

Si vous n’avez pas de panneaux photovoltaïques, cette solution à base de trois pinces ampèremétriques vous permettra d’avoir une mesure assez proche de la réalité pour pas trop cher. Idem pour ceux qui n’ont pas la possibilité de faire installer un compteur intelligent.

16 Responses

  1. david

    Salut,
    je t’avais contacté pour te signaler que j’utilisais un PZEM en 3v mais j’ai à présent un soucis.
    Apres avoir pas mal galéré pour mettre en place 2 capteurs PZEM dans ESP_Easy, ca fonctionne mais malheureusement dans jeedom impossible d’inclure les 2 capteurs, seul le premier est reconnu. Aurais tu une idée?

    • Avatar photo
      ObjetsConnectesAdmin

      Salut. Peut-être réessayer la suppression dans Jeedom et puis la reconfiguration / réinclusion. De mon côté, j’ai les trois capteurs dans Jeedom pour les 3 PZEM sur le même ESP8266. Bonne chance.

  2. david

    Tu as bien créé un seul controleur das ESPEASY? avec la ligne qui va bien dans Controller Publish: device=%sysname%&taskid=%id%&cmd=%valname%&value=%value%

  3. chris

    bonjour
    j’ai lu tes 2 descriptions pour installer des PZEM004T et monophasé et triphasé, et c’est une vraie mine d’informations !!
    le tri: c’est que m’intéresse.
    j’ai une installation similaire à la tienne: tri+photovoltaïque de 500Wc et je veux faire de autoconsommation..mais je n’ai pas encore tout le matériel de routage du surplus. Ma consommation permanente est de env 150/180Wh et donc les beaux jours je produits trop.
    en France, le linky voit 2 choses distinctes: ce qui est consommé (sur chaque phase, je peux lire les valeurs instantanées en VA et kWH cumulés) et ce qui est remis sur le réseaux (injection en kWh) et pour cela il faut faire un dossier avec un contrat que je ne veux pas!
    donc je dois faire un montage routeur et le PZEM004T m’intéresse beaucoup.
    ce que je ne comprends pas, c’est que tu dis que le capteur ne voit pas le sens du courant entre réseau/maison et inverse, pourtant avec d’autres installation (capteur stc013 avec sa petite fleche du sens montage+arduino) il semble qu’on voit le sens de transfert de l’énergie.
    est ce que mon idée “”de mettre 4 PZEM : 1 sur chaque phase et 1 sur le fil venant de l’onduleur. puis programmer le arduino/ou ESP8266 ou autre , pour surveiller la production et la consommation et si trop de production activer une sortie variable sur variateur et alimenter une résistance pour délester le surplus de production solaire, et éviter l’injection réseau”” te semble correcte ou il y a un truc que je ne comprends vraiment pas?
    puis si ça me convient de continuer éventuellement sur une domotique

    • Avatar photo
      ObjetsConnectesAdmin

      Salut. Merci pour ton message. Tu peux tout d’abord mettre des pinces en sorties de tes onduleurs. Tu auras au moins la production.
      Chez moi, j’ai ensuite mis des pinces au niveau de mon compteurs. Mais ces pinces (une par phase) font en fait la somme entre ce qui est prélevé du réseau et ce qui est injecté. Or, c’est un sens différent et l’un devrait compenser l’autre, du moins partiellement. Et ces pinces ne mesurent pas l’autoconsommation car l’autoconsommation semble aller directement des panneaux vers le lieu d’utilisation sans vraiment repasser par le compteur. C’est en tout cas ce qu’il me semble, sur base de mes observations.

      Si tu lis les commentaires sur cet article, tu verras que Damien Collart semble avoir trouvé une façon de mesurer correctement. Je pense que ca devrait fonctionner mais à creuser.

      Bonne chance

  4. sango74

    Bonjour,
    Petite question j’ai un Lave Linge et un Sèche ligne sur 2 circuit séparer qui arrive a mon tableau, est t’il possible de prendre les 2 phase au tableau sur la pince ? est-ce que j’aurai un cumule des 2 phases ou est-ce qu’il va prendre le fils ou il y a les plus de courent quand passe ?

    J’ai la même opération entre un frigo et un congélateur et le Four ainsi que les Plaques de cuisson, si je peux mettre 3 pinces au lieu de 6 cela m’arrangerai quand même beaucoup

    Merci

  5. alaindefrance

    bonjour, merci pour cet article… concernant la réponse de damien, il y a une chose que je ne comprends pas concernant la mesure du sens du courant pour éviter de réinjecter…existe il un schéma de cette installation ?
    merci

  6. Bberny

    Bonjour,
    J’ai deux PZEM, est-il possible de les connecter sur un ESP32 ? en HardwareSerial ?

  7. Jeff

    “Après coup, je pense qu’il y a plus simple mais je ne l’avais pas vu et, du coup, je ne l’ai pas testé. ”

    Si cela peut-être utile, je confirme que ça fonctionne très bien directement sur la page Web de l’Esp. Il suffit d’ajouter UN SEUL pzem dans les Device et les raccorder successivement, un seul à la fois et changer l’adresse puis bien valider (1, puis 2 et ensuite 3 chez moi). J’ai aussi changé l’IDX selon le numéro d’adresse (je sais pas l’intérêt mais ça fonctionne). Et enfin, dans la partie “Values”, j’ai renommé en ajoutant à chaque ligne des 1, 2 ou 3 selon le numéro du PZEM.

    Sinon je ne trouve pas …. Auriez-vous la formule à appliquer pour calculer la consommation d’un disjoncteur en triphasé 400 ? Merci 🙂

  8. Jeff

    Bonjour,

    Je cherche à historiser quotidiennement (mensuellement, annuellement) la conso totale d’un ESP8266 mais je n’y parviens pas. Je vois le plugin conso dans Jeedom mais les commentaires évoquent souvent des estimations sur la durée d’allumage et de la puissance de l’appareil derrière. Hors avec l’ESP on est exact.

    Le plugin correspond à mon besoin ou il y a un moyen plus simple ? Merci !

  9. Brib

    Pour du vrai modbus on s’attendrait plutôt à trouver les indications A/B ou D+/D- au lieu de RX et TX sur le PZEM.
    Faut-il brancher le TX du contrôleur sur le RX du PZEM ou le TX sur le TX comme cela semble indiqué dans l’article ?

    Dans les 2 cas, je n’ai pas la moindre oscilliations visible à l’oscillo sur l’autre canal en scannant les 126 adresses de slaves. Comme j’ai 4 PZEM et peut-être déjà grillé 2 avec tous ces essais, ça m’intéresse de savoir comment vous avez branché vos PZEM v3.

    • Avatar photo
      ObjetsConnectesAdmin

      Bonjour. Si vous utilisez un oscillo, vous avez clairement plus de connaissances que moi 🙂
      J’ai en effet branché comme dessiné dans l’article. Je pense qu’il était important de bien attribuer une adresse différente à chaque PZEM.
      J’ai vraiment écrit tout ce que je savais sur le sujet dans cet article (et les autres du site parlant des PZEM). Je ne saurais pas vous aider plus. Désolé.

      • Brib

        Merci de votre réponse, il faut effectivement brancher le TX du contrôleur sur le RX des PZEM et vice versa.

        Voici les soucis que j’ai rencontrés et qui m’empêchaient de communiquer:
        – On peut tout brancher en 3.3V mais la puissance doit être suffisante, par exemple le pin 3V3out (pin 36) d’un rasperry pico a une puissance insuffisante pour alimenter le PZEM. Le pico ne plante pas mais le PZEM reste muet.
        – Il faut aussi obligatoirement alimenter en 230V pour que le PZEM réponde. Il n’est pas possible de sans brancher l’AC ! C’est aussi nécessaire si on alimente le PZEM en 5V.
        – Enfin, le CRC de la requête doit être en little endian (contrairement à ce qui indiqué dans la documentation). Le PZEM ne répond à son adresse spécifique que si le CRC en little endian est correct (Sauf pour l’adresse spéciale 0xF7, dans ce cas le CRC est ignoré)

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.