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.