cdlog2

Forum Replies Created

Affichage de 15 réponses de 391 à 405 (sur un total de 1,618)
  • Replies
    cdlog2
    Modérateur

      Bonjour,

      Je viens de rajouter, pour les mails envoyés par compte WES,  le Corp du message dans l’Objet du mail, comme cela est avec les envoies mails par SMTP.

      Est ce que cela vous convient ainsi ? Doit on rajouter autre chose ?

      Cdt

      Christian

       

      0
      0
      cdlog2
      Modérateur

        RE : Parfois je me demande ?, en reprenant à mon compte le fameux Slogan de la Pub DUC..S,  À quoi ça sert que l’on se déc….sse  !

        0
        0
        cdlog2
        Modérateur

          RE : Le Blog par sécurité refuse de joindre le Fichier perso.cgx

          Je vous le joins à nouveau, mais avec l’extension du fichier en .TXT

          Vous devez renommer le fichier perso.txt par perso.cgx avant de le copier dans la racine de la SD de votre WES

          Attachments:
          You must be logged in to view attached files.
          0
          0
          cdlog2
          Modérateur

            Bonjour,

            Comme vous n’êtes pas précis et ne donnez pas le n° du compteur Impulsion de votre Compteur GAZ
            et vous ne dites pas de qu’elle puissance en W consommé sagit t’il: TIC ??, Pince ??, Pulse ??

            Je vous donne juste un exemple pour lire quelques info de votre Compteur GAZ en supposant qu’il s’agit du Compteur à Impulsion n° 1 dans le WES

            Je joins 1 fichier PERSO.CGX à copier dans la Racine de la Carte Mémoire SD du WES et le fichier d’un Script Home Assistant, non testé, mais qui devrait répondre à vos besoins pour lire les infos du Cpt Pulse 1

            Contenu du fichier PERSO CGX fourni en pièce jointe

            t <?xml version= »1.0″ encoding= »UTF-8″?>
            t <data>
            #
            # Compteur Impulsions
            t <impulsion>
            #
            # Compteur 1
            c pp1 <PULSE1>%d</PULSE1>
            c pIU1<INDEX1>%.03f</INDEX1>
            c pIJ1<INDEXJ1>%.03f</INDEXJ1>
            c pIM1<INDEXM1>%.03f</INDEXM1>
            c pIA1<INDEXA1>%.03f</INDEXA1>
            #
            # Compteur 2
            c pp2 <PULSE2>%d</PULSE2>
            c pIU2<INDEX2>%.03f</INDEX2>
            c pIJ2<INDEXJ2>%.03f</INDEXJ2>
            c pIM2<INDEXM2>%.03f</INDEXM2>
            c pIA2<INDEXA2>%.03f</INDEXA2>
            #
            # Compteur 3
            c pp3 <PULSE3>%d</PULSE3>
            c pIU3<INDEX3>%.03f</INDEX3>
            c pIJ3<INDEXJ3>%.03f</INDEXJ3>
            c pIM3<INDEXM3>%.03f</INDEXM3>
            c pIA3<INDEXA3>%.03f</INDEXA3>
            #
            # Compteur 4
            c pp4 <PULSE4>%d</PULSE4>
            c pIU4<INDEX4>%.03f</INDEX4>
            c pIJ4<INDEXJ4>%.03f</INDEXJ4>
            c pIM4<INDEXM4>%.03f</INDEXM4>
            c pIA4<INDEXA4>%.03f</INDEXA4>
            #
            # Compteur 5
            c pp5 <PULSE5>%d</PULSE5>
            c pIU5<INDEX5>%.03f</INDEX5>
            c pIJ5<INDEXJ5>%.03f</INDEXJ5>
            c pIM5<INDEXM5>%.03f</INDEXM5>
            c pIA5<INDEXA5>%.03f</INDEXA5>
            #
            # Compteur 6
            c pp6 <PULSE6>%d</PULSE6>
            c pIU6<INDEX6>%.03f</INDEX6>
            c pIJ6<INDEXJ6>%.03f</INDEXJ6>
            c pIM6<INDEXM6>%.03f</INDEXM6>
            c pIA6<INDEXA6>%.03f</INDEXA6>
            #
            t </impulsion>
            #
            t </data>
            .

            Exemple de Script homeval, fourni en pièce jointe, pour lire les Info du Cpt GAZ
            (Attention ne pas copier ce script depuis le blog, les chars guillemets ne sont pas OK car transformés par le Blog)

            sensor:

            – platform: rest
            name: weshomeval
            resource: http://IP-DE-VOTRE-WES/perso.cgx
            method: GET
            authentication: basic
            username: RENTRER ICI VOTRE LOGIN-WES
            password: RENTRER ICI VOTRE MOT-PASSE-WES
            json_attributes_path: « $.data »
            json_attributes:
            – « impulsion »
            value_template: ‘OK’
            – platform: template
            sensors:
            wescpt1pulse :
            friendly_name: wes_cpt1_pulse
            device_class : gaz
            unit_of_measurement: ‘m3’
            value_template: >-
            {{ states.sensor.weshomeval.attributes[« impulsion »][« PULSE1 »] | int  }}
            wescpt1indexactuel :
            friendly_name: wes_cpt1_index_actuel
            device_class : gaz
            unit_of_measurement: ‘Idx’
            value_template: >-
            {{ states.sensor.weshomeval.attributes[« impulsion »][« INDEX1 »]| float }}
            wescpt1indexdebjour :
            friendly_name: wes_cpt1_index_debut_jour
            device_class : gaz
            unit_of_measurement: ‘Idx’
            value_template: >-
            {{ states.sensor.weshomeval.attributes[« impulsion »][« INDEXJ1 »]| float }}
            wescpt1indexdebmois :
            friendly_name: wes_cpt1_index_debut_mois
            device_class : gaz
            unit_of_measurement: ‘Idx’
            value_template: >-
            {{ states.sensor.weshomeval.attributes[« impulsion »][« INDEXM1 »]| float }}
            wescpt1indexdebannee :
            friendly_name: wes_cpt1_index_debut_annee
            device_class : gaz
            unit_of_measurement: ‘Idx’
            value_template: >-
            {{ states.sensor.weshomeval.attributes[« impulsion »][« INDEXA1 »]| float }}

            En espérant que cela vous aide à mieux comprendre l’usage des CGX du WES

            Cdt

            Attachments:
            You must be logged in to view attached files.
            0
            0
            cdlog2
            Modérateur

              bonjour o0larry0o

              Est ce qu’à la lecture de mon Précédent Post #12477, vous comprenez mieux l’interaction des fichiers CGX avec les fichiers HTM du WES.

              Normalement dans ce Blog, on ne gère pas le Blog des autres, même si le WES est le sujet de la discussion. Mais je vais faire une petite exception pour vous et juste reprendre un exemple de l’autre Blog qui vous pose problème. Je suppose que vous faites référence à cet extrait de Code dont j’en ai copié juste le début pour explication :

              Au début de ce Code on lance une requête WES sur le fichier homeval.cgx
              Si vous tapez votre propre requête http://login-wes:password-wes@IP-WES/WEBPROG/CGX/homeval.CGX
              depuis votre navigateur vous verrez ce que récupère cette requête HTTP.

              Si la requête réussi, on demande de créer des références Array sur tous les Nodes trouvés ayant pour nom <array>, <bssw>, <java>, <html>

              platform: rest
                  name: weshomeval
                  resource: http://192.168.1.80/WEBPROG/CGX/homeval.CGX
                  method: GET
                  authentication: basic
                  username: admin
                  password: wes
                  json_attributes_path: « $.form »
                  json_attributes:
                    – « array »
                    – « bssw »
                    – « java »
                    – « html »
                  value_template: ‘OK’

              Exemple avec le Node <html> >> on cherche tous les Nodes <html>, dans le résultat de la requête sur Homeval.cgx, On va en trouver 11 ensembles de Node au nom <html>…</html> donc on va créer un Tableau sur ces 11 références > node-html [10] (on commence à l’Index 0)

              Editez le fichier Homeval.cgx de votre WES et vous pourrez trouver ces 11 Nodes soit 11 lignes ayant le Nom du Tag <html>….</html>

              Ensuite on va tester ou récupérer les Valeurs lues dans les TAG <value> affectés à chaque Node <html> ou , array, bssw, java.

              Dans l’exemple du bout de Code extrait ci-dessous on veut récupérer la Valeur contenue dans le Tag <value> du 5eme Nodes <html> trouvé dans le le résultat de la requête sur le fichier homeval.cgx.

              Ce qui revient à récupérer le 5éme Node depuis le array node-html [6]. n’oubliez pas que l’index 0 de l’array existe donc le 5eme Node est en réalité l’Index 6 de l’Array html[6]

              Il se fait que ce 5éme Nodes <html> ou 6eme index de l’Array html[6] fait référence à la ligne :
              c Tn1 <html><id>TICtarif_1</id><value>%s</value></html> de Homeval.cgx
              dont la valeur reçu par la requête Homeval.CGX du WES est chez moi à cette heure :

              <html>
              <id>TICtarif_1</id>
              <value>H. Pleines</value>
              </html>

              Et dans ce Node <html> on trouve le ID « TICtarif_1″ qui défini dans la page INDEX.HTM (si Widget Tic) ou TICVAL.HTM l’endroit ou l’on doit renter l’information contenue dans le tag <value> à savoir le champs >> la Période en cours du TIC 1 dont les valeurs peuvent prendre
              « H. Creuses » ou « H. Pleines. »

              Le bout de programme qui suit veut changer l’état d’un Booléen nommé « wes_tarif_HC » soit en true(1) en false(0) suivant la comparaison qui est faite dans le contenu de la <value> pour vérifier si le texte lu  est  ‘H. Creuses’

              Donc le Code ci-dessous récupère le 5éme Node <html> et teste la <value> H. Creuses et en fonction positionne une référence »wes_tarif_HC » à la valeur 1 ou 0 (true/false) suivant le résultat de la comparaison faite.

                – platform: template
                  sensors:
                     wesheurecreuseraw :
                      value_template: >-
                          {{ states.sensor.weshomeval.attributes[« html »][5][« value »] }}
                     wesheurecreuse :
                      friendly_name: wes_tarif_HC
                      value_template: >-
                        {% if states(‘sensor.wesheurecreuseraw’) == ‘H. Creuses’ %}
                            1
                        {% else %}
                            0
                        {% endif %}

              Voila tout le reste fonctionne à l’identique. Mais je peux vous dire que la personne qui à programmé ce Code, ne doit pas connaître le WES et le fichier DATA.CGX.

              Car s’il avait fait une simple requête sur le DATA.CGX qui se trouve à la racine de la carte SD du WES, au lieu de le faire sur HOMEVAL.CGX, qui peut changer de structure lors de prochaine MAJ WES, ce qui n’est pas vraie pour le DATA.CGX, Cette personne se serait moins creusé les neurones pour récupérer la plus part des Infos qu’il teste ou récupère dans son CODE.

              Si vous avez un contrat Enedis Heure creuse et heure pleine, alors lancez une requête sur le DATA.CGX

              http://login:password@ipwes/DATA.CGX

              Et vous trouverez immédiatement le TAG > <PTEC>H. Pleines</PTEC> qui vous donne l’info rendu par votre Compteur TIC.

              Pas besoin de compter le nombre de Node <html> etc, etc. Il suffit de pointer immédiatement sur le TAG <PTEC> dans le résultat de la requête WES sur le DATA.CGX pour trouver ‘info. Chaque valeurs du WES ont un TAG Spécifique que vous pouvez lire et en extraire la valeur pour traitement.

              Donc pas besoin de calculer sur quel n° de Node <html> se trouve la bonne info que je souhaite traiter !??. On pointe direct sur le bon <TAG> dans le DATA.CGX

              Voila pour expliquer la réponse de Nicolas à votre question !

              Regardez le fichier data.cgx les autres fichiers sont formatés pour l’interface web du WES.

              Cdt

              Christian

              0
              0
              cdlog2
              Modérateur

                RE: ATTENTION , Ce Blog change certains caractères par d’autres visuellement similaire.

                Exemple, Tous les guillemets placés dans un texte de ce BLOG sont modifiés par un Char similaire en Visuel.

                Si vous faites une Copie d’une des Fonctions ou Bloc CGX présentées dans mon précédent Post, sachez qu’il faut reprendre et remplacer tous ces faux guillemets simple ou double côte visible dans le Texte, par de vraie guillemet tapé depuis votre clavier.

                Cdt

                0
                0
                cdlog2
                Modérateur

                  Bonjour,

                  La majorité des Infos du WES peuvent être récupérées par requête HTTP sur le fichier DATA.CGX. < http://login:motpasse@ip-wes/data.cgx >
                  Le Serveur WES renvoie une suite de <TAG>valeur</TAG> dont la valeur contient l’Infos ciblée.

                  Il suffit depuis un Script propre à votre Interface Domotique de créer une Fonction afin de récupérer dans le résultat rendu de la requête DATA.CGX, la Valeur relative au nom d’un TAG de ce DATA.CGX.

                  Exemple de fonction en PHP

                  /*
                  # Retourne la Valeur d’un flux XML type TAG
                  # Paramètres:
                  # – $pXml: contient l’ensemble du document XML à lire.
                  # – $pXmlNoeud: contient le nom du noeud Parent XML à lire.
                  # – $pXmlAttribut: contient le nom de l’attribut XML à lire.
                  */
                  function GetValeurXml($pXml, $pXmlNoeud, $pXmlAttribut) {
                  try {

                  $valeur = $pXml->getElementsByTagName($pXmlNoeud)->item(0)->getElementsByTagName($pXmlAttribut)->item(0)->nodeValue;
                  return $valeur;

                  } catch (Exception $e) {
                  log::add(« WES », « INFO », « XML erreur on Id: ».$pId. »: ».$e->getMessage(), «  »);
                  return 0:
                  }
                  }

                  /*
                  #  exemple d’appel à cette function GetValeurXml pour récupérer depuis Tampon XML, reçu par une requête GET sur le DATA.CGX du WES,
                  #  l’attribut <SONDE1> du Noeud Parent <TEMP>
                  */
                  $Sonde1 = GetValeurXml($xml, ‘TEMP’, ‘SONDE1’);  // On récupère la valeur de la Sonde1 depuis le XML reçu du DATA.CGX

                  Parfois on ne trouve pas une info spécifique dans le fichier DATA.CGX, mais cette Info est lisible dans une Page HTM Lambda. On peut éventuellement trouver comment est généré cette Info dans cette Page HTM. La plus par des valeurs CGX sont identifiable par un nom ID= »xxxx » dans le HTM, La plus part du Temps, vous pouvez facilement trouver le ID d’une valeur qui vous intéresse dans cette Page HTM.

                  Faire un clic droit sur la Valeur dans la Page HTML concernée, puis si vous utilisez Firefox par exemple, vous cliquer sur Inspecter.
                  La Console du Navigateur va s’ouvrir et vous verrez la ligne HTM concernée mise en sélection (bleu) Il suffit de chercher le  ID= »xxxx » dans cette ligne.

                  Puis ensuite pour Trouver les fichier CGX qui sont lus par la Page HTML, il suffit d’ouvrir le fichier HTML de la Page concernée, depuis un Editeur de Texte (Bloc-Notes, autres ..) et vous descendez dans le fichier HTM jusqu’à trouver : <script type= »text/javascript »>
                  Juste en dessous ou pas loin,  vous trouvez 2 parfois 3 lignes qui vous permet de trouver les Fichier CGX utilisés pour gérer cette Page HTM

                  Exemple pour le fichier TICGRAPH.HTM

                  <script type= »text/javascript »>

                  var ticgraph = new periodicObj(« WEBPROG/CGX/TICGRAPH.CGX »);
                  var ticconso = new periodicObj(« WEBPROG/CGX/TICCONSO.CGX »);

                  Un des CGX sert à créer les Textes de base de la Page HTM et l’autre CGX est lancé périodiquement suivant une Tempo, afin de récupérer les Valeurs des divers champs du HTM

                  Donc vous avez le Nom de l’ID du champs de la valeur que vous souhaité et qui est générée dans la Page HTM et vous connaissez les fichiers CGX utilisées dans cette Page, Il suffit de trouvez cet ID dans les CGX du HTM pour trouvez la Ligne avec le Code Clé CGX qui sera interprété par le Serveur WES pour remplir à l’emplacement du %(?) dans la ligne, la Valeur associé au Code clé et l’ID du HTM.

                  Donc ayant le Code Clé du Serveur WES qui renvoie cette Valeur que vous souhaitez par requête, il vous suffit de créer votre Propre fichier ex: PERSO.CGX à placé dans la racine de la carte mémoire SD du WES,

                  Vous avez le Code Clé de l'<ID> lu depuis le fichier CGX du HTM  (exemple de Code Clé « c Xs1″ ) il vous suffit maintenant de formater votre propre ligne dans votre fichier PERSO.CGX comme vous le souhaitez, par exemple : c Xs1 <MON -ID> %(?) </MON -ID>

                  Vous pourrez ensuite récupérer votre Valeur souhaitée pour intégration, en cherchant votre <MON -ID> dans le résultat de la Requête que vous lancée au Serveur WES , sur votre fichier PERSO.CGX : http://login:motpasse@ip-wes/PERSO.CGX.

                  Bon voila, je vous ai expliqué comment trouver la majorité des Code Clé du Serveur WES fin de récupérer une valeur lambda souhaitée.

                  Par ailleurs pour simplifier les écritures programme pour les HTM, mais complexcifier un peu la mécanique décrite précédemment, le Serveur WES peut parfois générer en interne du Code HTM qui sera placé dynamiquement dans une Page HTM qui est en visuel. Vous pouvez trouvez des Code Clé CGX qui vous retourne une Array XML formatée en Tableau html (<tr><td> etc…)

                  Effectivement dans certains fichiers CGX, le WES Formate depuis le Serveur, une Array au format d’un Tableau XML HTML
                  Ce tableau html est ensuite inséré directement dans la Page HTM à l’endroit ou ce trouve un ID= »xxxxx » défini dans le HTM

                  Exemple: Insertion du bloc TIC1, qui se trouve en dessous le graph de la Page TICGRAPH.HTM, et qui reçoit les valeurs Conso kWh et Coût >> jour, mois et Année sous forme de tableaux HTML récupéré par une requête sur le fichier TICGRAPH.CGX

                  La déclaration id= »CPT1_table1″ défini dans le fichier TICGRAPH.HTM l’endroit ou va se placer le Tableau : <table class= »table table-hover table-condensed » id= »CPT1_table1″></table>

                  La déclaration des Codes Clé CGX pour demander au Serveur WES de formater ce tableau HTM TIC1 (conso coût, jour mois année) via le fichier TICGRAPH.CGX :

                  t <html><id>CPT1_table1</id><value><![CDATA[
                  t <colgroup><col></col><col class= »bg-info »></col><col id= »COUL1″></col></colgroup>
                  t <tr><th id= »CONPROD1″ /><th style= »text-align:center »>kWH</th>
                  t <th><span id= »GAINCOUT1″/> <span class= »money »/></th></tr>
                  c jc1
                  c mc1
                  c ac1
                  c tc1
                  t ]]></value></html>

                  Et enfin le résultat du Tableau HTML, rendu par la requête CGX au Serveur WES, relatif au Code Clé CGX :

                  <table class= »table table-hover table-condensed » id= »CPT1_table1″><colgroup><col><col class= »bg-info »><col id= »COUL1″ class= »bg-warning »></colgroup><tbody><tr><th id= »CONPROD1″>Consommation</th><th style= »text-align:center »>kWH</th><th><span id= »GAINCOUT1″>Coût</span> <span class= »money »>€</span></th></tr><tr><td>Jour HP</td><td align= »right »>8.4</td><td align= »right »>1.47</td></tr>
                  <tr><td>Jour HC</td><td align= »right »>6.7</td><td align= »right »>0.88</td></tr>
                  <tr><td>Mois HP</td><td align= »right »>66</td><td align= »right »>11.7</td></tr>
                  <tr><td>Mois HC</td><td align= »right »>34</td><td align= »right »>3.6</td></tr>
                  <tr class= »A0″><td>Année HP</td><td align= »right »>2922</td><td align= »right »>485</td></tr>
                  <tr class= »A0″><td>Année HC</td><td align= »right »>2329</td><td align= »right »>292</td></tr>
                  <tr class= »P0″ style= »display: none; »><td>Période HP</td><td align= »right »>2881</td><td align= »right »>480</td></tr>
                  <tr class= »P0″ style= »display: none; »><td>Période HC</td><td align= »right »>2292</td><td align= »right »>289</td></tr>
                  </tbody></table>

                  On retrouve dans la réponse du CGX, le id= »CPT1_table1″ qui est déclaré en dur côté TICGRAPH.HTM

                  C’est à cette endroit dans le HTML ou sera inséré ce Tableau HTML.

                  Comme ce Tableau HTM ainsi rendu est un peu fouillis on peut via les Code Clé CGX, séparer les Infos JOUR, MOIS et ANNEE pour plus de clarté et cela permet de récupérer les INFO de façon plus lisible depuis une Fonction à déclarer dans votre Script Domotique.

                  Je vais mettre ci-dessous un exemple de fonction écrit en PHP pour récupérer Un à Un les divers data Reçus.
                  Mais auparavant on va faire en sorte d’éclater ce tableau CPT1_table1 par 3 Tableaux >> JOUR, MOIS et ANNEE pour plus de clarté

                  Les Commandes CGX ci-dessous peuvent être incérer dans votre Fichier PERSO.CGX pour récupérer le ou les Tableaux qui vous intéresse. Il faut coller dans votre  PERSO.CGX sans Espace, peut importe placé ou dans le fichier (Attention, pas de ligne vide et la fin de Tous les fichiers CGX doivent se terminer par un point ‘.’) Vous pouvez documenter une ligne en utilisant un  » #  » en début de commentaire.

                  # AJOUT du Tableau HTML TIC Conso coût JOUR
                  t <html><TbljrTIC1>
                  t <![CDATA[
                  c jc1
                  t ]]>
                  t </TbljrTIC1></html>
                  #
                  #
                  # AJOUT du Tableau HTML TIC Conso coût MOIS
                  t <html><TblmoTIC1>
                  t <![CDATA[
                  c mc1
                  t ]]>
                  t </TblmoTIC1></html>
                  #
                  #
                  # AJOUT du Tableau HTML TIC Conso coût ANNEE
                  t <html><TblanTIC1>
                  t <![CDATA[
                  c ac1
                  t ]]>
                  t </TblanTIC1></html>
                  #

                  Si vous regardez bien j’ai déclaré 3 TAG CGX, TbljrTIC1, TblmoTIC1, TblanTIC1, un TAG pour identifier chacun des 3 tableaux,
                  chaque TAG permettant de Cibler par une Fonction PHP par Exemple, chaque Tableaux HTML qui seront crée comme résultat de la requête PERSO.CGX envoyé au WES.

                  Le résultat rendu par le Serveur WES par rapport à ces Codes Clé CGX :

                  <html>
                  <TbljrTIC1>
                  <tr><td>Jour HP</td><td align=right>8.1</td><td align=right>1.42</td></tr> <tr><td>Jour HC</td><td align=right>6.7</td><td align=right>0.88</td></tr>
                  </TbljrTIC1>
                  </html>

                  <html>
                  <TblmoTIC1>
                  <tr><td>Mois HP</td><td align=right>66</td><td align=right>11.6</td></tr> <tr><td>Mois HC</td><td align=right>34</td><td align=right>3.6</td></tr>
                  </TblmoTIC1>
                  </html>

                  <html>
                  <TblanTIC1>
                  <tr class=’A0′><td>Ann&eacute;e HP</td><td align=right>2922</td><td align=right>485</td></tr> <tr class=’A0′><td>Ann&eacute;e HC</td><td align=right>2329</td><td align=right>292</td></tr>
                  </TblanTIC1>
                  </html>

                  Chaque valeur à récupérer pour chacun des 3 Tableaux HTML ce trouve entre des TAG <TD>valeur<TD>
                  Si j’éclate le 1er Tableau nommé TbljrTIC1 (Data JOURS) on retrouve de façon plus lisible les divers info rendus

                  <tr>
                  <td>Jour HP</td>
                  <td align=right>8.1</td>
                  <td align=right>1.42</td>
                  </tr>
                  <tr>
                  <td>Jour HC</td>
                  <td align=right>6.7</td>
                  <td align=right>0.88</td>
                  </tr>

                  On trouve dans le 1er <TD> ou bien à l’Index 0 de l’array du Tableau HTML la valeur « Jour HP »
                  On trouve dans le 2eme <TD> ou bien à l’Index 1 de l’array du Tableau HTML la valeur « 8.1 » qui est le Nb Kwh Jour heure plaine
                  On trouve dans le 3eme <TD> ou bien à l’Index 2 de l’array du Tableau HTML la valeur « 1.42 » qui le coût Jour heure plaine
                  On trouve dans le 4eme <TD> ou bien à l’Index 3 de l’array du Tableau HTML la valeur « Jour HC »
                  On trouve dans le 5eme <TD> ou bien à l’Index 4 de l’array du Tableau HTML la valeur « 6.7 » qui est le nb Wh Jour heure creuse
                  On trouve dans le 6eme <TD> ou bien à l’Index 5 de l’array du Tableau HTML la valeur « 0.88 » qui est le coût Jour heure pleine

                  Donc il suffit de créer une Fonction ex: PHP, dans votre Script Domotique qui puisse récupérer depuis un Tableau html nommé, dans notre exemple TbljrTIC1, un des indexs de l’Array Tableau HTM.

                  On doit en 1er lieu filtrer du Tableau tout les char et mot ce qui ne servent pas de façon à ne garder que

                  <td>Jour HP</td>  >> Index 0 de l’array
                  <td>8.1</td>      >> Index 1 de l’array
                  <td>1.42</td>     >> Index 2 de l’array
                  <td>Jour HC</td>  >> Index 3 de l’array
                  <td>6.7</td>      >> Index 4 de l’array
                  <td>0.88</td>     >> Index 5 de l’array

                  Voici un exemple de fonction PHP qui fait ce travail

                  /*
                  # Retourne la Valeur d’un flux XML type Tableau HTML relatif à un Index dans ce Tableau
                  # Paramètres:
                  # – $pXml: contient l’ensemble du document XML à lire.
                  # – $pXmlNoeud: contient le nom du noeud parent XML à lire.
                  # – $nItem: contient le n° Index du TAG <td> à lire
                  */
                  function GetValeurTableauXml($pXml, $pXmlNoeud, $pItem) {
                  try {

                  // récupération de la zone XML parent du tableau HTML
                  $Tabl = $pXml->getElementsByTagName($pXmlNoeud)->item(0)->nodeValue;

                  // suppression des caractères espaces et textes parasites.
                  $Tabl= str_replace( » align=right », «  », $Tabl);
                  $Tabl= str_replace(« <tr class=’A0′> », «  »,  $Tabl);
                  $Tabl= str_replace(« </td> », «  »,  $Tabl);
                  $Tabl= str_replace(« </tr> », «  »,  $Tabl);
                  $Tabl= str_replace(« \n », «  »,  $Tabl);

                  // récupération de la valeur du N° Item d’un enfant TAG <TD>
                  $Tagtd = explode(« <td> », $Tabl);
                  $valeur = $Tagtd[$pItem];
                  return $valeur;

                  } catch (Exception $e) {
                  echo « Erreur Exception lireValeurTableauXml = « .$e->getMessage();
                  return 0;
                  }
                  }

                  Voici comment on appelle cette fonction en PHP

                  // Exemple Récupération de valeurs issues de Tableau type XML/HTML
                  //##################################################################
                  //
                  // récup du tableau TbljrTIC1 la valeur Kwh et coût HP JOUR

                  $KwJourHP =  GetValeurTableauXml($xml, ‘TbljrTIC1’, 1);    // valeur KW HP TIC1
                  $CoutJourHP =  GetValeurTableauXml($xml, ‘TblanTIC1’, 1);  // valeur Coût HC TIC1

                  Voila, Voila, un peu détaillé, peut être un peu compliqué pour certain, comment vous pouvez récupérer les Infos de ces Tableaux XML formaté HTML (Array comme vous les cité)

                  ATTENTION: Si vous créé vos PROPRE FICHIER CGX, C’est uniquement sous votre responsabilité si cela induit des erreurs dans votre WES. Toujours faire un Backup de la carte SD du WES avant de bricoler dedans.

                  En Dehors du fichier DATA.CGX tel que défini par défaut, qui restera compatible pour toutes les MAJ future du WES,
                  Nicola peut à discrétion modifier les Codes Clè utilisés actuellement pour une version WES donnée, dans les fichier CGX propriétaire de ses fichiers HTM pour gérer les Pages du wEB

                  Par rapport aux prochaines MAJ WES, si votre script PERSO.CGX ne fonctionne plus correctement après, cela sera à vous et uniquement à vous de chercher à régler votre problème; Cela peut être un Code Clé qui à été changé, ou bien l’Usage d’un Tableau XML HTM d’une Page qui est supprimé et remplacé ar de nouveaux code pour afficher les Infos de la Page

                  En aucun cas @Nicolas ou moi même pouvons être responsable, de dysfonctionnement éventuel,  si vous faites des modifs ou rajouter des fichiers CGX Perso dans la carte SD ou modifiez des CGX existant du WES.

                  Cdt

                  Christian

                   

                  0
                  0
                  cdlog2
                  Modérateur

                    Bonjour,

                    J’ai cherché les Docs PDF de votre modèle de compteurs 004681 de Legrand.

                    Pour pouvoir configurer votre compteur il faut communiquer avec lui par le biais de la liaison Modbus RS485
                    Autrement les réglages par défaut sont :

                    Pulse weight: 10Wh par pulse
                    Pulse width: 100 ms

                    Il faut donc paramétrer vos compteurs côté WES :

                    Type de compteur = Electrique
                    Type d’impulsion =Electronique 20ms
                    Unité de mesure = kWh
                    Nombre d’impulsion par unité = 100

                    Cela donne >> 100 pulses pour 1 kWh <==> 100 pulses pour 1000Wh  <<donc>> 1000Wh  / 100pulses ==> 10Wh par pulse
                    Ou bien >> 10Wh par pulse >> donne >> 1000Wh / 10Wh => 100 pulses pour 1000Wh <==> 100 pulses pour 1 kWh

                    Cdt

                     

                    0
                    0
                    cdlog2
                    Modérateur

                      RE: Si vous avez un moment, envoyez moi un mail à testmail@lesutiles.fr. Je suis dispo cet après midi.

                      Je vous répondrez et vous communiquerais mon n° de Téléphone pour que vous puissiez m’appeler afin que l’on gère votre PB plus facilement que depuis le Blog.

                      Cdt

                      0
                      0
                      cdlog2
                      Modérateur

                        Re:

                        Qu’avez vous fait comme Manip ? Avez vous installé la nouvelle MAJ WES ?

                        Si c’est le cas, Avez vous bien supprimé tous les Dossiers et Fichiers de la carte mémoire WES, à exception du Dossier CFG et GRAPH que vous devez conserver, Avant de copier les nouveaux Dossiers et Fichiers de la MAJ.

                        Si en liaison par FTP, vous laissez les anciens dossiers et fichiers de la version WES précédente et que vous copier juste les nouveaux dossier et fichiers de la nouvelle MAJ, par dessus les fichiers déjà existant, vous risquez d’avoir des Erreurs car en Trf par FTP, certains fichiers peuvent être en état Occupé par le Serveur lors de la copie de vos nouveaux fichiers, ce qui résulte que la Copie des fichiers Occupé par le Serveur ne pourront pas être remplacés et dans ce CAS vous allez tournez avec un mélange de fichiers sur deux versions qui peuvent ne plus être compatible entre elles.

                        Il est toujours impératif de supprimer tous les dossiers et fichiers de l’ancienne version avant de copier ceux de la nouvelle MAJ. Vous ne gardez que le Dossier CFG et GRAPH dans la carte mémoire. Il faut surtout que votre navigateur ne soit pas connecté au WES lors de la copie de la MAJ.

                        Après la copie de la MJ, vous devez normalement faire un Reset du wES via le bouton rouge de la carte PCB au moins deux fois de suite par intervalle de 5s. Si vous êtes à distance forcez si cela est possible deux Reboot du Serveur.

                        Surtout avant de charger les pages du WES avec le navigateur, il faut vider le cache du navigateur par CTRL + F5.

                        Dites moi ce que vous avez fait exactement ?

                        Cdt

                         

                        0
                        0
                        cdlog2
                        Modérateur

                          Re :

                          Cela n’a vraiment pas d’importance de la façon de tester ce SW(n), mais il faut rester logique dans la démarche. Si vous pouvez accéder à votre WES vu qu’il est à distance, c’est que le Serveur fonctionne !

                          Mais si vous voulez juste par pure logique visuelle forcer le SW(n) = ON lorsque le WES est en Service, Alors vous inversez le opérations décrites dans mon précédent POST.

                          En 1er lieu vous devez forcer ce SW(n) = OFF lorsque le WES redémarre. Donc vous mettez ce SW(n) = OFF manuellement puis vous forcez un Enregistrement de la Config Relais avec l’OptionSauvegarde des Etatssur ON.

                          A chaque fois que vous voulez enregistrer un nouvel état ON/OFF lambda, vous devez mettre en 1er lieu l’élément sur l’état souhaité et ensuite forcer  l’Enregistrement de cet état dans le WES par un Nouveau Enregistrement de la Config Relais, toujours avec l’Option sur ON.

                          A chaque changement d’un état souhaitez au démarrage du WES, vous devez refaire un Enregistrement de la config Relais avec l’Option Sauvegarde des Etatssur ON.

                          Ensuite côté programmation il suffit d’inverser les tests des lignes programme que j’avais documentés :

                          Source > Switch Virtuel (n) = OFF, — 00:00 à 00:00 le Tlj —- Sortie > eMail « Le Serveur WES a Redémarré ! » — toujours actif
                          Source > Switch Virtuel (n) = OFF, — 00:00 à 00:00 le Tlj —- Sortie > Switch Virtuel (n) = ON au bout de tempo 60 secondes — toujours actif

                          Comme cela le Switch(n) sera automatiquement mis à OFF lorsque le WES redémarre et Visuellement ce Switch(n) sera mis en état ON au bout de la Tempo 60s après le redémarrage du WES et restera sur ON.

                          Pour tester sans redémarrer, vous forcer le Switch(n) sur OFF. Vous devriez recevoir le MAIL et ce Switch(n) devrait passer ON au bout de 60s.

                          Pour tester le redémarrage du WES, Vous faites un Reboot du Serveur depuis la Page Info Serveur dans configuration.  Le WES va redémarrer et vous devriez recevoir votre MAIL d’alerte et au bout de 60s le Switch(n) va passer sur ON.

                          Voilà mais c’est juste symbolique et une logique pure visuelle !

                          Cdt

                           

                          0
                          0
                          cdlog2
                          Modérateur

                            Bonjour,

                            Votre WES ne doit pas être en version WES V 0.85b03  qui est la dernière MAJ en téléchargement.

                            C’est dans cette dernière version que l’on trouve maintenant ‘OFF au bout de la tempo’ qui à été rajouté dans la liste des Actions possibles.

                            Mais effectivement vous pouvez utiliser ‘OFF si cdt vrai pendant tempo‘ qui réagira de la même manière vis à vis du SW(n), vue que son état ne changera pas seul, donc la condition du test sur la Source sera toujours vraie.  ‘Off au bout de la tempo‘ est une action explicite de mise à OFF sans condition.

                            Mettez bien une valeur de tempo entre 30s àt 60s pour bien laissé le temps au WES à s’initialiser au redémarrage. Faites des essais de redémarrage du WES manuellement pour vérifier que vous recevez bien le MAIL attendu.

                            Cdt

                            0
                            0
                            cdlog2
                            Modérateur

                              RE: la durée de 10 secondes pour mettre le Switch (n) = OFF est une tempo trop courte pour fonctionner à coup sur à chaque redémarrage du WES.

                              Changer par une tempo de 30s voir 60s pour laisser plus de temps au WES de gérer ce Switch (n) après un redémarrage

                              Source > Switch Virtuel (n) = ON, — 00:00 à 00:00 le Tlj —- Sortie Switch Virtuel (n) = OFF au bout de tempo 60 secondes — toujours actif

                              Vous pouvez tester l’envoie du Mail en forçant manuellement ce Switch (n) = ON. Il revient OFF par programme suivant votre Tempo.

                               

                              0
                              0
                              cdlog2
                              Modérateur

                                RE: Si vous ne souhaitez pas recevoir le Mail d’alerte sur le Bon fonctionnement du WES induit par le test sur le Switch Virtuel (n) si = ON , lors de l’enregistrement de la Programmation des ces lignes définies dans mon Post précedent, Il faut mettre ce SW(n) manuellement = OFF avant d’enregistrer votre Programmation WES.

                                0
                                0
                                cdlog2
                                Modérateur

                                  Bonjour,

                                  Votre question :

                                  j’ai besoin de quelques précisions sur le schéma avec le MS122402 cela veut il dire que l’on va connecter le bornier ‘AC input status’ du MS122402 au bornier ‘capteur’ du WES avec ensuite un status ON/OFF pour avoir la connaissance d’une coupure ?

                                  Si votre BOX est effectivement Secourue sur Onduleur, Oui vous pouvez connecter le contact ‘NO‘ du bornier « AC input status » du Module de Secours « MS122402« , entre la Masse du WES et une des 2 entrées du WES pour envoyer une MAIL « d’alerte Coupure Courant », en rajoutant ces 2 lignes côté programmation WES :

                                  Source > Entree 1 Etat = ON  — 00:00 à 00:00 le Tlj —- Sortie > eMail « ALERTE COUPURE DE COURANT FRIGOS !!! »
                                  Source > Entree 1 Etat = OFF — 00:00 à 00:00 le Tlj —- Sortie > eMail « INFORMATION COURANT FRIGOS REVENUS A LA NORMALE ! »

                                  Et éventuellement, à l’identique, vous pouvez surveiller le Contact ‘NO’, du bornier « Batt status » de ce Module Secours, connecté sur l’autre entrée WES pour envoyer un MAIL « ALARME Charge BATTERIE Module Secours »

                                  Source > Entree 2 Etat = ON  — 00:00 à 00:00 le Tlj — Sortie > eMail « ALERTE DEFAUT CHARGE BATT WES !!! » — toujours actif
                                  Source > Entree 2 Etat = OFF — 00:00 à 00:00 le Tlj — Sortie > eMail « INFO CHARGE BATT WES REVENUS NORMALE ! » — toujours actif

                                  Effectivement ce Module coûte assez cher, mais est très fiable et permet de sécuriser n’importe quel système basse tension alimenté entre 12V et 24V 10A. Vous pouvez utiliser toutes les batteries aux PLOMB qui peuvent être chargées avec un courant entre 0.3A à 2A (1/10eme Ah batterie)
                                  soit des batteries de type 3Ah à 20Ah.

                                  Mon choix d’utiliser ce Module et de pouvoir l’insérer proprement dans le même Tableau que celui de mon ALIM 12v 10A, WES et mes Cartes Relais 1W, par un Montage rail DIN.

                                  Il y a d’autres type d’Alimentation 12V secourue sur batterie moins chez, sur la toile.

                                  Concernant votre Autre 2eme Question :

                                  Ma question c’est, est-ce qu’il possible de récupérer le fait que le WES ai été arrêté après son redémarrage et dans ce cas envoyer un message comme quoi il y a eu une coupure.

                                  Oui cela est possible. Dans la configuration RELAIS du WES, vous avez une Option « Sauvegarde état (ON/OFF)« , qui permet de demander au WES de Sauvegarder tous les états (ON/OFF) des Switchs Virtuel, Relais WES et Relais 1Wires tel que définis lors de l’enregistrement de cette Option de Config, afin de demander au WES de Repositionner les mêmes états (ON/OFF) lorsque le Serveur WES Redemmarre.

                                  Cela veut dire que vous devez Positionner au Préalable tous les états des Switchs Virtuel et Relais sur On ou OFF, tel que vous le souhaitez les retrouver au démarrage du WES, avant d’enregistrer cette Option Sur ON dans la config Relais.

                                  En suite vous pouvez tester par exemple un Swicth Virtuel ou un Relais du WES pour voir s’il y a eu un changement d’Etat à un moment donné.

                                  Par Exemple vous Positionner manuellement le Switch Virtuel (n) = ON avant d’enregistrer cette « Option » dans la config Relais.
                                  Le WES va Automatiquement remettre ce SW(n) à ON lors d’un Redemarrage du Serveur.

                                  Coté programme du WES vous pouvez tester le chg d’état de ce Switch Virtuel (n) via ces deux lignes de Programmation :

                                  Source > Switch Virtuel (n) = ON, — 00:00 à 00:00 le Tlj —- Sortie > eMail « Le WES fonctionne bien et/ou à Redémarré ! » — toujours actif
                                  Source > Switch Virtuel (n) = ON, — 00:00 à 00:00 le Tlj —- Sortie Switch Virtuel (n) = OFF au bout de tempo 10 secondes — toujours actif

                                  On teste si ce SW(n) = ON et si « OUI » on envoie le MAIL défini, puis on Force ce SW(n) = OFF au bout de 10 secondes.
                                  Si le WES Redémarre, ce SW(n) sera automatiquement remis à ON par le WES et le cycle recommence.

                                  Cela aura pour action de vous envoyer un 1er mail dès l’Enregistrement de votre Programmation WES pour vous dire que le Serveur WES fonctionne correctement. Puis vous recevrez autant fois ce même MAIL à chaque redémarre du Serveur WES.

                                  Cordialement
                                  Christian

                                   

                                  0
                                  0
                                Affichage de 15 réponses de 391 à 405 (sur un total de 1,618)