Générer un fichier XML a partir de données HTML

Générer un fichier XML a partir de données HTML - HTML/CSS - Programmation

Marsh Posté le 03-07-2013 à 21:21:34    

Bonjour à tous,  
 
Je suis un peu nouveau dans la programmation mais j'avance avec mes petits moyens.
 
Je suis en train de vouloir récuperer les données émises par ma pompe à chaleur, que je voudrait compiler dans un fichier xml, que pourra lire ma box domotique.
 
La carte ethernet en question est un carte PCO Web de Carel  : Lien vers la notice
 
Sur cette on peut apperlier les différentes variables via :
http://adresse_qui_va_bien/config/ [...] |A|101|102

Code :
  1. <PCOWEB>
  2. <PCO>
  3. <DIGITAL>
  4. <VARIABLE>
  5. <INDEX>1</INDEX>
  6. <VALUE>0</VALUE>
  7. </VARIABLE><VARIABLE>
  8. <INDEX>2</INDEX><VALUE>0</VALUE></VARIABLE></DIGITAL><INTEGER><VARIABLE><INDEX>11</INDEX><VALUE>1</VALUE></VARIABLE><VARIABLE><INDEX>12</INDEX><VALUE>25</VALUE></VARIABLE></INTEGER><ANALOG><VARIABLE><INDEX>101</INDEX><VALUE>0.0</VALUE></VARIABLE><VARIABLE><INDEX>102</INDEX><VALUE>0.0</VALUE></VARIABLE></ANALOG></PCO></PCOWEB>


Je voudrais générer un XML toutes les 5 minutes pour récuperer certaines variables, pas toutes.
 
J"ai réussi a l"aide de la notice carel de générer un html qui me sort les données importantes :
 
http://adresse_qui_va_bien/http/veralite/test.html

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta content="text/html; charset=ISO-8859-15" http-equiv="content-type">
  5. <title>Pompe à chaleur</title>
  6. <script src="pw_ajax.js" type="text/javascript"></script>
  7. <script type="text/javascript">
  8. // arrays used by the javascript library, DO NOT USE OTHER NAMES!
  9. digitals = new Array;
  10. integers = new Array;
  11. analogs = new Array;
  12. var timestamp;
  13. function getVariables() {
  14. // N.B. The function getParams is defined in the file pw_ajax.js
  15. // This reads variables Digitals 1 and 2, Integers 11 and 12 and
  16. // analogues 101 and 102
  17. // and then copy them into the arrays declared here above to the
  18. // cells with the index equal to their supervisry index
  19. // e.g. analogue 101 is copied into the array called "analogs" to the index 101
  20. // The string is composed by: TYPE|START_INDEX|END_INDEX|TYPE2|START_INDEX2...
  21. // It can contain up to 5 different ranges of variables
  22. getParams('/config/xml.cgi','D|1|2|I|11|12|A|1|58');
  23. }
  24. function parseResults() {
  25. // The following instructions assign the values of the variables
  26. // in the arrays to an element of the HTML page to be visualized
  27. document.getElementById("analog1" ).innerHTML=analogs[1];
  28. document.getElementById("analog2" ).innerHTML=analogs[2];
  29. document.getElementById("analog3" ).innerHTML=analogs[3];
  30. document.getElementById("analog5" ).innerHTML=analogs[5];
  31. document.getElementById("analog9" ).innerHTML=analogs[9];
  32. document.getElementById("analog53" ).innerHTML=analogs[53];
  33. document.getElementById("analog54" ).innerHTML=analogs[54];
  34. document.getElementById("analog58" ).innerHTML=analogs[58];
  35. document.getElementById("currentTime" ).innerHTML=timestamp;
  36. // Refresh the variables every 5 seconds (the time is ms)
  37. timer=setTimeout('getVariables()',5000);
  38. }
  39. </script>
  40. </head>
  41. <body onLoad="getVariables();">
  42. <!—- The onLoad is necessary to load the variables as soon as the page loads -->
  43. Date-Heure <span id="currentTime"></span><br>
  44. <table>
  45. <tr>
  46. <td>Temp ext :</td><td><span id="analog1"></span></td>
  47. </tr>
  48. <td>Temp départ :</td><td><span id="analog5"></span></td>
  49. </tr>
  50. <td>Temp retour 1 :</td><td><span id="analog2"></span><td> / </td><td><span id="analog53"></span></td>
  51. </tr>
  52. <td>Temp retour 2 :</td><td><span id="analog9"></span><td> / </td><td><span id="analog54"></span></td>
  53. </tr>
  54. <td>Temp ECS :</td><td><span id="analog3"></span><td> / </td><td><span id="analog58"></span></td>
  55. </tr>
  56. </table>
  57. </body>
  58. </html>


 
Mais je ne sais absolument pas comment générer un fichier xml avec les valeurs qui vont bien.
 
Si une âme charitable pourrait m’aiguiller j'en serais très reconnaissant


Message édité par aure013 le 03-07-2013 à 21:23:01

---------------
Mon Feedback !! - Pentax K200D :)
Reply

Marsh Posté le 03-07-2013 à 21:21:34   

Reply

Marsh Posté le 04-07-2013 à 09:22:57    

Il te faut une technologie coté serveur pour écrire un fichier .xml, et pourquoi partir d'un html dérivant d'un xml plutôt qu'utiliser le xml directement ?
 
En php tu aura besoin de simplexml_load_file()
 
Tu manipules le xml pour supprimer les noeuds dont tu n'as pas besoin et tu sauvegardes dans un fichier
 
Tu trouveras plein de tutoriel très bien fait pour apprendre sur ce site :
http://www.siteduzero.com/informat [...] e-du-zcode


---------------
D3
Reply

Marsh Posté le 04-07-2013 à 14:58:10    

En fait en Html je peux appeler ma variable par <%var(0,2,1)%> par exemple, je ne sais pas comment la lancer en php :/
 
Je vais faire un tour sur le site du Zero, merci mechkurt :jap:


Message édité par aure013 le 04-07-2013 à 14:58:51

---------------
Mon Feedback !! - Pentax K200D :)
Reply

Marsh Posté le 04-07-2013 à 15:35:16    

[:ab614]  
 
Pour écrire un xml, tu auras besoin d'une technologie "coté serveur", à partir de la je penses qu'il te sera plus simple de parser et épurer directement un xml que de passer par un intermédiaire en html.
 
Bon courage !


---------------
D3
Reply

Marsh Posté le 30-09-2013 à 17:38:00    

Bonjour aure013,
 
Je ne sais pas si tu t'en es sorti, mais la carte IP Carel qui est sur ta gestion de PAC Dimplex est normalement capable de générer directement un fichier xml avec les valeurs que tu souhaites y faire apparaître et te la pousser en FTP Push


Message édité par domotifred le 30-09-2013 à 17:38:28
Reply

Marsh Posté le 30-09-2013 à 21:33:46    

Bon, c'est relativement simple, en fait.
Quel format doit avoir ton XML de sortie pour ta box domotique?
 
Parce que clairement, ça passe par du cgi au niveau du serveur, et si tu fais

http://adresse_qui_va_bien/config/xml.cgi?N|A|1|58


Ça devrait te générer un XML nouveau format (donc avec le temps de la mesure) et les 58 paramètres analogiques, a filtrer et remettre en forme en fonction de ta sortie désirée.
J'essaierais même  

http://adresse_qui_va_bien/config/xml.cgi?N|A|1|3|A|5|5|A|9|9|A|53|54|A|58|58


car au vu de la spec pdf, ça pourrait coller, et ne générer que les XML pour les variables nécessaires  (si la syntaxe avec des A multiples passe)
Et il suffirait de remettre en forme le XML obtenu (par du XSLT ou autre).
 
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 03-10-2013 à 09:49:30    

Bonjour,
 
De mon côté, j'ai réussi à paramétrer la carte IP Carel da ma PAC Dimplex pour qu'elle envoie automatiquement en FTP Push un fichier XML contenant les valeurs que je surveille. C'est très simple.
Si quelqu'un est intéressé...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed