[TUTO] Module Gazpar pour ESPEasy

En collaboration avec scotty92fr nous avons réalisé/testé/utilisé ce module pour récupérer la consommation de Gaz, dans la même optique que le module Wifinfo.
A savoir:

  • En Boîtier rail DIN
  • Alimentation sur secteur (230VAC)
  • led de visualisation des impulsions.
  • Transmission par Wifi
  • Utilisation du Firmware ESPEasy avec le plugin ESPEasy de Lunarok pour Jeedom.

La tache n’était pas simple!
Scotty92fr pas trop fort en électronique et moi je n’ai pas de compteur Gaz !
Bref on a tâtonné, fait plusieurs montages et d’après scotty92fr qui l’utilise depuis avril/mai on est arrivé à quelque chose de stable.

Tout d’abord, le module n’est utilisable que sur les nouveaux compteurs gaz (jaune) disposant
d’une sortie impulsion (une impulsion tous les 10dm3).

cette sortie demande un connecteur particulier que l’on trouve sous la référence
SCHNEIDER EER31130
Mais j’ai vu circuler sur le net un raccordement par câble dupond…sans doute moins fiable !

Schéma du module
Après quelques tests, l’option Opto a été retenu, sans lui des impulsions supplémentaires arrivent d’on ne sait où !
Surtout que le device Pulse Counter n’est pas simple à maîtriser sous ESPEasy.


La sortie impulsion déclenche la led de l’opto qui elle déclenche le gpio d1.
Sur le PCB, j’ai rajouté (activé ou non par jumper) une résistance pull up sur D1 mais je crois qu’elle n’est pas utilisée…(à confirmer par scotty92fr).

Les composants:

  • un wemos D1 mini (programmé)
  • un boitier CP-Z-106-ABS
  • un opto EL817
  • R1:330 Ohm 1/4W
  • R3:10K Ohm 1/4W (résistance Pull up si besoin)
  • R2:1K Ohm 1/4W
  • une led rouge
  • D10: 1N4148
  • un condensateur 220µF (filtrage).diamètre 6.3mm
  • deux condensateurs 47µF (filtrage). hauteur max 8mm
  • un condensateur 100nF.
  • une alimentation HI-LINK 230VAC/5VDC HLK-PM01
  • un connecteur Adam tech EB147-02-M ( pas de 7,5mm) côté 230VAC
  • un connecteur Adam tech EB147-02-D (pas de 5,08 ou 02-C pas de 5mm) côté TI


Montage terminé avant la mise en boîtier.

Programmation du Wemos
Le Wemos est flashé avec une des versions ESPEASY (mega-20200426 pour les tests)
les sources sont ici: Releases · letscontrolit/ESPEasy · GitHub

Après avoir récupéré et dézippé ESPEasy_ESP82xx_mega-xxxxxx (zip)
Le dossier ouvert doit correspondre à ça.

Sous Windows nous utiliserons le programme FlashESP8266.exe

Mais avant il nous faut copier le fichier binaire se trouvant dans le dossier " bin" à la racine du dossier.
J’ai choisi le fichier binaire normal 4M qui convient très bien au Wemos.

La procédure est simple:

  • Brancher le Wemos avec le cable USB sur le PC (vérifier dans le gestionnaire de périphériques que le Port COM est bien reconnu)

  • Lancer le programme FlashESP8266.exe

  • Sélectionner le fichier binaire…normalement le port doit être sélectionné.

  • Cliquer sur Flash pour lancer la programmation du Wemos.

Après avoir une fenêtre " Flash Complete" ouverte…c’est fini ! (ou presque!)

Configuration avec ESPEasy

Maintenant que le Wemos est flashé, il nous faut lui attribuer une IP (c’est votre box qui va s’en charger) pour l’instant il se trouve (après un reset) en Mode AP (point d’accès) que vous devrez découvrir avec votre smartphone dans les réseaux Wifi disponibles.

donc:

  • Se connecter au réseau ESP-Easy

  • Mot de passe configesp

  • Ouvrir (si ce n’est pas automatique) la page 192.168.4.1

  • Renseigner votre réseau Wifi et son mot de passe et après 20sc l’IP doit apparaître ou la page du menu ESPEasy.


Votre Configuration ESPEasy est maintenant accessible sur votre réseau à l’adresse
192.168.31.18 (pour moi)

Aller sur le Menu " Tools" puis " Advenced"
cocher:

  • Rules
  • Use NTP
  • DST
    renseigner " 60" dans " Timezone Offset"

Valider par " Submit"

Dans le menu Config
Attribuer un N° " Unit Number"
Vérifier que votre Wemos est bien à l’heure " Local Time"

Dans le menu Controller

  • Cliquer sur Add
  • Choisir le protocole " Generic HTTP"
  • renseigner " Controller IP" avec l’IP de votre Jeedom
  • renseigner " Controller Port" avec 8121
  • renseigner " Controller Publish avec
    device=%sysname%&taskid=%id%&cmd=%valname%&value=%value%
  • Valider " Enabled" puis " Submit"
    Votre Wemos est maintenant prêt à communiquer avec votre Jeedom.
    Bien sur le plugin ESPEasy doit être installé et en fonction.Pour l’instant aucun " équipement" sera présent. Pour que l’équipement soit créé, il faut être en mode inclusion ET que celui-ci envoie des données.

Encore une dernière chose ! Le module utilise le gpio5 (d1) qui est normalement attribué au port I2C.
Vous allez devoir modifier dans le Menu " Hardware" l’attribution des gpio (I2C) SDA et SCL, choisir " None"

Vous pouvez maintenant aller dans le menu " Device" pour choisir votre premier device

  • Cliquer sur " Add" de la première ligne puis sélectionner " Generic - System Info"
  • Renseigner un Nom « Wifi »
  • Cocher « Enabled »
  • « Single » dans " Number Output Values"
  • Wifi RSSI dans " Value 1"
  • Cocher " Send to controller"
  • 30 (sc) dans " Interval "
  • Enregistrer par " Submit"
    Maintenant toutes les 30sc une valeur est envoyée sur Jeedom.
    donc votre équipement doit apparaître dans jeedom (plugin Espeasy en mode inclusion)
    Ce Device ne sert qu’à configurer votre équipement plus facilement dans Jeedom puisque les valeurs sont envoyées automatiquement.

Passons maintenant à la configuration des différents Devices.

Tout la configuration a été faite par scotty92fr.
La version ESPeasy utilisée (ça fonctionne certainement avec d’autre version d’ESPEasy, mais le device Pulse counter a eu de nombreuse modifs)


Vous remarquerez que « Send to Controller » n’est pas coché.
scotty92fr utilise SendToHTTP pour récupérer les infos, nous le verrons dans le paragraphe Rules assez conséquent !


Le deuxième device est un Dummy (un device factice )


Le troisième nous indique la puissance du Wifi afin d’avoir une information régulière.

Pour facilité la configuration, le respect des nom/value/ordre des devices est primordiale sinon, toutes les rules sont à modifier en fonction de votre configuration.

LES RULES

Rule Set 1:
On System#Boot do //s’execute au boot
timerSet,2,30
endon

On WiFi#Connected do //s’execute à la connexion WIFI
if [Compteur#indexreleve]=0
SendToHTTP
192.168.xx.xx,8121,/plugins/espeasy/core/api/jeeEspeasy.php?apikey=ApiKeyxxxxxxx&device=ESPGazp
ar&taskid=0&cmd=init&value=1
timerSet,3,60
Endif
endon

on Gpio#Count do //s’execute lors d’une impulsion
TaskValueSet,2,1,[Compteur#indexreleve]+[Gpio#Total]/100
endon

On Rules#Timer=2 do //toute les 30s vérification si l’index a déjà été envoyé à jeedom sinon il l’envoi
if [Compteur#indexcalcule]=[Compteur#Envoi]
else
SendToHTTP 192.168.xx.xx,8121,/plugins/espeasy/core/api/jeeEspeasy.php?apikey=ApiKeyxxxxxxx
&device=ESPGazpar&taskid=0&cmd=indexcalcule&value=[Compteur#indexcalcule]
TaskValueSet,2,3,[Compteur#indexcalcule]
Endif
timerSet,2,30
endon

On Rules#Timer=3 do // demande d’initialisation de l’index si =0
if [Compteur#indexreleve]=0
SendToHTTP 192.168.xx.xx,8121,/plugins/espeasy/core/api/jeeEspeasy.php?apikey=ApiKeyxxxxxxx
&device=ESPGazpar&taskid=0&cmd=init&value=1
timerSet,3,60
Endif
endon

on clean do // nettoyage
TaskValueSet,2,1,0
TaskValueSet,2,2,0
endon

on compteur_reel do // modification de l’index du compteur envoyé par jeedom
TaskValueSet,2,1,%eventvalue%
TaskValueSet,2,2,%eventvalue%
ResetPulseCounter,1
SendToHTTP 192.168.xx.xx,8121,/plugins/espeasy/core/api/jeeEspeasy.php?apikey=ApiKeyxxxxxxx
&device=ESPGazpar&taskid=0&cmd=releve&value=[Compteur#indexreleve]
SendToHTTP 192.168.xx.xx,8121,/plugins/espeasy/core/api/jeeEspeasy.php?apikey=ApiKeyxxxxxxx
&device=ESPGazpar&taskid=0&cmd=indexcalcule&value=[Compteur#indexreleve]
timerSet,2,30
endon

on refresh do
SendToHTTP SendToHTTP
192.168.xx.xx,8121,/plugins/espeasy/core/api/jeeEspeasy.php?apikey=ApiKeyxxxxxxx
&device=ESPGazpar&taskid=0&cmd=releve&value=[Compteur#indexreleve]
SendToHTTP SendToHTTP
192.168.xx.xx,8121,/plugins/espeasy/core/api/jeeEspeasy.php?apikey=ApiKeyxxxxxxx
&device=ESPGazpar&taskid=0&cmd=indexcalcule&value=[Compteur#indexreleve]
endon

l’adresse IP et l’Apikey est bien sur à modifier en conséquence.

SUR JEEDOM
En mode Inclusion votre module va rapidement apparaitre.


Le module est maintenant présent, les infos devraient apparaitre en fonction des envois.

Trois commande actions sont créés « event » (évènement)
val
refresh
clean

Sur l’ESP, les données ne sont pas stockées, c’est jeedom qui s’en charge.

3 « J'aime »

Beau boulot !

Encore un beau projet! Merci à toi pour l’aide que tu fourni.

Curieux de voir ça!
Tu pense qu’on pourrait lire une valeur de PWM en provenance d’un appareil (variateur pour LED + conversion/isolement 220V→3.3V) branché à l’entrée d’un wemos?

Mise à jour de la configuration que @scotty92fr m’a donné…à voir si c’est conforme !

Bonne année rol-rider !

Merci et à toi aussi.:smirk:

Bonjour,

On vient de me remplacer un ancien compteur gaz par ce nouveau compteur Jaune. Sur l’ancien j’avais mis un relais reed dessous le compteur (emplacement prévu pour ça) et je récupérais les impulsions avec un arduino+MySensor.

Je vais m’appuyer sur ce tuto pour refaire la même chose sur ce compteur Jaune, à partir de la prise.
Je voudrais une précision/confirmation sur le branchement au nouveau compteur: il y a bien un sens de branchement, et la masse serait en haut ? (c’est ce que j’ai cru lire sur un autre site, je ne vois pas l’info dans ce tuto, pourtant il me semble que c’est une info importante si elle est vraie).

Merci,

JeedAlf

1 « J'aime »

Faudrait voir avec scotty92fr
J’ai réalisé la platine a « l’aveugle » sans le tester sur un compteur, c’est scotty92fr qui a fait le test sur le gazpar

Bonjour à tous, le montage marche impeccable depuis septembre dernier sans décalage des valeurs.
A l’aveugle peut être mais efficace :smiley:

Logiquement oui, mais tu risques pas grand chose si tu inverses… juste que ça ne marche pas.

Bonjour,

Ça y est je me suis branché sur le nouveau compteur, en faisant juste une petite modif coté câblage Arduino, et ça compte les impulsions.
Par contre pour l’instant je n’ai pas mis en place le petit circuit avec l’optocoupleur, je suis en direct sur une PIN de l’Arduino (gérée en interruption), et je constate effectivement comme vous des impulsions en plus de temps en temps, 3 à 4 par heure.
Je vais donc essayer de câbler ce petit circuit pour l’interfaçage, j’ai en stock un 4N35 j’espère que ça peut faire l’affaire au lieu du EL817.

JeedAlf

Bonjour,

En regardant de plus près le schéma, il y a des différences avec la nomenclature des composants:

  • R2 indiqué 1K sur le schéma, et résistance de 10K de pull up dans la nomenclature, je suppose qu’il y a une inversion, et qu’il s’agit de R3. Mais est-ce c’est bien R3 1K pour la LED ? (souvent les LED c’est plutôt 220/330 Ohms).
  • la diode D10 n’est pas indiquée
  • les condensateurs ne sont pas mis sur le schéma, servent-ils uniquement pour la partie alim, ou aussi pour filtrer qq chose vis à vis du compteur ?

L’idéal serait d’avoir une nomenclature séparée pour la partie interfaçage avec le compteur (en gros ce qui est sur le schéma, sauf le Wemos) car c’est la partie utile pour d’autres implantations.

Merci,

JeedAlf.

Oui, tu as raison, il y a inversion, R1 est bien égal 330 ohm et R2 a 1K.
C’est R3 (10K qui n’est pas sur le schéma) je l’avais prévu au cas où mais apparemment, pas besoin.
Pour le reste, j’étais parti sur le PCB du wifinfo (voir l’ancien forum)
La diode D10 est noté sur le schéma (1N4148)
Les condos c’est pour l’alim.

1 « J'aime »

Bonjour,
Je suis très intéressé par le suivi conso gaz, par contre je m’interroge sur la solution proposée, je précise que je ne suis pas un expert en électronique :
La solution proposée par toi :

Et je trouve également une solution plus simple (sur la base du principe du compteur d’eau de sigalou) :
image
https://blog.zesanglier.fr/2019/11/17/capteur-sans-fil-pour-compteur-de-gaz-gazpar/

Je passe certainement à côté de quelque chose .

Merci.

salut,

on a utilisé l’optocoupleur (EL817) pour avoir un signal plus propre et sans rebond.
sans l’opto, il y avait des impulsions qui étaient comptées plusieurs fois.
après, si tu as un programme (dans le microcontrôleur) qui gère, ça peut le faire avec le deuxième schéma.
mais le but était d’utiliser ESPEasy.

2 « J'aime »

Bonjour,
Je viens de tester avec le branchement le plus simple (sans optiupleur…) par contre je n’ai pas toutes les impulsions.
J’ai détecté 350 impulsions soit 0.350m3 par contre mon compteur affiche une conso d’environ 2m3.
Pour info j’utilise un wemos D1mini (tasmota) avec le circuit avec une seule résistance.
Dans ton commentaire tu parlais d’un risque de compter plusieurs impulsions dans le mien j’en compte plutôt moins.
Merci

ba, je sais pas comment tasmota gère les impultions ?
tu as aussi le gpio utilisé qui peut poser problème.
pour D8, tu as une résistance en pull down sur le wemos (sur le gnd) donc a ne pas utiliser avec ton schéma.

J’ai suivi tes conseils et je reçois les impulsions, par contre j’ai commandé les composants pour réaliser le circuit et ainsi éviter de fausses impulsions.

Merci.

1 « J'aime »

Bonjour Rol Rider,
J’ai finalement réalisé le montage j’ai 2 questions :

  1. j’ai un opto PC817C qui semble être l’équivalent d’un EL817 mais ni connaissant rien je préfère m’assurer
    https://www.amazon.fr/dp/B08H1VB6FX?psc=1&ref=ppx_yo2ov_dt_b_product_details

  2. Je reçois les impulsions par paquet 100 ou 150 impulsions est ce normal?
    Merci.

1-pour l’opto, oui, c’est bon.

non, c’est pas normal, tu utilises quoi sur le wemos?