Table des matières
En Belgique, avec le fournisseur SWDE, c’est le compteur DHV2000 (de la société DH Metering) qui a été installé chez moi. C’est dommage, vraiment, que la SWDE installe ce genre de compteurs. Elle aurait pu proposer, plutôt, un compteur sur lequel on peut venir facilement brancher un capteur à effet hall. Mais elle ne l’a pas fait et, en outre, elle n’offre pas non plus la possibilité qu’on change de compteur pour en avoir un disposant de cette possibilité (même moyennant paiement). Il faut donc faire avec et chercher à contourner le problème.
La première idée que j’avais eue, pour mesurer ma consommation d’eau, était un détournement du capteur infrarouge TRCT5000. La tentative essayait de compter le nombre de tour que faisait le demi-disque métallique (un tour correspondant à une consommation d’un litre) à l’aide d’impulsions infrarouges. L’essai n’avait pas été concluant, comme je l’expliquais dans l’article.
La seconde idée a alors été d’utiliser un capteur inductif LJ18A3 afin, toujours, d’essayer de compter le nombre de tour du demi-disque métallique. Avec ce type de capteur, on recevoit une impulsion lorsqu’une cible conductrice ou magnétiquement perméable (disque d’acier, par exemple) s’approche de la bobine du capteur.
Je suis donc parti sur l’achat d’un capteur inductif LJ18A3. Ce genre de capteur, il y en a plusieurs. Je conseille de partir vers un LJ18A3-8 car cela permet de détecter une cible conductrice jusqu’à 8mm. C’est plus prudent que les modèles LJ18A3-4 qui ne détecte qu’à 4mm de profondeur, ce qui est un peu juste pour détecter le demi-disque métallique placé à quelque millimètre derrière le plexiglas protecteur du compteur. Ensuite, il faut choisir un capteur qui correspond à la tension de travail souhaitée. Comptant utiliser ce capteur avec un NodeMCU (ESP8266) pouvant délivrer 5V ou 3,3V aux capteurs, j’ai naturellement choisi un capteur fonctionnant en 5V (3,3V aurait été encore mieux mais je n’en ai pas trouvé). Cette fois, cela a fonctionné. Voici donc, pour une trentaine d’euro, une belle solution qui permet de suivre sa consommation d’eau dans Jeedom.
A noter que, deux ans plus tard, je suis parti sur une troisième solution. Le principe de ce troisième capteur est simple et repose sur le module ESP32-CAM c’est-à-dire un micro-contrôleur intégrant une caméra vidéo et une carte microSD. L’ESP32-CAM photographie régulièrement le compteur d’eau et effectue une reconnaissance de caractères pour déterminer les index de consommation: https://www.objetsconnectes.be/2023/03/31/seconde-solution-pour-suivre-sa-consommation-deau-swde-ou-autre/
L’installation du firmware ESP Easy
J’avais déjà expliqué, dans unarticle précédent, comment installer le firmware ESP Easy sur le NodeMCU et comment configurer ce NodeMCU. Je vous renvoie donc vers cet article pour les premières étapes et je suppose, maintenant, qu’une version Mega a été installée et est opérationnelle.
Etape 5: Branchement du capteur LJ18A3 et du NodeMCU
Pour suivre, il convient de connecter physiquement le capteur LJ18A3, ce que je fais comme toujours avec des câbles Elegoo.
Il faut relier le NodeMCU avec les PINs du capteur inductif LJ18A3. Le schéma de branchement, très simple, est lisible sur le capteur lui-même.
Il y a donc trois câbles à connecter:
- le câble brun doit recevoir 5V et est donc relié à la PIN VIN du NodeMCU
- le câble bleu est la masse et est donc relié à la PIN GND du NodeMCU
- le câble noir est celui qui fournit les impulsions. On branche ce câble sur une des PINs GPIO du NodeMCU. J’ai choisi D5 (GPIO14).
Le câblage donne donc ceci :
NodeMCU 5V -> LJ18A3 Brun
NodeMCU Gnd -> LJ18A3 Bleu
NodeMCU D5 -> LJ18A3 Noir
Attention toutefois : il est déconseillé de brancher 5V sur les PIN du NodeMCU, ce dernier travaillant avec 3,3V. Il faut passer par une résistance ou bien un réducteur de tension. Ayant lu certains dirent que le NodeMCU supporterait quand même le 5V, précisant bien “à vos risques et périls”, j’ai tenté ma chance. Il faut dire aussi que le risque est limité vu le faible coût des composants. Après quelques semaines, cela tient toujours !
Etape 6: Configuration du LJ18A3 dans le NodeMCU
1. Dans le navigateur internet à l’URL du NodeMCU, cliquer sur “Devices” et appuyer sur “Add”
2. Dans la série de capteurs, choisir le capteur “Generic – Pulse counter” et cliquer sur le bouton “Submit”.
3. Sur l’écran de configuration, les paramètres sont les suivants :
- Choisir un nom
- Cocher “Enabled”
- GPIO -> Pulse : choisir la pin “GPIO-14 (D5)”
- Debounce Time (mSec): il s’agit de la période de temps pendant laquelle le capteur ne doit pas envoyer d’impulsions après avoir détecté le demi-disque métallique. Une valeur souvent utilisée est 100 msec. Le demi-disque métallique du compteur tournant peu rapidement, j’ai choisi la valeur de 200 msec par sécurité
- Counter Type : Choisir Delta/Total/Time afin d’avoir les impulsions détectées, le temps écoulé depuis l’impulsion précédente et le nombre total d’impulsion. Un message d’avertissement indique que le “Total Count” n’est pas persistant. Cela signifie qu’en cas de coupure de courant, le compteur se remet à zéro. Il faut donc stocker le total des impulsions autre part (dans Jeedom par exemple).
- Mode Type: FALLING. Pour ce paramètre, les modes de détection possibles sont expliqués dans la documentation de ESP Easy:
LOW
= count when signal go from not low to low (0.8+V to 0.8-V)
CHANGE
= count on signal being changed, low to high (0.8-V to 2.4+V) or high to low (2.4+V to 0.8-V)
RISING
= count if signal is rising, from low to not low (0.8-V to 0.8+V)
FALLING
= count if signal is falling, from high to not high (2.4+V to 2.4-V)
- En bas à droite, je vous conseille de mettre 0 pour “Decimals” puisque des fractions d’impulsions n’ont aucun sens.
- Cliquer sur le bouton “Submit” en bas de l’écran pour sauver le tout.
Etape 7: On termine
Maintenant la configuration est terminée, on peut lire le nombre de litres (de pulsations) détectées par le capteur © dans l’interface web. Ici, en vert à droite, on lit la valeur 34 (litres).
Un étalonnage rapide a montré que les pulsations détectées étaient bien alignées sur la variation de l’index du compteur DHV2000 de la SWDE.
L’installation physique du capteur
Pour l’installation physique, c’est un peu la bricole. Chacun fait comme il peut. Personnellement, j’ai retrouvé une petite pince (qui sert à fixer au plafond les tuyaux alpex pour le chauffage) et je l’ai boulonnée sur une tige métallique. Cette tige métallique est fixée au compteur par un simple colson bien serré. Le capteur LJ18A3 est livré avec deux grands écrous. En serrant un peu, les deux écrous viennent serrer la pince/fixation d’alpex.
Pour le positionnement, j’ai placé le capteur LJ18A3 de telle façon qu’il ne couvre pas totalement l’emplacement où tourne le demi-disque métallique. Il faut en effet qu’il puisse détecter à la fois la présence du disque et à la fois l’absence du disque.
Home Assistant
La configuration MQTT dans le firmware ESP Easy de l’ESP8266
L’idée est d’ajouter un contrôleur via l’interface de l’ESP8266 dans l’onglet « controllers ». Les informations à mentionner sont:
- Type de contrôleur: Home Assistant (openHAB) MQTT
- Adresse IP: celle du broker MQTT. En général, il est installé sur la même machine que Home Assitsant et on indique donc ici l’adresse IP de son instance Home Assistant
- Le port MQTT qui est, par défaut, 1883
On coche aussi les cases ci-dessous:
Enfin, on ajoute le nom d’utilisateur et le mot de passe pour se connecter au broker MQTT.
Si vous n’avez plus ces informations, vous pouvez les récupérer en ouvrant le fichier /config/.storage/core.config_entries avec File Editor. Les informations se trouvent au niveau de la ligne “broker”:”core-mosquitto”.
Dans l’onglet “Devices”, on coche la case “Send to Controller 2”
Dans l’onglet “Config”, on s’assure que le Unit Number est bien unique. Un peu truc, j’utilise en général le dernier nombre de l’adresse IP de l’appareil.
Par sécurité, on redémarre l’ESP8266 et on se connecter à MQTT Explorer dans Home Assistant afin de vérifier que les trames de l’équipement «ESP_Easy_Impulsion_Eeau» (dans ma configuration) apparaissent bien.
La configuration dans Home Assistant
Contrairement à ESPHome, les entités créées dans ESP Easy n’apparaissent pas automatiquement dans Home Assistant. Il faut donc procéder manuellement, dans un fichier de configuration .yaml comme documenté sur la page MQTT Sensor: https://www.home-assistant.io/integrations/sensor.mqtt/
Il est toujours préférable d’organiser ses fichiers de configuration .yaml pour éviter de se retrouver avec un énorme fichier qui n’en finit plus. Je conseille donc de créer un fichier mqtt.yaml où se trouveront toutes les configuration MQTT. Au niveau du fichier configuration.yaml, on ajoute dès los cette ligne:
mqtt: !include mqtt.yaml
Avec File Editor, on crée ou on édite maintenant le fichier mqtt.yaml et on y ajoute ce contenu:
sensor:
#ESPEASY – Compteur-Impulsion-LJ18A3-Eau
– name: “Consommation Eau”
state_topic: “ESP_Easy_Impulsion_Eau_103/Compteur_Eau/Total”
suggested_display_precision: 0
unique_id: sensor.Compteur-Impulsion-LJ18A3-Eau
device_class: water
unit_of_measurement: L
state_class: total_increasing
device:
name: “Compteur Eau Impulsion LJ18A3”
identifiers: “CompteurEauImpulsionLJ18A3”
Cela donne, dans Home Assistant, un appareil avec l’indication de la consommation d’eau.
On peut également ajouter l’entité MQTT créée au niveau de la consommation d’eau dans le tableau de bord énergie:
Le tableau de bord Energie affiche alors une section avec la consommation d’eau par heure:
La remontée des mesures dans Jeedom
C’est le plugin Jeedom ESPeasy, gratuit, qui va gérer la remontée des mesures des capteurs dans Jeedom. J’avais déjà expliqué comment installer ce plugin dans cet article et je vous renvoie donc à celui-ci pour les premières étapes.
Après avoir installé le plugin, on se connecte via un navigateur internet au module NodeMCU pour le configurer. On clique cette fois sur “Controllers” et puis sur “Add”.
Les valeurs à introduire sont :
- Generic HTTP
- Controlleur IP : l’adresse IP de Jeedom (qui est aussi celle que l’on peut lire dans “IP Controleur à saisir dans ESPeasy (onglet config)” sur la page de configuration du plugin Jeedom ESPEasy)
- Controlleur Port : 8121 (qui est aussi le numéro que l’on peut lire dans “Port Controleur à saisir dans ESPeasy (onglet config)” sur la page de configuration du plugin Jeedom ESPEasy)
- Controlleur Publish (plus bas dans l’écran): device=%sysname%&taskid=%id%&cmd=%valname%&value=%value% (qui est aussi ce qu’on voit sur la page du plugin)
- Cocher la case “Enabled”
Pour terminer, il ne faut pas oublier de cliquer à nouveau sur “Devices”, de cocher la case “Send to Controlleur”, de choisir un intervalle de temps entre deux envois de données (ici 5 secondes) et de cliquer sur le bouton “Submit” pour sauver les changements. Si vous avez plusieurs NodeMCU / capteurs, il faut indiquer un IDX différent pour chacun.
Vous pouvez maintenant retourner dans Jeedom : Plugins / Protocole Domotique / ESPeasy
Cliquer sur le bouton “+ Inclusion”. Un équipement, correspondant au capteur, devrait apparaitre. Par défaut c’est souvent le nom “Esp Easy”, nom que j’ai changé en Compteur_EAU.
Il faut configurer cet équipement en cliquant dessus, en lui donnant un nom, en cochant “Activer” et “Visible”. De façon optionnelle, on peut lui attribuer une pièce (via Objet parent). On peut aussi choisir “Compteur” comme “Catégorie de l’espeasy”.
Au niveau des commandes, on retrouve les trois commandes que l’on avait déjà dans le NodeMCU: Count, Time et le Total que j’ai renommé “Consommation_Eau”. Pour avoir un historique dans Jeedom et de beaux graphiques, il est conseillé de cliquer sur “Historiser” pour la commande Total (renommée en “Consommation_Eau”)
Si on se rend dans le Dashboard de Jeedom, on voit l’équipement Compteur_EAU et les informations de consommation, à savoir 36 litres d’eau consommée depuis le dernier reset du capteur inductif LJ18A3.
Si on clique sur le 36 litres, on a alors accès au graphique de consommation d’eau :
C’est standard dans Jeedom et, sur ce graphique, on peut changer beaucoup de paramètres. Par exemple, on peut cocher “Variation” et “Escalier” et on a alors une vue de la consommation, en litre, par période (et non plus la somme cumulée des consommations comme avant).
Calculer la consommation jour par jour
Ce qui est sympa, c’est d’avoir la consommation jour par jour. Pour ce faire, j’utilise le plugin “Virtuel”. Ce plugin permet de créer des équipements virtuels.
On commence donc par créer un équipement (virtuel) dans le plugin. Afin d’avoir des données à jour, on choisit une “Auto-actualisation (cron)” d’une minute (ce qu’on définit en cliquant sur le petit point d’interrogation à droite)
Dans l’onglet “Commandes”, on crée trois infos virtuelles :
- Consommation Jour qui contient une formule pour calculer la consommation depuis minuit, soit la consommation du jour. Cette formule est : MaxBetween(#[Cave Garage][Compteur_EAU][Conmmation_Eau]#,today 00:00:01, now) – MinBetween(#[Cave Garage][Compteur_EAU][Conmmation_Eau]#,today 00:00:01, now)
- Consommation Hier qui affiche la consommation de la veille. La formule est: Variable(Compteur_Eau_litres). Cette consommation de la veille est calculée une fois par jour par un scénario qui tourne à minuit et une minute (voir ci-dessous). Le résultat du calcul est stocké dans la variable (à créer au préalable) Comteur_Eau_litres
- Total impulsions qui reprend simplement les données brutes des impulsions mesurées par le capteur (c’est-à-dire un compteur qui a été remis à zéro lorsqu’on a coupé le courant la dernière fois et qui s’est incrémenté de une unité à chaque litre consommé)
Pour le calcul de la consommation de la veille, un scenario tourne à minuit et une minute. Il enregistre simplement le résultat de ce calcul dans une variable Jeedom appelée “Compteur_Eau_litres”: MaxBetween(#[Cave Garage][Compteur_EAU][Conmmation_Eau]#,yesterday 00:00:01, now) – MinBetween(#[Cave Garage][Compteur_EAU][Conmmation_Eau]#,yesterday 00:00:01, now).
Le résultat, dans le Dashboard, donne ceci :
La gestion de la coupure de courant
Ce qui est un peu ennuyant, avec ce capteur, c’est que le nombre total d’impulsions tombe à zéro en cas de coupure de courant. Il n’y a en effet pas de persistance au niveau du capteur. Et donc, le jour où le courant est coupé (volontairement ou pas), les calculs Jeedom ci-dessus ne seront plus bons puisque la fonction MinBetween renverra zéro. Sur une journée, ce n’est pas grave. Mais cela perturbe le calcul de la consommation mensuelle ou annuelle.
Afin de corriger ce problème, je me suis plongé dans le code via une fonction personnalisée afin de récupérer toutes les mesures et afin de calculer toutes les variations positives du nombre d’impulsion. Voici donc une solution “maison”, n’ayant pas trouvé de solution sur internet.
1. Télécharger le plugin JeeXplorer. Ce dernier permet de naviguer dans les fichiers Jeedom et il va permettre d’écrire la nouvelle fonction de calcul
2. Dans JeeXplorer, naviguer dans html / data / php et éditer le fichier user.function.class.php. Ce fichier a été spécialement créé afin d’accueillir les fonctions que chacun aurait envie de développer.
3. Juste en-dessous de la ligne “class userFunction {“, coller cette fonction
public static function CalculateWaterConsumption($_cmd_id, $_startTime, $_endTime) {$cmd = cmd::byId(trim(str_replace(‘#’, ”, $_cmd_id)));if (!is_object($cmd) || $cmd->getIsHistorized() == 0) {return ‘Not an object or not historized’;}$_cmd_id = trim(str_replace(‘#’, ”, $_cmd_id));$_startTime = date(‘Y-m-d H:i:s’, strtotime(scenarioExpression::setTags($_startTime)));$_endTime = date(‘Y-m-d H:i:s’, strtotime(scenarioExpression::setTags($_endTime)));$values = array(‘cmd_id’ => $_cmd_id,‘startTime’ => $_startTime,‘endTime’ => $_endTime,);$sql = ‘SELECT value, datetimeFROM (SELECT *FROM historyWHERE cmd_id=:cmd_idAND `datetime`>=:startTimeAND `datetime`<=:endTimeUNION ALLSELECT *FROM historyArchWHERE cmd_id=:cmd_idAND `datetime`>=:startTimeAND `datetime`<=:endTime) as dtORDER BY `datetime` ASC’;$result = DB::Prepare($sql, $values, DB::FETCH_TYPE_ALL);if (!is_array($result)) {$result = array();}$i = 0;$conso = 0;foreach ($result as $key => &$value) {if ($i == 0) {$valuebefore = $value[‘value’];}if ($value[‘value’] >= $valuebefore) {$conso += $value[‘value’] – $valuebefore;$valuebefore = $value[‘value’];}else {// parfois, pour une raison illogique, des données erronnées arrivent en retard. Donc, si la chute en consommation est mininime,// je considère que c’est une donnée erronée et je n’en tiens pas compte. Si la chute est de plus de 10l, je suppose que c’est// une coupure de courant et j’en tiens compteif ($valuebefore – $value[‘value’] > 10) {$conso += $value[‘value’];$valuebefore = $value[‘value’];}}$i++;}return $conso;}
Cette fonction se comprend facilement. Il y a juste une petite astuce pour ne pas tenir compte des fausses mesures. Parfois, des mesures plus petites que les précédentes se présentent dans la série et ce n’est pas du à une coupure de courant, comme on le voit ici (5109 apparaissant entre deux 5110). Il ne faut pas tenir compte des ces mesures erronées (qui sont étonnamment fréquentes). J’ai donc estimé que, en dessous d’une baisse de 10l, ce n’est pas du à une coupure de courant mais à une fausse mesure. Libre à chacun d’adapter cette constante.
4. Reprendre la logique du paragraphe précédent : dans un scénario qui tourne une fois par jour (un peu après minuit), calculer la consommation de la veille en appelant la fonction CalculateWaterConsumption(#[Cave Garage][Compteur_EAU][Conmmation_Eau]#, Today – 1days, Today – 0days) et en sauvant cette valeur dans une variable Jeedom (variable à créer dans Outil / Variables dans Jeedom)
5. Au niveau du virtuel, créer une info virtuelle et afficher le contenu de cette variable.
Pour être complet : une autre solution possible
Il existe d’autres options pour suivre la consommation de ce genre de compteur. J’ai contacté le fabriquant afin de savoir comment récupérer la pulsation par litre du compteur et la réponse, de la société GP Electronics (qui assure la partie commerciale de la société DH Metering) fût :
Notre compteur DHV2000/2001 donne une impulsion par litre d’eau.
Pour récupérer ces impulsions on peut mettre un émetteur d’impulsions sur notre compteur. Voir documentation s.v.p.
Voici les différentes possibilités :
En effet, il y a 3 versions de notre DH2IND/DH2REED ;
– Système avec 7 fils ( inductive + reed )
– Système avec 5 fils ( inductive )
– Système avec sortie M-bus
Module DH2REED :
Spécifications : DH2REED avec 7 fils. Système inductive + reed ( contact sec ).
Code de commande : DH.DH2REED
Prix unitaire : 51,00 €
Remise : reste à discuter, dépend des quantités.
Délai : normalement en stock.
Module DH2IND :
Spécifications : DH2IND avec 5 fils. Système inductive.
Code de commande : DH.DH2IND-5W
Prix unitaire : 43,00 €
Remise : reste à discuter, dépend des quantités.
Délai : normalement en stock.
Module DH2MBUS :
Spécifications : DH2MBUS avec 2 fils. Système protocol M-bus.
Code de commande : DH.DH2MBUS
Prix unitaire : 62,00 €
Remise : reste à discuter, dépend des quantités.
Délai : normalement en stock.
Frais supplémentaires :
Enlèvement par vos soins chez GP electronics : 10,00 € frais dossier et facturation.
Livraison à votre domicile : 30,00 €
Ce qui m’avait freiné, avec ce capteur, c’est surtout son prix, auquel il fallait encore ajouter 10 euros de frais de dossier et 30 euros de frais de livraison. L’autre chose qui m’avait ennuyée, c’est que ce capteur est alimenté par batterie (interne). Il ne faut pas l’alimenter et le boitier est IP68. Mais il n’y a pas moyen de remplacer cette batterie interne. Après dix ans environ, vous devrez donc jeter votre capteur et en acheter un nouveau.
Pour ceux qui seraient tenté par l’aventure, voici quelques renseignement obtenus chez le vendeur. Ces éléments devraient (je parle au conditionnel car je n’ai pas réalisé l’essai par moi-même) permettre d’utiliser ce capteur avec un NodeMCU :
- La base de fonctionnement du capteur est un système inductif. Le capteur est prévu spécifiquement pour le compteur et vient se fixer dessus (pas besoin donc de bricoler quelque chose)
- La sortie de ce capteur est un transistor à collecteur ouvert et l’alimentation externe de ce transistor doit se faire avec une tension entre 3V et 30 Vdc. La tension des impulsions, sur le fil jaune, dépend donc de la tension fournie en entrée au transistor. On peut alors très bien travailler avec 3,3V, ce qui est la tension de travail des pins d’un modeMCU (ESP8266). A chaque tour du disque métallique, on reçoit alors une impulsion de 3,3V sur le fil jaune.
- Le capteur fonctionne sur base du flanc montant (positif) et c’est donc cette configuration qu’il faut régler dans le firmware espeasy du NodeMCU.
Conclusions
Après l’échec de l’utilisation du capteur infrarouge TRCT5000, le capteur LJ18A3 fonctionne à merveille pour le suivi de consommation d’eau. Outre le simple suivi de consommation, de nombreuses autres possibilités existent. Par exemple, on peut écrire un scénario Jeedom qui enverrait des alertes quand une consommation de plus de X litres est détectée sur une courte période. En réglant bien la valeur de X, on a ainsi un système de surveillance pour détecter les fuites.
Pour une trentaine d’euros, on aurait tort de s’en priver.
Antoine
salut, super tuto par contre sur mon jeedom je n’ai que la valeur “count’ qui remonte
ObjetsConnectesAdmin
Bonjour. Merci. Essayez peut-être de supprimer l’objet dans ESP Easy, attendez un peu et puis refaite une inclusion. Cela devrait fonctionner. Si pas, essayer de désactiver et réactiver le plugin ESP Easy dans Jeedom.
Philippe
Merci pour ce tuto. Par contre j’ai un message d’erreur lorsque je mets le script dans le fichier ” user.function.class.php”. Jeedom me renvoi ceci : unexpected ‘if’ (t_if) expecting ‘)’
Pouvez-vous ml’aider ?
Merci
ObjetsConnectesAdmin
Bonjour. Peut-être que, en collant la fonction, vous avez effacé le dernier “}”. Tout en bas du fichier, on doit avoir:
}
}
La première fermeture de parenthèse sert à terminer la fonction mais il faut aussi la seconde pour terminer la classe.
Philippe
Problème corrigé. Merci pour l’info
Sysun
Bonjour,
J’ai un message d’erreur 500 : Internal Server Error quand je modifie mon fichier user.function.class.php et que je veux sauver mon Virtuel une idée ?
carion
bonjour,
merci pour ce tuto cela fonctionne sans problème .
vous pouvez me dire ce que vous avez utiliser l pour le compteur électrique je suis de Belgique aussi .
merci a vous
ObjetsConnectesAdmin
Bonjour. Merci pour votre retour. Pour l’électricité, j’ai tout d’abord essayé ceci : https://www.objetsconnectes.be/2021/01/19/pzem-004t-consommation-triphase-jeedom/
Et puis je passé au compteur intelligent d’ORES : https://www.objetsconnectes.be/2021/02/26/jeedom-sagemcom-ores-p1/
Bien à vous.
fabmoll
Un grand merci pour ce tuto.
J’ai commandé tout ce dont j’avais besoin pour réaliser la même chose à la maison et hier j’ai tout connecté.
Cela fonctionne parfaitement, quel bonheur ! Un grand merci et … meilleurs voeux :p
De mon côté, j’alimente l’ESP en 3,3v et le LJ18A3 en 5v avec un Dollatek MB 102 breadboard avec lequel il est possible d’alimenter l’un et l’autre avec un voltage différent en fonction d’un jumper. Très pratique.
fabmoll
Par contre, avec la fonction utilisateur j’ai des problèmes de syntax. Je pense que le fait d’avoir copier/coller le code sur le blog a modifié certains caractères comme les caractères utilisés pour délimiter les chaînes. Car sans modifier moi même le code, j’ai une erreur sur un IF et après avoir modifié j’ai une autre erreur du type: syntax error, unexpected ‘–’ (T_STRING).
Serait-il par hasard possible de copier le code d’origine sur un pastebin.com ou autre qiu ne modifierait pas le code ? Ce serait vraiment top 😀
Merci bcp
fabmoll
Je fais un monologue :p
Si cela peut aider, j’ai corrigé la fonction de mon côté afin de modifier les caractères qui ont été remplacés.
Le dernier problème que j’avais été ligné au caractère – qui n’était pas vraiment un – visiblement :p
Voici la fonction https://pastebin.com/GQmZkuJJ
Encore un grand merci pour le travail effectué !
ObjetsConnectesAdmin
Merci pour vos si gentils messages et merci pour la référence Dollatek MB 102.
Vincha
Bonjour,
Je lis avec beaucoup d’attention votre blog, surtout la partie électrique étant moi-meme de Belgique et du BW.
je voulais juste porter a votre connaissance une solution faite à partir d’une ESP32-CAM et de la solution AI-on-the edge (https://jomjol.github.io/AI-on-the-edge-device-docs/). Solution que j’ai mise en place avec Home Assistant et mqtt. cela fonctionne extrêmement bien, les données remontées sont de l’ordre du litre.
votre système à l’air de fonctionner mais comme je vois le coté bidouilleur qui sommeil en vous :).
Bon amusement.
ObjetsConnectesAdmin
Bonjour. Merci c’est sympa comme principe. Justement, depuis 2-3 semaines, j’ai un soucis avec le capteur d’eau qui s’emballe (captant des impulsions) alors qu’aucune eau n’est prélevée. Votre système est donc très tentant. Si vous vous lancez dedans, tenez-moi au courant s’il vous plait.
Vincha
Je l’ai mis en place il y a maintenant 3 mois et cela fonctionne très bien ( la meme solution fonctionne pour un compteur électrique ancienne génération (avec le disque)) , seul bémol il faudra imprimer en 3D le support pour fixer l’ ESP32 au compteur ou bien faire preuve d’imagination avec un système D. Dommage que je ne puisse poster de photos :).
Voici le lien pour la pièce a imprimer https://www.thingiverse.com/thing:4845508
la solution coûte au total une vingtaine d’euros et comme précisé, les données remontées sont de l’ordre du litre d’eau.
n’hésitez pas à me contacter pour l’impression si vous n’avez pas d’imprimante ;).
Eric
Bonjour,
un tutoriel très intéressant !
A mon avis, les fausses impulsions pourraient être dues au fait que la sortie du capteur d’approche est un transistor NPN à collecteur ouvert. Il faudrait donc mettre une résistance pull-up vers 3V3 pour que les fronts de comptage soient propres.
Salutations Eric
(Translation by DeepL)
ObjetsConnectesAdmin
Merci pour la suggestion Eric.