Export des données au format openmetrics

Forums Serveur WES Site WEB embarqué Export des données au format openmetrics

  • Post
    n0made
    Participant

      Hello,

      j’aimerai exporter les données au format openmetrics (pour intégration dans prometheus / grafana).
      J’ai tenté de créer un fichier .CGX, ça fonctionne, par contre, impossible d’afficher un retour chariot, le retour du GET se fait sur une ligne.
      Ca fait 2h que je cherche, je trouve rien.

      Exple:

      cat PROM.CGX
      t toto
      t tata
      t tutu\n
      . End of script must be closed with period.
      

      Renvoi:

      # curl http://admin:admin@wes/prom.cgx
      tototatatutu\n%
      

      Une idée de comment on peut retourner à la ligne avec des scripts cgi ?

      • Ce sujet a été modifié le il y a 2 années et 6 mois par n0made.
      0
      0
    Vous lisez 26 fils de discussion
    • Replies
        cdlog2
        Modérateur

          Bonjour,

          Vous pouvez formater le résultat de la requête CGX sous forme d’un String dans lequel vous pouvez insérer des \n

          # Exemple prom.cgx format JSON
          # Ajout d’un return pour chaque ligne
          #
          t « {[\n
          c W0T0 { ‘sonde1’ : ‘%.01f’ }, \n
          c W0T1 { ‘sonde2’ : ‘%.01f’ }, \n
          c W0T2 { ‘sonde3’ : ‘%.01f’ } \n
          t ]}\n »
          .

          Curl http://admin:admin@wes/prom.cgx
          Vous retourne « {[\n { ‘sonde1’ : ‘19.2’ }, \n { ‘sonde2’ : ‘19.5’ }, \n { ‘sonde3’ : ‘18.6’ } \n]}\n »

          # Exemple prom.cgx format CGX
          # ajout un return en fin du CGX
          #
           » <data>
          c W0T0 <sonde1>%.01f</sonde1>
          c W0T1 <sonde2>%.01f</sonde2>
          c W0T2 <sonde3>%.01f</sonde3>
          t </data> \n »
          .

          Curl http://admin:admin@wes/prom.cgx
          Vous retourne « <data><sonde1>19.2</sonde1><sonde2>19.5</sonde2><sonde3>18.6</sonde3></data>\n »

          ATTENTION,
          le Content_Type rendu dans le Header de Réponse retourné par le WES pour les requêtes type CGX est toujours de type MIME CGX. quelque soit le formatage et contenu du fichier CGX lui même.

          Votre navigateur analyse le Content-type dans la réponse Header du WES et va s’apercevoir, si vous rajouter des guillemets ou bien que vous rendez un format Json au lieu d’un Cgx,  que le format du fichier n’est pas de type MIME CGX et dans ce cas le navigateur va vous afficher une Erreur, car il essaie de Parser la réponse rendue pour afficher le résultat dans sa fenêtre.

          Mais la réponse rendue par le WES est correctement reçu tel que vous le formatez. Voir la réponse de la requête via la console avec F12.
          Reste à voir si prometheus / grafana analyse aussi le Content_Type rendu dans le Header de réponse ? Si Oui, dans ce cas vous ne pourrez pas tricher en mettant ces guillemets !

          Autre solution, reste à voir si prometheus / grafana peut gérer des Scripts soit Python ou PHP ou Java ? Dans ce cas vous vous lancer la requête depuis le Script et vous forcer un retour chariot dans la réponse au retour de la requête *Curl CGX depuis le script.

          Cdt

          0
          0
          n0made
          Participant

            J’ai tenté d’inclure un fichier, mais ça m’ajoute pas de une fin de ligne à la sauce unix (\n) mais mais DOS (\r\n), ce qui est interdit par openmetrics !

            {9:40}~/wes/_ [si-preprod] # cat -e PROM.CGX
            t wes_up 1$
            i PROMNEWLINE.INC$
            t wes_super 1$
            .$
            
            {9:41}~/wes/_ [si-preprod] # cat -e PROMNEWLINE.INC
            $
            #$
             $
            
            # curl -s http://admin:admin@wes/prom.cgx  | cat -e
            wes_up 1^M$
            #^M$
             ^M$
            wes_super 1%
            
            • Cette réponse a été modifiée le il y a 2 années et 6 mois par n0made.
            • Cette réponse a été modifiée le il y a 2 années et 6 mois par n0made.
            0
            0
            cdlog2
            Modérateur

              RE: Essayez de modifier les « \n\r » par un simple « \n » via la commande linux sed conjointement avec la réponse de curl.

              0
              0
              cdlog2
              Modérateur

                Re: Si vous essayez de transformer le CGX en tant qu’un String en rajoutant des Guillemets comme proposé dans mon précédent Post, ne copiez pas mes Démo tel quel, car le BLOG modifie tous les caractères Guillemet avec des caractères similaires mais codés ascii différemment.

                Il faut remplacer tous ces guillemets simple et double côte avec ceux de votre clavier.

                Cdt

                 

                0
                0
                cdlog2
                Modérateur

                  Re : Curl lui ne fait pas d’analyse du Content_Type du Header de réponse des requêtes qu’il envoie. Les réponses sont transparentes pour Curl.

                  Donc simplement réceptionner la réponse Curl depuis openmetrics comme un String,  rep = str ( curl …..)

                  0
                  0
                  n0made
                  Participant

                    Je ne pense pas que prometheus analyse le content_type, en tous cas il n’accepte pas les « \n », ni les newline à la sauce dos (\r\n), ni les guillemets.

                    quand la page renvoi :

                    # curl -s http://admin:admin@wes/prom.cgx | cat -e
                    tic_base 000513839 ^M$
                    test 1%
                    

                    Prometheus me crache :

                    
                    expected timestamp or new record, got "\r" ("INVALID") while parsing: "tic_base 000513244 \r
                    

                    Prometheus fonctionne vraiment comme un curl. Et il attend un format de type openmetrics. Et ce format stipule que chaque ligne doit terminer par un \n, par exemple :

                    # curl -s localhost:9090/metrics  | cat -e | head -3
                    # HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.$
                    # TYPE go_gc_duration_seconds summary$
                    go_gc_duration_seconds{quantile="0"} 2.3458e-05$
                    

                    $ correspond à un newline unix (\n)
                    ^M$ correspond à un newline dos (\r\n)

                    Je peux toujours placer un serveur php ou autre entre le wes et le prometheus, pour faire l’équivalent d’un sed -e « s/\r// », mais c’est pas très élégant, surtout pour un simple retour chariot !

                    0
                    0
                    cdlog2
                    Modérateur

                      RE:

                      Si vous souhaitez créer votre propre fichier prom CGX afin de ne pas modifier le fichier HOMEVAL.CGX, c’est simple à faire.

                      Vous créez votre prom.cgx spécifique pour vos Pinces en rajoutant les guillemets comme expliqué dans mon précédent Post pour ajouter vos retour chariots et vous copiez votre fichier cgx dans la racine de la carte SD.

                      Vous devez rajouter une instance sur votre fichier prom.cgx dans le fichier INDEX.HTM, par le rajout en ligne 185 :

                      var homeact = new periodicObj(« WEBPROG/CGX/homeact.CGX »);       // Ligne existante
                      var homecfg = new periodicObj(« WEBPROG/CGX/homeini.CGX »);       // Ligne existante
                      var homeval = new periodicObj(« WEBPROG/CGX/homeval.CGX »);     // Ligne existante
                      var prom = new periodicObj(« prom.CGX »);                                        // Ligne à rajouter (#185)

                      Ensuite vous devez lancer cette instance prom séquentiellement toutes les secondes via la Cde ci-dessous que vous copiez à la suite de celle existante pour le homeval en ligne ~ +/- #387,  juste avant la : function $(« #modif »).click(function(){

                      setInterval(function() {updateMultiple(homeval,update);},1000);     // Ligne existante
                      setInterval(function() {updateMultiple(prom,update);},1000);           // Ligne à rajouter

                      $(« #modif »).click(function(){

                      Voila c’est tout, vous êtes libre de formater votre prom.CGX pour vos Pinces comme vous le souhaitez, sans mettre la panique ailleurs !

                      cdt

                       

                      0
                      0
                      cdlog2
                      Modérateur

                        RE faite ceci dans votre prom.cgx

                         

                        # Exemple prom.cgx format CGX
                        # ajout un return en fin du CGX
                        #
                         » <data>\n
                        c W0T0 <sonde1>%.01f</sonde1>\n
                        c W0T1 <sonde2>%.01f</sonde2>\n
                        c W0T2 <sonde3>%.01f</sonde3>\n
                        t </data> \n »
                        .

                         

                        0
                        0
                        n0made
                        Participant

                          Le client qui va requêter la page .htm est équivalent à curl, ce n’est pas un navigateur. Il n’interprète pas le javascript.
                          Idem pour les guillemets, ils ne sont pas interprétés:

                          {11:22}~ [si-preprod] # cat wes/_/PROM.CGX
                          t "
                          c Tb11tic_base %09u \n
                          t test 1 \n
                          t "
                          .
                          {11:22}~ [si-preprod] # curl -s http://admin:X@wes/prom.cgx | cat -e
                          "tic_base 000513947 \ntest 1 \n"%
                          

                          ==> expected a valid start token, got « \ » » (« INVALID ») while parsing: « \ » »

                          Quand me ne met qu’un ligne, ça passe sans pb, mais bon, je vais pas écrire un fichier .cgx par métrique…

                          En tous cas, merci pour votre aide.
                          Je vais essayer de farfouiller dans la doc arm keil voir si j’ai pas moyen d’ajouter une newline à la forme unix.

                          0
                          0
                          cdlog2
                          Modérateur

                            Bonjour,

                            Formatez votre RPOM.CGX comme ci-dessous, que vous copiez dans la racine de la SD

                            # PROM.CGX
                            #
                            t  « 
                            c PPT <array><var>PCE</var><value>0,%d,%d,%d,%d</value></array> \n
                            c PVV <array><var>SEC</var><value>%d</value></array> \n
                            c Pej1 <java><var>PCEeJ_1</var><value>%.02f</value></java> \n
                            c Pej2 <java><var>PCEeJ_2</var><value>%.02f</value></java> \n
                            c Pej3 <java><var>PCEeJ_3</var><value>%.02f</value></java> \n
                            c Pej4 <java><var>PCEeJ_4</var><value>%.02f</value></java> \n
                            c PCj1 <java><var>PCEcJ_1</var><value>%.03f</value></java> \n
                            c PCj2 <java><var>PCEcJ_2</var><value>%.03f</value></java> \n
                            c PCj3 <java><var>PCEcJ_3</var><value>%.03f</value></java> \n
                            c PCj4 <java><var>PCEcJ_4</var><value>%.03f</value></java> \n
                            c Pem1 <java><var>PCEeM_1</var><value>%.01f</value></java> \n
                            c Pem2 <java><var>PCEeM_2</var><value>%.01f</value></java> \n
                            c Pem3 <java><var>PCEeM_3</var><value>%.01f</value></java> \n
                            c Pem4 <java><var>PCEeM_4</var><value>%.01f</value></java> \n
                            c PCm1 <java><var>PCEcM_1</var><value>%.01f</value></java> \n
                            c PCm2 <java><var>PCEcM_2</var><value>%.01f</value></java> \n
                            c PCm3 <java><var>PCEcM_3</var><value>%.01f</value></java> \n
                            c PCm4 <java><var>PCEcM_4</var><value>%.01f</value></java> \n
                            c Pea1 <java><var>PCEeA_1</var><value>%.0f</value></java> \n
                            c Pea2 <java><var>PCEeA_2</var><value>%.0f</value></java> \n
                            c Pea3 <java><var>PCEeA_3</var><value>%.0f</value></java> \n
                            c Pea4 <java><var>PCEeA_4</var><value>%.0f</value></java> \n
                            c PIt1 <html><id>PCEiJ_1</id><value>%.01f kWh</value></html> \n
                            c PIt2 <html><id>PCEiJ_2</id><value>%.01f kWh</value></html> \n
                            c PIt3 <html><id>PCEiJ_3</id><value>%.01f kWh</value></html> \n
                            c PIt4 <html><id>PCEiJ_4</id><value>%.01f kWh</value></html> \n
                            c PIt1 <html><id>PCEiJ_1</id><value>%.01f kWh</value></html> \n
                            c PIt2 <html><id>PCEiJ_2</id><value>%.01f kWh</value></html> \n
                            c PIt3 <html><id>PCEiJ_3</id><value>%.01f kWh</value></html> \n
                            c PIt4 <html><id>PCEiJ_4</id><value>%.01f kWh</value></html> \n
                            t  \n « 
                            .

                            et modifiez et rajouter les lignes 238 et 238 bis

                            AD+='<tr><td>Total jour (conso)</td><td><span id= »PCEcJ_’+id+' » class= »val_GRAS »></span>kWh&nbsp;<span id= »PCEeJ_’+id+' »></span>&nbsp;<span class= »money »/></td></tr>’;

                            AD+='<tr><td>Total jour (injec)</td><td><span id= »PCEiJ_’+id+' » class= »val_GRAS »></span>kWh&nbsp;<span></span><span></span></td></tr>’;

                            Créez et Activez l’Instance prom comme décrit plus haut.

                            Récupérer le String de la réponse curl :    strRep = str( curl ….)

                            Cela devrait fonctionner normalement.

                            Attention au guillemets du BLOG !!!!

                            Cdt

                            0
                            0
                            cdlog2
                            Modérateur

                              RE : Désolé,  j’ai fait une erreur dans le fichier prom.cgx

                              Voici comment le formater # PROM.CGX

                              #prom.cgx
                              #
                              t  »
                              c Pej1 <java><var>PCEeJ_1</var><value>%.02f</value></java> \n
                              c Pej2 <java><var>PCEeJ_2</var><value>%.02f</value></java> \n
                              c Pej3 <java><var>PCEeJ_3</var><value>%.02f</value></java> \n
                              c Pej4 <java><var>PCEeJ_4</var><value>%.02f</value></java> \n
                              c PCj1 <java><var>PCEcJ_1</var><value>%.03f</value></java> \n
                              c PCj2 <java><var>PCEcJ_2</var><value>%.03f</value></java> \n
                              c PCj3 <java><var>PCEcJ_3</var><value>%.03f</value></java> \n
                              c PCj4 <java><var>PCEcJ_4</var><value>%.03f</value></java> \n
                              c PIt1 <html><id>PCEiJ_1</id><value>%.01f kWh</value></html> \n
                              c PIt2 <html><id>PCEiJ_2</id><value>%.01f kWh</value></html> \n
                              c PIt3 <html><id>PCEiJ_3</id><value>%.01f kWh</value></html> \n
                              c PIt4 <html><id>PCEiJ_4</id><value>%.01f kWh</value></html> \n
                              t  \n  »
                              .

                              c’est mieux ainsi et plus court !!!

                              Cdt

                              0
                              0
                              cdlog2
                              Modérateur

                                Re: pour les PCEiJ_x (les 4 derniers) remplacer les %.01f par %.03f pour avoir 3 chiffres après la virgule pour les Injections kWh

                                0
                                0
                                n0made
                                Participant

                                  Merci mais je pense qu’il y a une incompréhension.
                                  Ici je cherche simplement à récupérer le retour d’un script CGX et d’y ajouter des newline au format unix (\n)
                                  Je ne souhaite pas modifier l’affichage du serveur web du wes pour y ajouter des valeurs d’injection.
                                  l’idée est d’avoir un retour formaté comme ça :

                                  
                                  curl -s http://admin:X@wes/prom.cgx | cat -e
                                  tic_base 000513947$
                                  pince_conso{pince_no="1"} 123$
                                  pince_conso{pince_no="2"} 456$
                                  wes_up 1$
                                  

                                  Hors la sortie du fichier CGX est sur une ligne.

                                  J’arrive à ajouter une nouvelle ligne en ajoutant dans le script cgx:

                                  
                                  i newline.inc
                                  

                                  quel que soit son contenu. Cependant, les newline ajoutées sont au format DOS et non UNIX (\r\n et non juste \n)

                                  0
                                  0
                                  cdlog2
                                  Modérateur

                                    RE:

                                    Ok, je comprend maintenant ! effectivement je pensais que vous vouliez aussi modifier la page Accueil du WES pour vos Pinces.

                                    Vous travaillez sous Linux, pourquoi ne pas utiliser tout simplement Curl pour lancer un petit Script Python ou PHP qui lancera de son côté la requête sur homeval.cgx modifié ou mieux sur votre prom.cgx au WES

                                    Toujours depuis votre Script, vous retournez à Curl, la réponse du WES au format tel que attendu par openmetrics

                                    Vous créez votre prom.cgx séparé de Homeval.cgx et comme cela si vous le souhaitez, vous pourrez aussi modifier facilement la Page accueil du WES si vous créez l’instance de prom.cgx dans la page accueil.

                                    C’est simple à faire !

                                     

                                    0
                                    0
                                    cdlog2
                                    Modérateur

                                      Lorsque je lance le fichier prom.cgx depuis un WES de Test (pas de Pinces connecté) formaté comme le dernier prom.cgx que j’ai posté, je reçois ceci en retour :

                                      » <java><var>PCEeJ_1</var><value>0.00</value></java> \n <java><var>PCEeJ_2</var><value>0.00</value></java> \n <java><var>PCEeJ_3</var><value>0.00</value></java> \n <java><var>PCEeJ_4</var><value>0.00</value></java> \n <java><var>PCEcJ_1</var><value>0.000</value></java> \n <java><var>PCEcJ_2</var><value>0.000</value></java> \n <java><var>PCEcJ_3</var><value>0.000</value></java> \n <java><var>PCEcJ_4</var><value>0.000</value></java> \n <html><id>PCEiJ_1</id><value>0.0 kWh</value></html> \n <html><id>PCEiJ_2</id><value>0.0 kWh</value></html> \n <html><id>PCEiJ_3</id><value>0.0 kWh</value></html> \n <html><id>PCEiJ_4</id><value>0.0 kWh</value></html> \n \n  »

                                      Je peux formater le prom.cgx au format JSON au lieu de CGX, comme cela je peux le parser JSON facilement sous Python.

                                      ensuite il suffit de prendre les valeurs du JSON et construire la réponse tel que attendu par openmetrics

                                      Je peux vous faire le script Python si vous le souhaitez ? Il faut avoir Python 3 installé dans votre Linux.

                                      Dites moi ?

                                      Cdt

                                       

                                      0
                                      0
                                      n0made
                                      Participant

                                        Oui c’est ce que je vais finir par faire, mais j’aurai bien aimé m’en passer, ça implique de lancer un serveur web entre les 2 c’est dommage.
                                        Une fois fini je ferai un petit article avec le rendu pour vous montrer à quoi ça ressemble, c’est sympa !
                                        Merci en tous cas pour votre aide

                                        0
                                        0
                                        cdlog2
                                        Modérateur

                                          Pourquoi passer par un serveur WEB, openmetrics n’est pas capable d’activer un simple Script en Local ? comme Jeedom, Domoticz etc

                                          Le script peut ensuite lancer la requête au WES via Curl par exemple ou par requests sous Python, etc..

                                          Je ne connais pas du tout openmetrics !

                                           

                                          0
                                          0
                                          n0made
                                          Participant

                                            Bonjour

                                            Bon j’ai fini par faire un script en Go qui parse la sortie du script CGX ajoute des \n:

                                            Le script .CGX:

                                            
                                            t # HELP wes_up useless---
                                            t # TYPE wes_up gauge---
                                            t wes_up 1---
                                            #
                                            t # HELP tic_base Index BASE en Wh---
                                            t # TYPE tic_base counter---
                                            c Tb11tic_base %09u---
                                            #
                                            t # HELP tic_intens TIC intensite instantané---
                                            t # TYPE tic_intens gauge---
                                            c ii10tic_intens %d---
                                            #
                                            t # HELP tic_puiss TIC puissance apparante en VA---
                                            t # TYPE tic_puiss gauge---
                                            c iP00tic_puiss %d---
                                            #
                                            t # HELP pce_conso Pinces consommation en kWh---
                                            t # TYPE pce_conso counter---
                                            c PCa1pce_conso{pce="ID1"} %.02f---
                                            c PCa2pce_conso{pce="ID3"} %.02f---
                                            c PCa3pce_conso{pce="ID2"} %.02f---
                                            c PCa4pce_conso{pce="PV"} %.02f---
                                            #
                                            t # HELP pce_prod Pinces production en kWh---
                                            t # TYPE pce_prod counter---
                                            c PIa1pce_prod{pce="ID1"} %.02f---
                                            c PIa2pce_prod{pce="ID3"} %.02f---
                                            c PIa3pce_prod{pce="ID2"} %.02f---
                                            c PIa4pce_prod{pce="PV"} %.02f---
                                            #
                                            t # HELP pce_intens Pinces intensite instantané---
                                            t # TYPE pce_intens gauge---
                                            c P A1pce_intens{pce="ID1"} %.02f---
                                            c P A2pce_intens{pce="ID3"} %.02f---
                                            c P A3pce_intens{pce="ID2"} %.02f---
                                            c P A4pce_intens{pce="PV"} %.02f---
                                            #
                                            t # HELP pce_puiss Pinces puissance apparante---
                                            t # TYPE pce_puiss gauge---
                                            c PPT1pce_puiss{pce="ID1"} %d---pce_puiss{pce="ID3"} %d---pce_puiss{pce="ID2"} %d---pce_puiss{pce="PV"} %d---
                                            

                                            Le script Go:

                                            
                                            package main
                                            
                                            import (
                                            "bufio"
                                            "fmt"
                                            "net/http"
                                            "regexp"
                                            )
                                            
                                            func metrics(w http.ResponseWriter, req *http.Request) {
                                            
                                            resp, err := http.Get("http://admin:admin@wes/PROM.CGX")
                                            if err != nil {
                                            panic(err)
                                            }
                                            defer resp.Body.Close()
                                            
                                            //fmt.Println("Response status:", resp.Status)
                                            re := regexp.MustCompile(<code>---</code>)
                                            scanner := bufio.NewScanner(resp.Body)
                                            for i := 0; scanner.Scan() && i < 2; i++ {
                                            fmt.Fprintln(w, re.ReplaceAllString(scanner.Text(), "\n"))
                                            }
                                            
                                            if err := scanner.Err(); err != nil {
                                            panic(err)
                                            }
                                            }
                                            
                                            func main() {
                                            
                                            http.HandleFunc("/metrics", metrics)
                                            
                                            http.ListenAndServe(":8080", nil)
                                            }
                                            

                                            Et donc le curl :

                                            
                                            {10:48}~/Projets/wes/monitoring # curl localhost:8080/metrics
                                            # HELP wes_up useless
                                            # TYPE wes_up gauge
                                            wes_up 1
                                            # HELP tic_base Index BASE en Wh
                                            # TYPE tic_base counter
                                            tic_base 000533011
                                            # HELP tic_intens TIC intensite instantané
                                            # TYPE tic_intens gauge
                                            tic_intens 1
                                            # HELP tic_puiss TIC puissance apparante en VA
                                            # TYPE tic_puiss gauge
                                            tic_puiss 320
                                            # HELP pce_conso Pinces consommation en kWh
                                            # TYPE pce_conso counter
                                            pce_conso{pce="ID1"} 20.35
                                            pce_conso{pce="ID3"} 15.26
                                            pce_conso{pce="ID2"} 2.12
                                            pce_conso{pce="PV"} 0.97
                                            # HELP pce_prod Pinces production en kWh
                                            # TYPE pce_prod counter
                                            pce_prod{pce="ID1"} 0.00
                                            pce_prod{pce="ID3"} 0.01
                                            pce_prod{pce="ID2"} 0.00
                                            pce_prod{pce="PV"} 17.09
                                            # HELP pce_intens Pinces intensite instantané
                                            # TYPE pce_intens gauge
                                            pce_intens{pce="ID1"} 0.29
                                            pce_intens{pce="ID3"} 5.44
                                            pce_intens{pce="ID2"} 0.17
                                            pce_intens{pce="PV"} 5.08
                                            # HELP pce_puiss Pinces puissance apparante
                                            # TYPE pce_puiss gauge
                                            pce_puiss{pce="ID1"} 50
                                            pce_puiss{pce="ID3"} 1284
                                            pce_puiss{pce="ID2"} 28
                                            pce_puiss{pce="PV"} -1199
                                            
                                            • Cette réponse a été modifiée le il y a 2 années et 6 mois par n0made.
                                            0
                                            0
                                            n0made
                                            Participant

                                              Derrière, c’est intégré par prometheus, qui propose un langage de requête pour jouer avec les données, exemple:

                                              Screenshot-2023-03-27-10-55-29-oajl7b

                                              0
                                              0
                                              n0made
                                              Participant

                                                A-t-on la possibilité de récupérer les compteurs des consos et prod totaux, en plus des compteurs année, mois, jour ?

                                                La doc indique:

                                                • PCj Consommation Journée pince X

                                                • PCm Consommation Mois pince X

                                                • PCa Consommation Année pince X

                                                 

                                                mais rien pour le total, depuis le début des mesures.

                                                • Cette réponse a été modifiée le il y a 2 années et 5 mois par n0made.
                                                0
                                                0
                                                cdlog2
                                                Modérateur

                                                  Bonjour,

                                                  En principe votre demande correspond à l‘Index Total Actuel : c pIU(x) qui correspond au nombres d’impulsions soit à la consommation Globale depuis la mise en service du Compteur, divisé par le nombre d’impulsion pour l’Unité utilisé.

                                                  Exemple si index actuel est : 12345678 et que la config défini 1000 pulses / kWh alors la conso globale est 12345,678 kWh

                                                  Valeur dans le PLSVAL.CGX

                                                  c pIU1<text><id>PLSa1</id><value>%.0f</value></text>
                                                  c pIU2<text><id>PLSa2</id><value>%.0f</value></text>
                                                  c pIU3<text><id>PLSa3</id><value>%.0f</value></text>
                                                  c pIU4<text><id>PLSa4</id><value>%.0f</value></text>
                                                  c pIU5<text><id>PLSa5</id><value>%.0f</value></text>
                                                  c pIU6<text><id>PLSa6</id><value>%.0f</value></text>

                                                  Les consommations Jour, Mois et Année sont tous calculées par la différence de leur Index respectif par rapport à l’Index Total Actuel

                                                  Conso Jour = Index actuel – Index début de Journée
                                                  Conso Mois = Index actuel – Index début de Mois
                                                  Conso Année = Index actuel – Index début d’Année

                                                  Cdt

                                                  0
                                                  0
                                                  n0made
                                                  Participant

                                                    Bonjour,

                                                     

                                                    Il s’agit des pinces et non des compteurs d’impulsion. Je pense que j’ai trouvé par contre les valeurs ne correspondent pas tout à fait :

                                                     

                                                    PROM-TEST.CGX :

                                                    t # ——— avec total anneé: —

                                                    t —

                                                    c PCa1pce_conso{pce= »ID1″} %.02f—

                                                    c PCa2pce_conso{pce= »ID3″} %.02f—

                                                    c PCa3pce_conso{pce= »ID2″} %.02f—

                                                    c PCa4pce_conso{pce= »PV »} %.02f—

                                                    t —

                                                    c PIa1pce_prod{pce= »ID1″} %.02f—

                                                    c PIa2pce_prod{pce= »ID3″} %.02f—

                                                    c PIa3pce_prod{pce= »ID2″} %.02f—

                                                    c PIa4pce_prod{pce= »PV »} %.02f—

                                                    t —

                                                    t # ——— avec index: —

                                                    t —

                                                    c P W1pce_conso{pce= »ID1″} %.03f—

                                                    c P W2pce_conso{pce= »ID3″} %.03f—

                                                    c P W3pce_conso{pce= »ID2″} %.03f—

                                                    c P W4pce_conso{pce= »PV »} %.03f—

                                                    t —

                                                    c PPi1pce_prod{pce= »ID1″} %.03f—

                                                    c PPi2pce_prod{pce= »ID3″} %.03f—

                                                    c PPi3pce_prod{pce= »ID2″} %.03f—

                                                    c PPi4pce_prod{pce= »PV »} %.03f—

                                                    #

                                                     

                                                    Renvoi :

                                                     

                                                    #

                                                     

                                                     

                                                    avec total anneé:

                                                     

                                                    pce_conso{pce= »ID1″} 114.86

                                                    pce_conso{pce= »ID3″} 86.14

                                                    pce_conso{pce= »ID2″} 48.12

                                                    pce_conso{pce= »PV »} 5.90

                                                     

                                                    pce_prod{pce= »ID1″} 0.00

                                                    pce_prod{pce= »ID3″} 0.02

                                                    pce_prod{pce= »ID2″} 0.00

                                                    pce_prod{pce= »PV »} 164.95

                                                     

                                                    #

                                                     

                                                     

                                                    avec index:

                                                     

                                                    pce_conso{pce= »ID1″} 116.767

                                                    pce_conso{pce= »ID3″} 87.581

                                                    pce_conso{pce= »ID2″} 48.355

                                                    pce_conso{pce= »PV »} 6.339

                                                     

                                                    pce_prod{pce= »ID1″} 235730085112134870000000000000000000000000000000000000000000000000000000000000.000

                                                    pce_prod{pce= »ID3″} 235730085112134870000000000000000000000000000000000000000000000000000000000000.000

                                                    pce_prod{pce= »ID2″} 235730085112134870000000000000000000000000000000000000000000000000000000000000.000

                                                    pce_prod{pce= »PV »} 235730085112134920000000000000000000000000000000000000000000000000000000000000.000

                                                     

                                                     

                                                    Etant donné que j’ai installé le wes en mars, j’aurai pensé que les valeurs « total année » (PCa) correspondrait exactement aux valeurs « avec index » (P W)

                                                     

                                                    Par contre je ne comprends pas les valeurs d’injection.

                                                     

                                                    Je me suis basé sur un fichier DATA_JEEDOM.CGX qui trainait

                                                     

                                                     

                                                    0
                                                    0
                                                    n0made
                                                    Participant

                                                      Bon j’ai trouvé dans PCEVAL :

                                                       

                                                      t # --------- avec total anneé: ---
                                                      t ---
                                                      c PCa1pce_conso{pce="ID1"} %.02f---
                                                      c PCa2pce_conso{pce="ID3"} %.02f---
                                                      c PCa3pce_conso{pce="ID2"} %.02f---
                                                      c PCa4pce_conso{pce="PV"} %.02f---
                                                      t ---
                                                      c PIa1pce_prod{pce="ID1"} %.02f---
                                                      c PIa2pce_prod{pce="ID3"} %.02f---
                                                      c PIa3pce_prod{pce="ID2"} %.02f---
                                                      c PIa4pce_prod{pce="PV"} %.02f---
                                                      t ---
                                                      t # --------- avec index: ---
                                                      t ---
                                                      c P W1pce_conso{pce="ID1"} %.03f---
                                                      c P W2pce_conso{pce="ID3"} %.03f---
                                                      c P W3pce_conso{pce="ID2"} %.03f---
                                                      c P W4pce_conso{pce="PV"} %.03f---
                                                      t ---
                                                      c PIt1pce_prod{pce="ID1"} %.03f---
                                                      c PIt2pce_prod{pce="ID3"} %.03f---
                                                      c PIt3pce_prod{pce="ID2"} %.03f---
                                                      c PIt4pce_prod{pce="PV"} %.03f---
                                                      #
                                                      

                                                      Donne:

                                                      
                                                      #
                                                      
                                                       avec total anneé:
                                                      
                                                      pce_conso{pce="ID1"} 114.86
                                                      pce_conso{pce="ID3"} 86.14
                                                      pce_conso{pce="ID2"} 48.15
                                                      pce_conso{pce="PV"} 5.90
                                                      
                                                      pce_prod{pce="ID1"} 0.00
                                                      pce_prod{pce="ID3"} 0.02
                                                      pce_prod{pce="ID2"} 0.00
                                                      pce_prod{pce="PV"} 164.96
                                                      
                                                      #
                                                      
                                                       avec index:
                                                      
                                                      pce_conso{pce="ID1"} 116.771
                                                      pce_conso{pce="ID3"} 87.581
                                                      pce_conso{pce="ID2"} 48.386
                                                      pce_conso{pce="PV"} 6.339
                                                      
                                                      pce_prod{pce="ID1"} 0.000
                                                      pce_prod{pce="ID3"} 0.017
                                                      pce_prod{pce="ID2"} 0.000
                                                      pce_prod{pce="PV"} 165.008
                                                      

                                                      Pourquoi cette petite différence ?

                                                      0
                                                      0
                                                      cdlog2
                                                      Modérateur

                                                        Re: Je pense que les différences des résultats rendus en valeurs de conso par rapport aux valeurs des index est induit par le fait que le WES doit calculer la valeur Float des Conso par rapport à la valeurs Float de l’Index correspondant mais arrondie suivant la valeur des unités après la virgule !?

                                                         

                                                        0
                                                        0
                                                        n0made
                                                        Participant

                                                          Si je demande un foat au centième (%.02f) pour les 2, j’ai toujours une valeur différente:

                                                          
                                                          #
                                                          
                                                           avec total anneé:
                                                          
                                                          pce_conso{pce="ID1"} 115.76
                                                          pce_conso{pce="ID3"} 86.14
                                                          pce_conso{pce="ID2"} 48.25
                                                          pce_conso{pce="PV"} 5.91
                                                          
                                                          pce_prod{pce="ID1"} 0.00
                                                          pce_prod{pce="ID3"} 0.02
                                                          pce_prod{pce="ID2"} 0.00
                                                          pce_prod{pce="PV"} 164.96
                                                          
                                                          #
                                                          
                                                           avec index:
                                                          
                                                          pce_conso{pce="ID1"} 117.67
                                                          pce_conso{pce="ID3"} 87.58
                                                          pce_conso{pce="ID2"} 48.49
                                                          pce_conso{pce="PV"} 6.35
                                                          
                                                          pce_prod{pce="ID1"} 0.00
                                                          pce_prod{pce="ID3"} 0.02
                                                          pce_prod{pce="ID2"} 0.00
                                                          pce_prod{pce="PV"} 165.01
                                                          
                                                          0
                                                          0
                                                          cdlog2
                                                          Modérateur

                                                            Concernant les Consos calculées par rapport à l’Index global pour les Compteurs Pulses, les valeurs rendues sont exactes.

                                                            OR comme il y a une légère différence dans les résultats entre les conso et index pour les Pinces et si ce n’est pas induit par un calcul de type ABS(x) alors il est possible que @nicolas intègre une variation en fonction du secteur mesuré et calcul du <span class= »formule »>cos φ mesuré ? </span>

                                                            <span class= »formule »>Ou bien tien compte d’un ajustage de la valeur conso avec la valeur de calibrage CAL(x) défini pour chaque pinces visible dans le fichier PCEAMP.CFG du dossier CFG. exemple CAL0=0.730057
                                                            </span>

                                                            Seul @Nicolas peut donner cette infos.

                                                            Cdt

                                                            0
                                                            0
                                                            nicolas_cartelec
                                                            Maître des clés

                                                              c PCa = Consommation Année pince

                                                              c PIa = Injection Année pince

                                                              c P W = index actuel pince

                                                              c PIt = Index total injection

                                                              La très légère différence sur votre WES est certainement due à la calibration en atelier… (on remet à 0 les conso pas l’index)

                                                              Enfin le WES n’est pas un appareil de mesure certifié et des différences (minimes comme sur vos copies d’écran) sont possibles !

                                                               

                                                              0
                                                              0
                                                          Vous lisez 26 fils de discussion
                                                          • Vous devez être connecté pour répondre à ce sujet.