Min-Max capteur X-THL / capteur 0-10V / capteur 4-20mA

Bonjour,
Y a-t-il une solution pour obtenir sur un widget un visuel min et max des valeurs d’un capteur (température ou hygrométrie pour un X-THL, vitesse anémomètre sur entrée 0-10V ou 4-20mA) ?
Les valeurs seraient mise à jour automatiquement sur une période glissante (exemple 12h /24h) ou alors manuellement via un bouton RESET (pour l’anémomètre par exemple).
Merci d’avance de votre aide.
Romain.

Bonjour le widget courbe analogique fait un suivi sur 12 heures avec un point sur le mini et maxi


Cdt

4 « J'aime »

Oui en effet cela répond en partis à mon besoin.
Le but escompté était d’avoir uniquement les valeurs numériques en 1 seul visuel comme ci-dessous.
Mais je chipote les courbes analogiques c’est déja bien !
Merci didierm !

image

@gce et @Benjamin_GCE pour avis :wink:

4 « J'aime »

Effectivement c’est une excellente idée !

1 « J'aime »

ça ne devrait pas être difficile d’obtenir une vue complète
image
@gce : est-il possible de reporter les min / max en clair sur les widgets graphiques ?
et pourquoi pas Moyenne en plus ?

1 « J'aime »

Je pense qu’il y a largement moyen de faire un petit widget HTML qui lit ces données et affiche valeur, min, max et moyenne :wink:

2 « J'aime »

je pensais aux non développeurs :slight_smile:

le widget connait déjà les valeurs, puisqu’il construit une courbe et affiche des points repères sur min/max. Alors ça doit être simple pour GCE de mettre 3 étiquettes en plus, je pense.
De plus, ce sera surement moins consommateur de mémoire dans le dashboard.

1 « J'aime »

Pour ceux que le développement ne rebute pas, les données sont dans le fichier Graph.xml.

Cependant : extrait de la doc :

graph.xml
Ce fichier est disponible dans les dossier admin et user. Il est régulièrement interrogé par la V4 et
reste lourd à charger, donc à utiliser avec modération également.

1 « J'aime »

Voilà ce que j’ai fait rapidement

image

Commencez par créer une source de données qui s’appelle « GRAPH.XML » et qui pointe vers « /user/graph.xml ».

Ensuite, ajoutez un nouveau widget HTML avec le code JavaScript suivant

// numéro de la variable analogique
const ANA = 4;

// formule de conversion Analogue > Valeur
formule = (x) => 175.72 * x / 65535 - 46.85;

let val, min = Infinity, max = -Infinity, sum = 0;

for (let i = 0; i < 24; i++) {
    val = formule(parseInt(datasources["GRAPH.XML"]["response"][`ana${ANA}val${i}`]));
    if (val < min) min = val;
    if (val > max) max = val;
    sum += val;
}

return `
<p>Val: ${val.toFixed(2)}</p> 
<p>Min: ${min.toFixed(2)}</p>
<p>Max: ${max.toFixed(2)}</p>
<p>Moy: ${(sum / 24).toFixed(2)}</p>
`;

Il y a 2 choses à changer

  • le numéro de la variable analogique que vous souhaitez utiliser
  • la formule de conversion Analogue > Valeur

Pour trouver le numéro de la variable analogique à utiliser, le plus simple que j’ai trouvé est de commencer à ajouter un Graphique et d’inspecter (clic droit, inspecter) la liste des analogiques dans la modale qui s’ouvre.

Chez moi, ça donne

<select id="value">
  <option value="0">Entrée Analogique 1</option>
  <option value="1">Entrée Analogique 2</option>
  <option value="2">Entrée Analogique 3</option>
  <option value="3">Entrée Analogique 4</option>
  <option value="4">SDB #1 Température</option>
  <option value="8">SDB #1 Humidité</option>
  <option value="12">SDB #1 Luminosité</option>
  <option value="5">SDB #2 Température</option>
  <option value="9">SDB #2 Humidité</option>
  <option value="13">SDB #2 Luminosité</option>
  <option value="6">SDB #3 Température</option>
  <option value="10">SDB #3 Humidité</option>
  <option value="14">SDB #3 Luminosité</option>
  <option value="7">SUD OUEST Température</option>
  <option value="11">SUD OUEST Humidité</option>
  <option value="15">SUD OUEST Luminosité</option>
</select>

Le numéro de la variable analogique est le nombre « value ».
Dans mon exemple, j’ai affiché la température de la SDB #1, donc c’est la variable 4.

Ensuite, il faut utiliser la formule de conversion Analogue > Valeur adéquate en fonction du type de la variable analogique. Vous trouverez toutes les formules dans le HelpDesk.

Je laisse le soin aux amateurs (@fgtoul ?) de rendre le HTML plus jolis :wink:

3 « J'aime »

amateur ? moi? :wink: :slight_smile: au sens étymologique alors (amo, amare) :slight_smile:

perso je pense que l’IPX devrait le faire en natif. Ce serait moins lourd que css + javascript + datasource.
J’ai déjà réussi à saturer le dashboard N°1 (32ko) avec mes widgets faits maison, alors maintenant je reste prudent :slight_smile:

1 « J'aime »

Attention,je pense que les valeurs relevées dans le fichier Graph.xml sont des moyennes calculées par l’IPX sur 1 heure.
Les Min, Max sont donc approximatifs. La valeur en grand est aussi une moyenne horaire, donc pas la valeur en cours.

widget sans prétention :
image

// numéro de la variable analogique
const ANA = 4;

// formule de conversion Analogue &gt; Valeur
formule = (x) => 175.72 * x / 65535 - 46.85;

let val, min = Infinity, max = -Infinity, sum = 0;

for (let i = 0; i < 24; i++) {
    val = formule(parseInt(datasources["GRAPH.XML"]["response"][`ana${ANA}val${i}`]));
    if (val < min) min = val;
    if (val > max) max = val;
    sum += val;
}

return `
<style>
.Tableau span {
   display:inline;
   float:left;

  }
.Tableau p {
   clear:left;

  }
.Tableau p.legende {
	font-weight:bold;
	}
.Tableau span.col1 {width:30%}
.Tableau span.col2 {width:30%}
.Tableau span.col3 {width:30%}

</style>
<center>
<div style="font-size:3em;">${val.toFixed(2)} °C</div>
<div class="Tableau">
   <p class="legende">
      <span class="col1">Min</span>
      <span class="col2">Moy</span>
      <span class="col3">Max</span>
   </p>
   <p>
      <span class="col1">${min.toFixed(2)}</span>
      <span class="col2">${(sum / 24).toFixed(2)}</span>
      <span class="col3">${max.toFixed(2)}</span>
   </p>
</div>
</center>
`;
2 « J'aime »

Super ! Si l’ipx le fait en natif dans un widget, la remise à zéro des mini/maxi devrait se faire d’une façon programmable…

Un travail formidable !!! Ce partage est vraiment génial ! Merci à vous tous !
En effet fgtoul je pense qu il ne faut pas trop alourdir les dashboards ! Un widget GCE serait TOP :wink:
GCE peut faire quelque chose pour nous ??

je confirme qu’avec des widgets HTML et javascript, on atteint vite les limites du dashboard. Je l’ai encore éprouvé ce matin, obligé de supprimer des widgets pour pouvoir enregistrer les modifications de l’IHM, et bien sur, pas mal de boulot perdu entre temps.

Bonjour à tous,

Je reviens sur mon sujet des Min Max en lecture digital plutôt que graphique.
D’autant plus que sur notre super X-Display la fonctionnalité serait intéressante !
@gce, @Benjamin_GCE pensez-vous qu’il est possible de faire un widget sur IPX et X-DISPLAY ?
Merci.
:sunglasses:

1 « J'aime »