› Forums › Serveur WES › Installation & Configuration › Récupération valeur sur fichier data.cgx
- Ce sujet contient 11 réponses, 2 participants et a été mis à jour pour la dernière fois par
kouros, le il y a 4 années et 1 mois.
- Post
-
Bonjour, ayant installé un autre serveur: Jeedom, j’utilise un script pour recupérer les valeurs du WES pour les incorporer a jeedom, j’utilise un fichier .cgx modifié du data.cgx. Tout fonctionne bien.
Par contre je viens de voir pour recupérer la valeur de conso d’un compteur d’eau installé, je recupère bien la bonne valeur, jusqu’a que la conso ne dépasse pas 1000 litres, au-delà le wes donne la valeur de conso en m3, par exemple pour 2l j’ai bien recupérer la valeur 2, mais par contre pour une conso de 1500l je recupère la valeur de 1,5, donc Jeedom inscris une conso de 1,5 l, d’ou erreur. J’ai beau cherché dans tous les fichier .cgx : data.cgx, mon fichier modifié et meme le fichier du plugin WES pour Jeedom que j’ai essayé, cela me renvoi que la valeur en m3 quand cela dépasse les 1000 litres, y a t’il une solution ?
00
- Replies
-
-
Bonjour,.25
Le plus simple est de passer votre config Pulse du WES en unité de M3 et modifier les Textes Jeedom en relatif.
Il faut dans ce cas modifier la config Pulse côté WES, Il faut passer l’Unité du Cpt Pulses en M3 et définir le nombre d’impulsions pour remplir 1M3 d’eau exemple : Si votre Compteur d’eau envoie 1 Pulse tous les 0.25l soit tous les 1/4 de litre ==> 1 Litre = 4 Pulses * 1 M3 = 4 * 1000 = 4000 Pulses pour l’Unité 1M3.
Vous ne pourrez pas régler le PB avec les CGX, par contre vous pouvez modifier le Script Jeedom, c’est facile à faire. Si vous le voulez envoyer moi votre Script PHP j’apporte la modif dedans.
Cdt
00 -
On peut faire le contraire, Vous configurez toujours votre WES en Unité de M3 au lieu de Litre comme actuellement.
Je peux dans ce cas modifier votre Script Jeedom afin de convertir la valeur reçu M3 en Litre. De cette façon vous ne modifiez rien côté Textes de Jeedom.
Envoyez moi aussi le résultat de la requête : 192.168.x.x/votre-ficher.cgx lancé depuis votre navigateur. Faites un Copie/collé du résultat lu dans un fichier .txt
Envoyez aussi votre CGX spécifique.
C’est pour voir comment le WES vous renvoie les valeurs de ce compteur Eau actuellement.
Cdt
00 -
Bonjour, merci de votre reponse, en piece jointe les fichiers
Le compteur fait 1 impulsion/1litre.
Comme c’est un compteur d’arrosage je dépasse de temps en temps les mille litres suite au remplissage de la piscine, dans la premiere solution, je pense que le WES m’affichera pour une petite conso en 0.00..M3
Je viens d’essayer une autre solution, je récupère l’index du compteur a minuit que je stoque dans un virtuel, puis je recupère toutes les 2 mm par le script l’index, stocké aussi dans un virtuel. Un autre virtuel calcule la conso au litre. Je ne change rien dans la config.
Tout fonctionne actuellement, merci
Attachments:
You must be logged in to view attached files.00 -
Bonjour,
Pour recevoir 3 chiffres après la décimale des Consos Pulses du CGX, il suffit de changer les %0.2f par %0.3f et pour recevoir 4 chiffres après la virgule mettre %.04f.
Comme cela vous aurez une résolution en M3 beaucoup plus précise et votre PB est réglé.
Le WES gère ces valeurs en Float et la décimale peut allez jusqu’à 5 voir 6 chiffres après la virgule, cela dépend de la valeur Source que le WES doit transmettre.
Votre CGX
<impulsion>
c pp1 <PULSE1>%d</PULSE1>
c pIU1<INDEX1>%.0f</INDEX1>
c pCj1 <CONSO_GITE>%.02f</CONSO_GITE>
c pd1 <DEBIT_GITE>%.02f</DEBIT_GITE>
c pCh1<CONSO_VEILLE1>%.02f</CONSO_VEILLE1>
c pCm1<CONSO_MOIS1>%.02f</CONSO_MOIS1>
c pCa1<CONSO_ANNEE1>%.02f</CONSO_ANNEE1>
c pp2 <PULSE2>%d</PULSE2>
c pIU2<INDEX2>%d.%03d</INDEX2>
c pCj1<CONSO1>%.02f</CONSO1>
c pCj2<CONSO2>%.02f</CONSO2>
c pd1 <DEBIT1>%.0f</DEBIT1>
c pd2 <DEBIT2>%.0f</DEBIT2>
c pCh2<CONSO_VEILLE2>%.02f</CONSO_VEILLE2>
c pCm2<CONSO_MOIS2>%.02f</CONSO_MOIS2>
c pCa2<CONSO_ANNEE2>%.02f</CONSO_ANNEE2>
t </impulsion>CGX Modifié
t <impulsion>
c pp1 <PULSE1>%d</PULSE1>
c pIU1<INDEX1>%.0f</INDEX1>
c pCj1 <CONSO_GITE>%.03f</CONSO_GITE>
c pd1 <DEBIT_GITE>%.03f</DEBIT_GITE>
c pCh1<CONSO_VEILLE1>%.03f</CONSO_VEILLE1>
c pCm1<CONSO_MOIS1>%.03f</CONSO_MOIS1>
c pCa1<CONSO_ANNEE1>%.03f</CONSO_ANNEE1>
c pp2 <PULSE2>%d</PULSE2>
c pIU2<INDEX2>%d.%03d</INDEX2>
c pCj1<CONSO1>%.03f</CONSO1>
c pCj2<CONSO2>%.03f</CONSO2>
c pd1 <DEBIT1>%.0f</DEBIT1>
c pd2 <DEBIT2>%.0f</DEBIT2>
c pCh2<CONSO_VEILLE2>%.03f</CONSO_VEILLE2>
c pCm2<CONSO_MOIS2>%.03f</CONSO_MOIS2>
c pCa2<CONSO_ANNEE2>%.03f</CONSO_ANNEE2>
t </impulsion>Warning : J’ai remarque que vous avez plusieurs doublon dans votre CGX !
J’ai rajouté 3 nouvelles Fonctions dans votre Script PHP, qui vous permettent de récupérer une valeur d’un TAG ou bien issus d’un Tableau HTML. Vous pouvez ensuite traiter cette valeur par une multiplication, division, addition, soustraction etc de la valeur et ensuite envoyer à Jeedom le résultat calculé à l’IDX souhaité.
Voir les exemples que j’ai mis en commentaire en fin de votre SCRIPT
Ces fonctions vous apportent de la souplesse pour modifier une valeur récupéré d’un TAG quelconque si besoin est et d’envoyer à JEEDOM le résultat.
Cdt
Attachments:
You must be logged in to view attached files.00 -
RE : En fin de votre Script j’ai rajouté 2 exemples, mis en commentaire, d’utilisation des nouvelles fonctions comme déjà évoqué.
Seulement voila ! j’utilise une variable dans l’exemple que j’ai nommé $valeur et parfois je l’envoie sous le nom de $value à Jeedom !! encore étourdie je suis !
Je suppose que vous l’aurez remarqué, mais je préfère vous renvoyer le Script avec l’exemple corrigé !
Cdt
Attachments:
You must be logged in to view attached files.00 -
RE : Toujours si vous ne voulez pas modifier le Texte dans Jeedom, Vous pouvez grâce à mes nouvelles Fonction transformer les M3 en LITRE.
Pour ce faire il faut quand même configurer le Pulse WES avec l’Unité M3 et mettre 1000 Pulses comme Nb Impulsions puisque votre compteur envoie 1 Pulse par litre.
Ensuite vous modifier votre fichier CGX comme précisé plus haut en changeant les %.02f par %.03f, pour récupérer 3 chiffres après la virgule.
et dans le bas de votre script vous rajoutez ceci :
$valeur = GetValeurXml($xml, ‘impulsion’, ‘CONSO_PISCINE’); // Récupère la valeur du TAG ‘CONSO-PISCINE’
$valeur = $valeur * 1000; // Multiplie la valeur M3 par 1000 pour avoir la valeur en Litre
SetJeedomIdxValue($valeur, 1403); // Envoie dans Jeedom la valeur calculé à l’IDX 1403Voila tout rentre dans l’ordre !
Cdt
00 -
RE : Comme je vous l’ai fait remarqué ci-dessus, vous avez dans votre CGX plusieurs lignes avec le même Code Clé pour récupérer plusieurs fois la même valeur que vous envoyé à des IDX différent dans Jeedom.
C’est perdre du temps et mangé des ressources pour rien. Au lieu de lire dans le Data.cgx à chaque fois la même valeur avec des « TAG » Différent pour les différencier des IDX pour Jeedom, il suffit de récupérer en seule fois la valeur du code clé et ensuite de dispatcher la même valeur dans vos différents IDX jeedom.
Exemple :
$valeur = GetValeurXml($xml, ‘impulsion’, ‘CONSO_PISCINE’); // Récupère la valeur du TAG ‘CONSO-PISCINE’
$valeur = $valeur * 1000; // Multiplie la valeur M3 par 1000 pour avoir la valeur en LitreSetJeedomIdxValue($valeur, 1403); // Envoie dans Jeedom la valeur calculé à l’IDX 1403
SetJeedomIdxValue($valeur, 1620); // Envoie dans Jeedom la valeur calculé à l’IDX 1620
SetJeedomIdxValue($valeur, 1541); // Envoie dans Jeedom la valeur calculé à l’IDX 1541
SetJeedomIdxValue($valeur, 1845); // Envoie dans Jeedom la valeur calculé à l’IDX 1845
etc, etc.00 -
RE : Juste pour répondre à votre remarque, que je n’avais pas relevé précédemment :
je pense que le WES m’affichera pour une petite conso en 0.00..M3
Erreur de votre Part ! Si vous changer les %.02f en %.03f dans votre CGX et que vous configuré dans le WES votre Pulse en unité M3, avec 1000 Pulse par unité, le WES vous affichera 1 litre consommé sous la forme de 0.001
125 litre consommés sera rendu par le WES par 0.125.
1M3 et 235 litres sera rendu par 1.235 etc.
Si dans votre Script Jeedom vous rajouté mon exemple de conversion de M3 vers Litres , votre Jeedom affichera pour 1.245 M3 consommé la valeur 1245 litres ! C’est bien ce que voullez !
Cdt
00 -
RE : Quand je donne les valeurs M3 rendues par … c’est rendu par votre CGX et lue dans jeedom si vous remplacé les %.02f par %.03f
Par contre , n’ayant pas de Compteur eau pour tester ce qui est affiché dans les pages WEB du WES, je ne peux vous dire si vous verrez cette résolution avec 3 chiffres après la virgule pour ce type de Cpt Pulse Eau configuré en M3 ?
S’il est confirmé ? que seulement 2 chiffres sont affichés après la virgule dans les Pages WEB du WES, pour une Configuration d’un Pulse type Eau paramétré en M3, alors @Nicolas il serait bien d’apporter une Modif de ce côté, au moins pour avoir une résolution jusqu’au litre.
Possible que certains fichiers CGX peuvent être modifié, mais pas les data envoyés sous la forme de Tableau HTML dans la page Graphique des Pulses. Ceci est construit depuis le Serveur.
Je ne peux pas le tester, donc je ne m’avance pas ! Il faudrait que quelqu’un confirme comment sont affiché ces valeurs en M3 dans le WES
Cdt
00 -
RE : Je corrige , on peut modifier tous les CGX Pulse du WES en basculant sur des valeurs type %0.3f, avec 3 chiffre après la décimale. Mais cela implique de modifier le fichiers CGX spécifique.
Mais tel que c’est géré, on ne sait pas par défaut, faire la différence d’un compteur PULSE type EAU ou AUTRE ! Afin de personnaliser un Pulse particulier avec 2 ou 3 chiffres après la virgule. Il faut apporter une modif au cas par cas !
Actuellement toutes les valeurs et quelque soit le type de Pulse, auront une résolution avec 2 chiffres après la virgule dans les Pages du WES.
@Nicolas , quel serait le PB pour passer tous les Types d’Unité de Compteurs Pulses en résolution avec 3 chiffres après la virgule ?
00 -
Bonjour, je vous remercie vraiment pour votre temps passé sur cette question.
Finalement je vais rester sur la modification de calcul que je fait sur les index entre minuit et ce moment, celà utilise 3 virtuels sur jeedom et cela ne demande pas de faire des modification sur le WES.
Par contre j’ai modifié le script suivant votre idée.
Merci et bon dimanche
00
-
- Vous devez être connecté pour répondre à ce sujet.