Comptage via GPIO

Forum dédié aux bricolages d'objets connectés IOT et leurs communications avec DomoticZ :
- Remplacement de firmware des prises, modules relais ...
- Fabrication à base d'ESP8266, de NodeMCU, de Weemos et consorts ...
Répondre
Kohntark
Messages : 6
Inscription : 12 juil. 2024, 07:18

Comptage via GPIO

Message par Kohntark »

Salut,

Je galère sur un truc qui semble tout con.
Je souhaite compter les impulsions d’un pluviomètre (ampoule reed) via GPIO.

Pb :
Certaines impulsions ne sont pas comptées par Domoticz, parfois une dizaine d’affilée (lorsque je teste en manuel à raison de 1...3 basculements par seconde, mais ces « loupés » sont également présents à une fréquence bien moins élevée)

Ce que j’ai vérifié :
- les impulsions données par l’ampoule reed => OK
- la charge du Raspberry => OK
- changer de GPIO, etc …
Et surtout, lorsque je fais un « pinctrl poll XX » le Raspberry « voit » toutes les impulsions.
Ce n’est donc pas une histoire de longueur de câble ou de pull-up, mais bien un soucis au niveau de Domoticz.

Infos :
Domoticz 2024.6 (build 16150)
Generic sysfs GPIO
Raspberry Pi 4
Debian 12

Si quelqu’un a une idée ?

Merci d’avance ;)
psubiaco
Messages : 55
Inscription : 21 mars 2021, 21:19
Localisation : Pieve di Soligo, Italy
Contact :

Re: Comptage via GPIO

Message par psubiaco »

Salut,
Domoticz gère parfois une file d'attente d'événements très longue : pour chaque événement il exécute des scripts. De plus, lorsqu'il effectue une sauvegarde de la base de données, tous les événements sont gelés.
Je suggère d'utiliser un module qui compte les impulsions : par exemple les modules DomBus peuvent compter jusqu'à une fréquence de 500 Hz.
J'utilise avec succès DomBus avec un compteur d'eau de 150 à 200 Hz, tout comme certains compteurs de puissance/énergie à sortie pulsée.
DomBus12 est très très bon marché et fonctionne très bien, mais presque tous les modules DomBus ont des entrées E/S (qui peuvent être utilisées comme compteur, bien sûr). Connectez simplement la sortie Reed entre une E/S et GND, connectez le module via un câble d'alarme à 4 fils à un adaptateur RS485/USB et à une alimentation 12 V.
Installez le plugin python pour DomBus, redémarrez Domoticz, puis entrez dans le panneau des commutateurs, définissez une adresse unique pour le module Dombus, choisissez le port d'E/S sur lequel vous avez connecté le capteur Reed et configurez-le comme compteur en écrivant IN_COUNTER dans l'appareil. Description.

https://www.creasol.it/fr/products/domotics

Exemple : Dombus12 connecté à 3 sorties pulsées (compteurs d'énergie)
AN_energy_meter_dombus12_800.png
AN_energy_meter_dombus12_800.png (282.1 Kio) Consulté 32606 fois

Exemple 2 : Dombus37 connecté à un débitmètre d'eau
creDomBus37_hotwater.png
creDomBus37_hotwater.png (451.53 Kio) Consulté 32605 fois
Paolo Subiaco

J'utilise des modules DomBus, conçus pour la domotique Domoticz. Video
Facile à interconnecter (bus 4 fils RS485), très fiable, très faible consommation, no pollution RF!
Facebook - Youtube
Kohntark
Messages : 6
Inscription : 12 juil. 2024, 07:18

Re: Comptage via GPIO

Message par Kohntark »

Merci pour ta réponse.
Domoticz gère parfois une file d'attente d'événements très longue : pour chaque événement il exécute des scripts. De plus, lorsqu'il effectue une sauvegarde de la base de données, tous les événements sont gelés.
S’il s’agissait d’un buffer alors le comptage finirait par s’incrémenter, hors ce n’est pas le cas.
Idem pour les backups et autres « cron » qui tournent.
Là, je perds constamment des impulsions, quelque-soit la fréquence.

Par ailleurs je ne souhaite pas ajouter de matériel (coût, complexité, consommation électrique, …) pour un truc aussi simple (mais je garde ton lien au frais, ça pourrait potentiellement me servir dans le futur)

Cordialement-
Dernière modification par Keros le 12 juil. 2024, 12:38, modifié 1 fois.
Raison : Ajout des balises de citation. Ajout de lire la section Bien utiliser le forum
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Modération

Message par Keros »

Sujet déplacé dans la section dédiée au DIY.
Kohntark
Messages : 6
Inscription : 12 juil. 2024, 07:18

Re: Comptage via GPIO

Message par Kohntark »

Bon, vu que ça me démange et que j’aimerai comprendre le pourquoi du comment, j’ai fait quelques tests.
J’ai simulé, via un générateur de fonction, un signal carré (duty 50%), répété 20 fois.
Côté Domoticz c’est un script DZEvent tout con qui incrémente un compteur en fonction des impulsions envoyées au GPIO.
Le Raspberry semble ne louper aucune impulsion (lorsque l’on fait un « pinctrl poll xx »)

A 1Hz on voit déjà que Domoticz loupe des impulsions. A 2Hz c'est encore plus significatif. Au delà il n'y a plus d'incrémentation (ou presque)

Clairement j'ai loupé quelque chose, je ne veux pas croire que Domoticz est incapable de gérer un simple contact qui commute 2 fois par seconde.
... un truc de config quelque part ?

Merci à ceux qui me mettront sur la piste ;)
Pièces jointes
compteur_gpio_domoticz
compteur_gpio_domoticz
pluviometre.png (54.46 Kio) Consulté 32526 fois
Dernière modification par Kohntark le 13 juil. 2024, 20:42, modifié 1 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Modération

Message par Keros »

En hébergeant les images à l'extérieur du forum, il y a de fort risques qu'elles ne soient plus disponibles dans quelque temps comme ici, ou encore . Est-ce que tu peux éditer ton message et suivre les indications données dans la section Bien utiliser le forum ? Merci
Kohntark
Messages : 6
Inscription : 12 juil. 2024, 07:18

Re: Comptage via GPIO

Message par Kohntark »

Bon, force est de constater que la gestion des GPIO dans Domoticz est une grosse daube (et je ne parle même pas du kernel 6.6)
Afin d’éliminer toute problématique qui pourrait venir de mon installation existante, j’ai installé from scratch un Raspberry PI OS (Bookworm 6.6.31+rpt-rpi-v8) sur un PI400 ainsi que Domoticz.(Version: 2024.7) ... mêmes résultats.
Donc, clairement, Domoticz est incapabale de gérer les GPIO dès 1Hz (duty 50%), en tout cas nativement.
Pourtant, dans le code source, on trouve bien la gestion des exceptions, un “sysfsdebounce” qui descend à 1 ms (WTF ?) ... d’après moi c’est buggé.
Sans doute est-ce lié à l’utilisation de Sysfs (qui est obsolète)

Bref, l’une des solutions possibles est (peut-être) de passer par Node Red.
J’ai fait quelques tests et les résultats sont sans appel : Aucune perte d’impulsion.
Ca passe à 25Hz avec un duty à 20%, largement suffisant pour une utilisation Domotique.
Reste plus qu’à claquer quelques dumrmy pour récupérer (enfin) ce pluviomètre.
Ça devrait le faire :)
higgins91
Messages : 668
Inscription : 17 nov. 2016, 11:06

Re: Comptage via GPIO

Message par higgins91 »

petite question, as-tu mesuré le délais entre 2 bascules de ton pluviomètre quand il pleut ?
Quand j'ai refait le miens avec un arduino wemos, j'ai mesuré en gros 1.1mm d'eau par bascule. A part sur une averse qui doit arriver dans les Antilles, je ne pense pas qu'on atteigne le rythme de 1cm d'eau en moins de 10 secondes.... :shock:
Donc pas sur de l'utilité de descendre sous la seconde pour compter les bascule ?
Dz version : 2023.2
Rpi 4 avec dongle téléinfo, RFXCom, sondes 1-wire et GPIO
Kohntark
Messages : 6
Inscription : 12 juil. 2024, 07:18

Re: Comptage via GPIO

Message par Kohntark »

Salut,

Non, je ne l’ai pas testé lorsqu’il pleut.
Je ne me souviens plus des valeurs correspondant à une bascule.
En fait, je me suis aperçu du problème en souhaitant l'étalonner (verser un volume d’eau connu et compter le nombre d’impulsions)

Tu as sans doute raison sur la fréquence, puisque je n’habite pas aux Antilles :D
Mais, mais … le problème n’est pas seulement le nombre de basculements par seconde, mais aussi (et surtout) la durée de l’impulsion.
J’ai constaté que Domoticz (mes relevés précédents), avec son utilisation de sysfs, n’était pas fiable, même avec des impulsions à 500 ms (1Hz 50 % duty)
Hors mon pluviomètre émet des impulsions qui doivent avoisiner les 100ms.

J’espère que les prochaines versions de Domoticz corrigeront cette problématique car en l’état l’utilisation des GPIO est dans bien des cas impossible (à moins que j’ai loupé quelque chose, mé j’vois pas)
Kohntark
Messages : 6
Inscription : 12 juil. 2024, 07:18

Re: Comptage via GPIO

Message par Kohntark »

Pour résumer ce post et le clore :
Domoticz (2024.7) ne semble pas en mesure de gérer l’acquisition d’impulsions inférieures à 500ms (sur Raspberry 4), même lorsque les interruptions sont activées et avec un sysfsdebounce au minimum.
Il est donc nécessaire de déléguer la gestion des GPIO.
Pour ma part je suis passé par Node-Red et le résultat est parfait, même avec des impulsions à 8ms.
(en gros j'implémente un compteur dans Node-Red que je publie ensuite en MQTT vers Domoticz)
Répondre