🏊🏻‍♀️ Piscine, X-Pool et IPX800 V5

Bonjour Ă  tous,
l’installation évolue encore
Ajout du capteur de courant pour monitorer la consommation instantanée de la pompe 12V de filtration.
Cette donnée est également envoyée à Jeedom pour historisation.

Le capteur de courant est le module ACS724 (0 Ă  30A).
Il est alimenté en 5V grâce à un TSR 1-2450 (1A sous 5V)

image

La sortie en tension proportionnelle au courant mesuré est reliée directement à une entrée analogique de l’IPX800 V5.
En effet, lorsqu’il est alimenté en 5V, le capteur (0 à 30A) émet 133 mV pour 1A, avec un offset à 500mV lorsque le courant est à 0 . Pouvant mesurer 30A maximum, la tension en sortie maximale serait de 0.5+0.133*30 soit 4.5V environ. Dans mon cas, le courant ne dépassera pas 20A, la tension maximale en sortie sera donc de 3.16V, je n’ai donc pas besoin d’un pont diviseur.

La sortie analogique du capteur est en tension.
Sur l’ipx800, la mesure des volts sur une entrée analogique se fait avec la formule

X * 0.000050354

Ici, nous avons 0.133V pour 1A.
Sur l’IPX800 V5, un objet fonction applique donc la formule suivante :
image

image

Pour stabiliser les mesures, j’ai ajoutĂ© un condensateur de 100nF sur les bornes « Filter Â» prĂ©vues Ă  cet effet.

Malgré l’ajout du condensateur, les mesures, bien que meilleures, restaient inexploitables avec un bruit sur la sortie analogique représentant plusieurs ampères.

J’ai donc fini par ajouter un filtrage numérique sur les valeurs vues par l’ipx800.
Le traitement consiste à calculer une moyenne glissante sur une période choisie.
Ce filtrage numérique est réalisé par l’ipx800 afin de pouvoir scénariser les valeurs traitées.
La méthode consiste à prendre une mesure chaque seconde, calculer la moyenne sur 60 secondes par exemple et stocker le résultat dans une variable analogique. Cette dernière sera donc mise à jour toutes les 60 secondes.

  • crĂ©ation du clignotant de pĂ©riode 1 seconde (TA=950ms; TB=50ms)

  • crĂ©ation du compteur qui additionnera les mesures pendant la pĂ©riode du filtre, soit 60 secondes

    .
    La fonction donnant la valeur de la mesure est liée à la valeur du pas du compteur.

  • crĂ©ation d’un compteur dĂ©nombrant le nombre de donnĂ©es additionnĂ©es dans le compteur « ACS724 SUM Â». Ce compteur sera nommĂ© « NB ACS724 Â»

  • crĂ©ation d’une valeur analogique 32 bits qui stockera le paramètre dĂ©finissant le nombre de donnĂ©es Ă  traiter dans le filtre numĂ©rique. Fixez sa valeur Ă  60. Nommez la « Periode Filtre ACS Â».
    Personnellement, j’ai créé un widget qui permettra de peaufiner la durée du filtrage.
    image

  • crĂ©ation d’un comparateur permettant de vĂ©rifier si le nombre de donnĂ©es traitĂ©es correspond au paramĂ©trage. Nommez le « COMP NBVAL ACS724 Â»

    • comparaison A>=B
    • lier le compteur « NB ACS724 Â» Ă  l’entrĂ©e A
    • lier la variable ANA32 crĂ©Ă©e prĂ©cĂ©demment ("Periode Filtr ACS)
      image
  • CrĂ©ez une variable ANA32. Nommez la « RESULTAT FILTRE ACS724 Â»

  • crĂ©ez un objet fonction calculant la moyenne
    image

dans cet exemple, $327873$ est l’ID de la sortie « valeur Â» du compteur « ACS724 SUM Â» et $327865$ est l’id de la valeur compteur de « NB AC724 Â».

Maintenant que les objets sont en place, créons 2 règles afin d’incrémenter les compteurs et stocker le résultat du filtre dans la variable ANA32

  • Règle 1 : stockage et dĂ©nombrement des donnĂ©es

    • Ă©vĂ©nement : NON BLINKER ACS
    • Action : ON [Compteur : ACS724 SUM].Inc+ [Compteur : NB ACS724].Inc+
  • Règle 2 : Sauvegarde de la moyenne pour transmission Ă  Jeedom

    • Ă©vĂ©nement : [COMPARATEUR : COMP NBVAL ACS724].Output
    • Action : SET VALo [fonction:LISSAGE ACS].Result [ANA32:Resultat Filtre ACS724].valueON [Compteur : ACS724 SUM].Set [Compteur : NB ACS724].Set

CrĂ©ez le PUSH de la variable « Resultat filtre ACS724 Â» et ajoutez le dans votre scène qui contient les autres push vers Jeedom.
Voici le résultat :

En vert les données filtrées, en rouge les données brutes.

acs724
les mesures sont très stables

5 « J'aime »