fairecasoimeme / ZiPulses

Pulses Zigbee sensor to capture Gazpar or water counter
41 stars 4 forks source link

ZiPulse - compteur eau Elster V200 + émetteur d'implusion PR6 #6

Closed paugebertrand closed 6 months ago

paugebertrand commented 1 year ago

Bonjour,

J'utilise le ZiPulses sur mon compteur d'eau Elster V200. J'ai connecté l'Emetteur d'impulsion ELSTER PR6 qui fournie une impulsion par litre. L'impulsion est un créneau bas de 80ms. Le ZiPulse ne détecteur pas cette impulsion (pas de flash bleu). Est-ce parce que le pulse est trop court ? si oui, quelle est la durée minimum détectable par le ZiPulse ? (la sortie du Elster PR6 est un transistor MOS open-drain avec une résistance 100 ohms en série)

Je ne sais pas si cela est liée mais le compteur 'energy' reste bloqué sur N/A même en générant des impulsions valides avec un shunt sur l'entrée de ZiPulses (flash bleu visible).

Zigbee2MQTT:debug 2023-04-02 11:09:55: Received Zigbee message from 'ZiPulses', type 'attributeReport', cluster 'genPowerCfg', data '{"batteryVoltage":28}' from endpoint 1 with groupID 0 Zigbee2MQTT:info 2023-04-02 11:09:55: MQTT publish: topic 'zigbee2mqtt/ZiPulses', payload '{"divisor":1,"energy":null,"linkquality":135,"multiplier":1,"temperature":null,"unitOfMeasure":"L (litre)","voltage":2800}'

Pourquoi "energy" reste bloqué sur null ?

Merci pour votre aide.

nicolas51270 commented 1 year ago

Salut.

De mon côté je l’ai installé sur home assistant via z2mqtt. Avec un compteur d’eau de marque GIOANOLA avec capteur ILS

Pareil toutes les valeurs reste sur N/A ou sur aucune valeurs. je n’ai cependant pas de flash lorsque le compteur tourne (il fonctionne, testé avec un multimètre) et pas de flash également en shuntant les entrées.

Tu l’utilise sur pile ou via une alimentation ?

j’ai l’impression que le lixee est capricieux

paugebertrand commented 1 year ago

Bonjour,

Je me suis aperçu que la connexion au bornier n'était pas correcte. Le shunt ne marchait pas à tous les coups. J'ai soudé un fil directement du bornier au module radio pour assurer un bonne connexion. C'est peut être ton problème ! Je suis en alimentation sur pile.

nicolas51270 commented 1 year ago

Merci pour l’info. Tu a donc enlevé le bornier vert ?

Je test dans l’après-midi voir déjà si cela résout le problème de flash lors des impulsions.

Reste le problème que tout reste en N/A

D80ACBA2-1C3C-409A-B466-3CCA90D922DB

gignonje commented 1 year ago

Bonjour,

Je me suis aperçu que la connexion au bornier n'était pas correcte. Le shunt ne marchait pas à tous les coups. J'ai soudé un fil directement du bornier au module radio pour assurer un bonne connexion. C'est peut être ton problème ! Je suis en alimentation sur pile.

Bonjour, même problème ici, c'est très compliqué de mon côté pour détecter une impulsion, shunter ne fonctionne que très rarement. Comment as-tu relié le bornier au module radio ? Sinon malheureusement ça sent le retour pour moi :(

paugebertrand commented 1 year ago

J'ai soudé un fil entre le bornier et le module radio. Je suspecte que la connexion casse quand on sert la vis du bornier. 20230402_165328

nicolas51270 commented 1 year ago

A915441A-9376-4145-9FF9-9CA6C7D0A30A Bingo. Après avoir soudé un fil rapidement entre le bornier et le module, j’ai bien la led qui indique réceptionner l’impulsion qui s’allume. merci paugebertrand.

Me reste plus qu’à comprendre pourquoi tout reste sur N/A ![Uploading 447EE59F-A98A-4C2E-8EB4-3CA6862A8023.jpeg…]()

paugebertrand commented 1 year ago

Ravi de t'avoir aidé nicolas51270 Pour le reste, il n'y a que le concepteur qui pourra nous aider !

Pour info, au cas où ça peut aider au debug, j'ai également the Zlinky_TIC dans mon installation (qui fonctionne très bien).

D'après la description sur github : ZiPulses reçoit des impulsions : Le capteur est reveillé. Il incrémente l'index et l'envoie au coordinateur

En regardant le log (onglet Journaux dans le zigbee2mqtt/dashboard), je ne vois aucun message de ZiPulses quand de provoque une impulsion. Pourtant, la connexion est valide puisque je vois bien la confirmation quand j'applique mes paramètres de diviseur, multiplicateur, ...

fairecasoimeme commented 1 year ago

Bonjour,

Bizarre pour le coup du pulse et du soudage. N'hésitez pas à m'envoyer un mail pour faire un échange standard.

Pour le problème de non réception de l'information de l'impulsion, il y a deux possibilités :

nicolas51270 commented 1 year ago

Bonjour,

Bizarre pour le coup du pulse et du soudage. N'hésitez pas à m'envoyer un mail pour faire un échange standard.

Pour le problème de non réception de l'information de l'impulsion, il y a deux possibilités :

  • La portée (ce qui ne semble pas être le cas pour @paugebertrand )
  • Le bind du cluster qui n'est peut-être pas passé. En effet, il est indispensable d'appliquer un bind sur le cluster 0x702 et 0x402. Soit vous avez la possibilité de forcer un Bind avec Z2M, soit il faut supprimer puis réappairer le module.

Alors oui bizarre mais ça fonctionne comme ça. Soit comme le dit Bertrand une faiblesse lorsque l’on sert le bornier soit je pense à un défaut du circuit imprimé.

Je reçois enfin bien les infos de comptage dans z2mqtt, après avoir supprimé et reapairer a plusieurs reprise le module, il m’a fallu me rapprocher de mon coordinateur aussi.

L’antenne est peut être également un peut faible. A voir.

Par contre le diviseur ou multiplicateur ne fonctionne pas, quoi qu’il arrive une impulsions incrémente de 1 mon compteur.

fairecasoimeme commented 1 year ago

Par contre le diviseur ou multiplicateur ne fonctionne pas, quoi qu’il arrive une impulsions incrémente de 1 mon compteur.

Oui je travaille sur le sujet.

nicolas51270 commented 1 year ago

Par contre le diviseur ou multiplicateur ne fonctionne pas, quoi qu’il arrive une impulsions incrémente de 1 mon compteur.

Oui je travaille sur le sujet.

Ok super.

Vous êtes le créateur du module lixee?

fairecasoimeme commented 1 year ago

Par contre le diviseur ou multiplicateur ne fonctionne pas, quoi qu’il arrive une impulsions incrémente de 1 mon compteur.

Oui je travaille sur le sujet.

Ok super.

Vous êtes le créateur du module lixee?

oui

paugebertrand commented 1 year ago

Merci fairecasoimeme.

Mon problème n'est pas la portée, 141lqi J'essaie de supprimer et réappairer le module.

Quand est-il pour un pulse de 80ms comme expliqué dans mon premier post ?

nicolas51270 commented 1 year ago

Par contre le diviseur ou multiplicateur ne fonctionne pas, quoi qu’il arrive une impulsions incrémente de 1 mon compteur.

Oui je travaille sur le sujet.

Ok super. Vous êtes le créateur du module lixee?

oui

Enchanté,

je vous ai envoyé un mail via votre site

https://faire-ca-soi-meme.fr

N’hésiter à revenir vers moi.

fairecasoimeme commented 1 year ago

Merci fairecasoimeme.

Mon problème n'est pas la portée, 141lqi J'essaie de supprimer et réappairer le module.

Quand est-il pour un pulse de 80ms comme expliqué dans mon premier post ?

En regardant la datasheet de votre compteur impulsion, j'ai bien peur qu'il ne soit pas compatible avec le ZiPulses. En effet, votre compteur n'utilise pas un capteur ILS (lamelles métalliques) qui joue le rôle de contact magnétique. Il nécessite malheureusement une charge de contact ce qui n'est pas approprié avec le fonctionnement du ZiPulses

paugebertrand commented 1 year ago

Je pense que le module détecte des fronts descendant et montant. Le transistor dans mon compteur d'impulsion fonctionne comme un ILS. J'ai d'ailleurs vérifié à l'oscilloscope.

Existe-t-il un filtrage numérique dans le modude Zigbee de type anti-rebonds qui filtrerait un pulse de 80ms ?

Gonioul commented 1 year ago

Léger aparté, pour les tensions et températures qui sont à N/A, c'est normal au début, ce n'est transmis qu'occasionnellement (toutes les 2h si j'ai bien compris la doc)

gignonje commented 1 year ago

J'ai soudé un fil entre le bornier et le module radio. Je suspecte que la connexion casse quand on sert la vis du bornier. 20230402_165328

Je confirme, une fois le fil soudé entre le bornier et le module, l'impulsion est correctement détectée

fairecasoimeme commented 1 year ago

Je pense que le module détecte des fronts descendant et montant. Le transistor dans mon compteur d'impulsion fonctionne comme un ILS. J'ai d'ailleurs vérifié à l'oscilloscope.

Existe-t-il un filtrage numérique dans le modude Zigbee de type anti-rebonds qui filtrerait un pulse de 80ms ?

Vous avez vérifié sur l'oscilloscope avec le ZiPulses en fonctionnement ? actuellement, il y a un pull-up sur une des bornes du ZiPulses et l'autre borne est à la masse. Du coup, il faut déjà que le branchement soit correctement polarisé. Ensuite peut-être enlevé la résistance de pull-up pour obtenir le front montant et descendant.

image

Ensuite vous pouvez brancher un module USB TTL sur le port de programmation pour débug. Le port communique avec les paramètres suivants 115200b 8N1

Il y a un debounce sur l'entrée mais je n'ai pas de valeur précise.

Tenez moi au courant.

fairecasoimeme commented 1 year ago

Par contre le diviseur ou multiplicateur ne fonctionne pas, quoi qu’il arrive une impulsions incrémente de 1 mon compteur.

Oui je travaille sur le sujet.

Ok super. Vous êtes le créateur du module lixee?

oui

Enchanté,

je vous ai envoyé un mail via votre site

https://faire-ca-soi-meme.fr

N’hésiter à revenir vers moi.

il vaut mieux passer directement par le mail contact[at]lixee.fr

fairecasoimeme commented 1 year ago

Pour le problème des coefficients sur Z2M :

https://github.com/fairecasoimeme/ZiPulses/blob/master/README.md#z2m

nicolas51270 commented 1 year ago

Pour le problème des coefficients sur Z2M :

https://github.com/fairecasoimeme/ZiPulses/blob/master/README.md#z2m

Salut.

Parfait cela fonctionne, Ce n’est pas que c’est compliqué à faire mais dommage que l’on ne puisse pas le faire directement via l’appareil

paugebertrand commented 1 year ago

Bonjour fairecasoimeme,

Mon hypothèse s'est vérifiée, le pulse de 80ms doit être filtré par le debounce. Je pense que le paramètre ci-dessous doit pouvoir agir sur ce filtrage : (app_pulses_buttons.c) / Defines the number of bits sampled for a button debounce event. One sample taken for each bit set /

define APP_BUTTON_SAMPLE_MASK (0x3)

Pour contourner, j'ai ajouter 20uF en parallèle ce qui provoque un pulse suffisamment long pour être comptabilisé. Je teste pendant plusieurs jours pour voir si je ne rate pas de pulse et confirmer le workarround. Le bémol de ce workarround est qu'il va impacter la consommation.

fairecasoimeme commented 1 year ago

En effet, En attendant, le condensateur est une solution, en espérant qu'il n'y est pas 2 pulses trop rapprochés. (Pas sur que ça impacte la durée de vie sur pile). De mon côté je vais investiguer pour réduire le temps du rebond et je vous tiens au courant.

En tous les cas, un énorme merci pour la contribution.

fairecasoimeme commented 1 year ago

Pour le problème des coefficients sur Z2M : https://github.com/fairecasoimeme/ZiPulses/blob/master/README.md#z2m

Salut.

Parfait cela fonctionne, Ce n’est pas que c’est compliqué à faire mais dommage que l’on ne puisse pas le faire directement via l’appareil

Malheureusement, je ne maitrise pas assez Z2M et cette procédure un peu étrange ne concerne pas les autres plugins. Je suis tombé sur cette procédure à force de faire des tests mais sur ZHA par exemple, pas de problème, lorsqu'on modifie un attribut, il est pris en compte de suite dans le logiciel.

Pour tous les appareils sur pile, il est indispensable de les réveiller pour chaque action (Ce n'est pas propre au ZiPulses). C'est plus laborieux que les appareils sur secteur mais malheureusement pas le choix.

(PS : J'ai bien reçu votre mail, je répond asap)

paugebertrand commented 1 year ago

En effet, En attendant, le condensateur est une solution, en espérant qu'il n'y est pas 2 pulses trop rapprochés. (Pas sur que ça impacte la durée de vie sur pile). De mon côté je vais investiguer pour réduire le temps du rebond et je vous tiens au courant.

En tous les cas, un énorme merci pour la contribution.

Je suis ravi si j'ai pu contribuer. Je conserve le workarround avec le condensateur jusqu'à l'amélioration de la gestion du rebond alors...

fairecasoimeme commented 1 year ago

Bonjour, Avant de mettre en ligne, pouvez-vous tester ce firmware qui améliore la gestion du rebond ? ZiPulses_v4.0.zip

paugebertrand commented 1 year ago

J'essaie ce firmware ce week-end et je vous tiens au courant.

paugebertrand commented 1 year ago

Je viens de mettre à jour mon ZiPulse. Les impulsions sont bien vues et je n'ai pas d'impulsion ratée avec un fort débit d'eau. Je vérifierai dans quelques jours si j'en ai loupé. Le workarround avec le condensateur n'est pas validé. J'ai perdu 600 impulsions sur la semaine. Merci pour cette mise à jour.

paugebertrand commented 1 year ago

Bonjour fairecasoimeme, Comme discuté, je reviens avec des résultats. Je constate qu'en 14 jours, 8 impulsions sur 7080 ont été perdues.

fairecasoimeme commented 1 year ago

Bonjour,

Merci beaucoup pour le retour. Je devrais recevoir un générateur de fonction afin de mieux développer la gestion des pulses du firmware. Je vous tiendrai au courant et communiquerai sur la mise à jour du firmware

fairecasoimeme commented 1 year ago

Bonjour,

J'ai modifié la gestion des pulses dans le nouveau firmware ici : https://github.com/fairecasoimeme/ZiPulses/releases/tag/v5.0

Normalement détection des pulses au dessus de 20ms

paugebertrand commented 1 year ago

Bonjour fairecasoimeme, Je viens de flasher la version 5.0, je vous tiens au courant...

paugebertrand commented 1 year ago

Bonjour fairecasoimeme, Comme discuté, je reviens avec des résultats. Je constate qu'en 13 jours, 7 impulsions sur 6149 ont été perdues.

fairecasoimeme commented 1 year ago

Bonjour, Merci pour le retour, je vais mettre en route le générateur de fonctions pour pousser les tests et comprendre/trouver pourquoi il peut y avoir des impulsions perdus. (7 impulsions sur 6149, ça fait 0.11 % d'erreurs)

JojoNenez commented 1 year ago

Bonjour tout le monde. Tout d'abord, bravo à Fairecasoitmeme pour son travail :-) Tout n'est pas parfait, mais il faut reconnaitre que c'est un sacré boulot...

Voici donc un petit retour sur mon expérience avec ce module :

Merci encore pour votre travail.

JojoNenez commented 1 year ago

Bonjour à tous.

J'ai enfin pu flasher mon module en version V5.0. Résultat des courses : Cela fonctionne parfaitement avec des impulsions d'une largeur égale ou supérieure à 20 millisecondes à l'état 0V. C'est super ! Je peux donc enfin utiliser ce module sur le capteur d'impulsions de mon compteur d'eau (impulsions de 125ms) Mon problème est donc réglé et j'en suis ravi.

Merci pour ce travail, et merci pour le support. c'est top.

paugebertrand commented 11 months ago

Bonjour fairecasoimeme, Avez-vous apporté des mises à jour depuis la v5 ? De mon côté, j'ai toujours une petite erreur (0.14% sur 41312 litres) ce qui est acceptable. Je pense que l'erreur peut aussi venir de l'Emetteur d'impulsion ELSTER PR6. Est-ce que les autres utilisateurs ont cette erreur ?

fairecasoimeme commented 11 months ago

Bonjour, Non je n'ai pas encore pu faire des tests poussés avec le générateur. je vous tiendrai au courant.

paugebertrand commented 8 months ago

Bonjour fairecasoimeme, Avez-vous avancé sur ce sujet ?

fairecasoimeme commented 8 months ago

Bonjour, je suis en test actuellement : image image Pas de pertes pour le moment mais je laisse tourner

paugebertrand commented 8 months ago

Bonjour, J'attends les résultats avec impatience ;) Pouvez-vous déterminer la largeur mini du pulse sans pertes ? Je pourrais en déduire un débit max détectable. Cordialement.

fairecasoimeme commented 8 months ago

Bonjour,

Je suis allé jusqu'à 21952 impulsions avant la nuit. La largeur du pulse est de 50ms. Je vais refaire les tests car il me manque un câble pour consolider et éviter les faux contacts. En effet, après une nuit et 68000 impulsions, il y a eu un décalage de plus de 1000 impulsions, ce qui ne me semble pas possible. J'avais déjà eu le souci car j'ai un câble qui fait à peine contact et avait provoqué des milliers de pulses (côté compteur/générateur)

paugebertrand commented 8 months ago

Bonjour, Le pulse de 50ms est un pulse bas ou haut ? Quelle est la fréquence du signal de test ? 1/(2x50ms) = 10Hz?

fairecasoimeme commented 8 months ago

Je vais lancer de nouveaux tests, voici les captures sur le setup : image

Je suis passé à des pulses de 30ms de large toutes les secondes. (Les pulses se déclenchent aux alentours de 25ms)

image

fairecasoimeme commented 8 months ago

Voici le résultat des tests avec le setup ci-dessus :

Jour Heure Nb impulsions reçues (imp) Nb de secondes depuis l'initialisation(sec) Nb d'impulsions loupées Remarques
J1 16:36:00 0 0 0
17:06:00 1800 1800 0
17:18:00 2520 2520 0
17:46:00 4220 4220 0
19:06:00 9000 9000 0
J2 08:22:00 56756 56756 0
11:12:00 66944 66960 16 J'ai effectué un reset parce que je ne voyais plus HA bouger
13:24:00 74864 74880 16
18:12:00 92084 92100 16

PS: Le firmware a été modifié pour remonter des trames zigbee (temperature / tension) toutes les 5 minutes pour augmenter les probabilités d'impulsions loupées.

paugebertrand commented 8 months ago

C'est étonnant ce reset nécessaire du ZiPulses. S'il n'y avait pas eu de reset manuel, aurait-il redémarrer tout seul ? Watchdog ?

JojoNenez commented 8 months ago

Il veut dire un reset de Home Assistant je pense.

diliak commented 8 months ago

Cela rejoindrait-il mon souci de "disparition" au bout de quelques jours ? Je ne voyais plus "Domoticz" bouger ?

fairecasoimeme commented 8 months ago

Non rien à voir ... c'est mon pc de test (ou HA) qui a freeze. J'aurai du d'abord redémarrer HA mais dans la panique j'ai reset le ZiPulses qui au final n'a perdu que 16 pulses dû au reset. Si c'était vraiment de la faute du ZiPulses, on aurait eu beaucoup plus de pertes d'impulsions.

PS : Voyant que le ZiPulses n'était pas en cause, j'ai continué le test.