MPVSUN

L'utilisation de api.eedomus.com et de l'eedomus toolbox

MPVSUN

Messagepar flc85 » 02 Fév 2023 18:02

Bonjour,
Je ne trouve pas la solution pour séléctionner une valeur dans une section
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?><xml>
<rtcc>17:43:22 JE</rtcc>
<paramSys>17:43:22;02/02/2023;On;01:00;0,0;MS_PV2_2;5.0.1;0000220;102e;102c;00:00;00:00</paramSys>
<inAns>244,5;-23,5; 0; 0;220,0;0,0;0,0;0,0;20;20;20;20;20;20;20;20;</inAns><survMm>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</survMm><cmdPos>0;0;0;0;0;0;0;0;</cmdPos><outStat>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</outStat>
<cptVals>d80a;ffffffe9;ffff7623;ff445673;0;0;0;0;</cptVals>
<chOutVal>0;0;0;ff;:0,0;0,0;0,0;0,0;</chOutVal></xml>

je souhaite pouvoir extraire la 2ème valeurs de la section inAns, j'ai essayé /xml/inAns[2] mais cela ne fonctionne pas une idée??
Dernière édition par flc85 le 05 Fév 2023 16:58, édité 1 fois.
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar opa95 » 02 Fév 2023 19:05

Bonjour flc85
flc85 a écrit:Bonjour,
Je ne trouve pas la solution pour séléctionner une valeur dans une section
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?><xml>
<rtcc>17:43:22 JE</rtcc>
<paramSys>17:43:22;02/02/2023;On;01:00;0,0;MS_PV2_2;5.0.1;0000220;102e;102c;00:00;00:00</paramSys>
<inAns>244,5;-23,5; 0; 0;220,0;0,0;0,0;0,0;20;20;20;20;20;20;20;20;</inAns><survMm>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</survMm><cmdPos>0;0;0;0;0;0;0;0;</cmdPos><outStat>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</outStat>
<cptVals>d80a;ffffffe9;ffff7623;ff445673;0;0;0;0;</cptVals>
<chOutVal>0;0;0;ff;:0,0;0,0;0,0;0,0;</chOutVal></xml>

je souhaite pouvoir extraire la 2ème valeurs de la section inAns, j'ai essayé /xml/inAns[2] mais cela ne fonctionne pas une idée??

Ce n'est peut-être pas le plus simple, mais ça marche
substring-before(substring-after(//inAns,';'),';')
:)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar flc85 » 03 Fév 2023 07:37

Oui ça fonctionne, merci, il n'y a pas plus simple? Le 2ème c'était un exemple mais c'est pas gagné pour extraire toutes les valeurs
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar merguez07 » 03 Fév 2023 08:37

Helas, le xpath n'offre pas beaucoup de possibilités avec la présentation de ce type d'xml.

L'idéal et de reformatter avec un script le xml pour faciliter l'extraction des valeurs.

Sans script, il n'y a que des formules tarasbicottées comme le propose OPA95 qui peuvent fonctionner
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: Problème xpath

Messagepar opa95 » 03 Fév 2023 09:48

Bonjour flc85
merguez07 a écrit:Helas, le xpath n'offre pas beaucoup de possibilités avec la présentation de ce type d'xml.

L'idéal et de reformatter avec un script le xml pour faciliter l'extraction des valeurs.

Sans script, il n'y a que des formules tarasbicottées comme le propose OPA95 qui peuvent fonctionner

Merguez07 (salut à toi) a raison.
Il n'est pas difficile de faire un script pour récupérer les données, mais il faudrait savoir à quoi correspondent tes données, lesquelles t'intéressent et ce que tu veux en faire; y a-t-il toujours autant de valeurs?
Bref quelques détails complémentaires, ensuite c'est moins d'une heure pour obtenir quelque chose d'utilisable.
:)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar opa95 » 03 Fév 2023 11:09

Bonjour
C'est résolu, si tu me donnes les infos complémentaires.
En supposant que le XPATH de ton device actuel soit
Code : Tout sélectionner
concat('rtcc=',//rtcc,'@paramSys=',//paramSys,'@inAns=',//inAns)

ou ce que tu veux d'équivalent
ou que tu as le lien http qui te renvoie le fichier xml
Tu crée un device http et tu mets dans VAR1 le,code api du premier device et tu lance un script adapté de celui qui suit
Code : Tout sélectionner
<?php

// V1.0 : opa95 2023-02-03

//$periphs  = getArg('periphId');
//$response = getValue($periphId,$text = false);
//$response = 'rtcc=17:43:22 JE@paramSys=17:43:22;02/02/2023;On;01:00;0,0;MS_PV2_2;5.0.1;0000220;102e;102c;00:00;00:00@inAns=244,5;-23,5; 0; 0;220,0;0,0;0,0;0,0;20;20;20;20;20;20;20;20';
$response = str_replace(',','.',$response);
$arr_response = explode('@',$response);
foreach ($arr_response as $field) {
  list($key,$values) = explode('=',$field);
  $arrValue = array();
  $arr_values = explode(';',$values);
  foreach ($arr_values as $value){
    $result[$key][] = $value;
  }
}

//var_dump($result);
$xml = '<inAns ';
foreach ($result['inAns'] as $key => $value){
  $xml .= 'v'.$key.'="'.$value.'" ';
}
$xml .= '/>';
echo $xml;
?>

Ca donne
Code : Tout sélectionner
array(3) {
  ["rtcc"]=>
  array(1) {
    [0]=>
    string(11) "17:43:22 JE"
  }
  ["paramSys"]=>
  array(12) {
    [0]=>
    string(8) "17:43:22"
    [1]=>
    string(10) "02/02/2023"
    [2]=>
    string(2) "On"
    [3]=>
    string(5) "01:00"
    [4]=>
    string(3) "0.0"
    [5]=>
    string(8) "MS_PV2_2"
    [6]=>
    string(5) "5.0.1"
    [7]=>
    string(7) "0000220"
    [8]=>
    string(4) "102e"
    [9]=>
    string(4) "102c"
    [10]=>
    string(5) "00:00"
    [11]=>
    string(5) "00:00"
  }
  ["inAns"]=>
  array(16) {
    [0]=>
    string(5) "244.5"
    [1]=>
    string(5) "-23.5"
    [2]=>
    string(2) " 0"
    [3]=>
    string(2) " 0"
    [4]=>
    string(5) "220.0"
    [5]=>
    string(3) "0.0"
    [6]=>
    string(3) "0.0"
    [7]=>
    string(3) "0.0"
    [8]=>
    string(2) "20"
    [9]=>
    string(2) "20"
    [10]=>
    string(2) "20"
    [11]=>
    string(2) "20"
    [12]=>
    string(2) "20"
    [13]=>
    string(2) "20"
    [14]=>
    string(2) "20"
    [15]=>
    string(2) "20"
  }
}

Il n'y a plus qu'à fabriquer le XML qui t'intéresse, par exemple
Code : Tout sélectionner
<inAns v0="244.5" v1="-23.5" v2=" 0" v3=" 0" v4="220.0" v5="0.0" v6="0.0" v7="0.0" v8="20" v9="20" v10="20" v11="20" v12="20" v13="20" v14="20" v15="20" />

et demander //inAns/@v1 pour obtenir -23.5
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar flc85 » 03 Fév 2023 11:31

Merci je regarde ça cet après midi et je te tiens au courant
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar opa95 » 03 Fév 2023 12:06

OK
flc85 a écrit:Merci je regarde ça cet après midi et je te tiens au courant

en mettant dans le XPATH
Code : Tout sélectionner
concat('rtcc=',//rtcc,'@paramSys=',//paramSys,'@inAns=',//inAns,'@survMm=',//survMm,'@cmdPos=',//cmdPos,'@outStat=',//outStat,'@cptVals=',//cptVals,'@chOutVal=',//chOutVal)

on peur obtenir avec le script
Code : Tout sélectionner
 :)
<?xml version="1.0" encoding="UTF-8"?>
 <root>
   <rtcc v0="17:43:22 JE" />
   <paramSys v0="17:43:22" v1="02/02/2023" v2="On" v3="01:00" v4="0.0" v5="MS_PV2_2" v6="5.0.1" v7="0000220" v8="102e" v9="102c" v10="00:00" v11="00:00" />
   <inAns v0="244.5" v1="-23.5" v2=" 0" v3=" 0" v4="220.0" v5="0.0" v6="0.0" v7="0.0" v8="20" v9="20" v10="20" v11="20" v12="20" v13="20" v14="20" v15="20" />
   <survMm v0="0" v1="0" v2="0" v3="0" v4="0" v5="0" v6="0" v7="0" v8="0" v9="0" v10="0" v11="0" v12="0" v13="0" v14="0" v15="0" />
   <cmdPos v0="0" v1="0" v2="0" v3="0" v4="0" v5="0" v6="0" v7="0" />
   <outStat v0="0" v1="0" v2="0" v3="0" v4="0" v5="0" v6="0" v7="0" v8="0" v9="0" v10="0" v11="0" v12="0" v13="0" v14="0" v15="0" />
   <cptVals v0="d80a" v1="ffffffe9" v2="ffff7623" v3="ff445673" v4="0" v5="0" v6="0" v7="0" />
   <chOutVal v0="0" v1="0" v2="0" v3="ff" v4=":0.0" v5="0.0" v6="0.0" v7="0.0" />
 <root/>

et donc récupérer n'importe quelle info par //champ/@vi
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar flc85 » 03 Fév 2023 15:36

Le but est d'obtenir les infos d'un optimiseur solaire qui génère un fichier xml à l'adresse suivante 192.168.1.247/status.xml les infos qui m'intéresse le plus sont les 5 premières valeurs de inans.
1-puissance consommée
2-puissance produite
3-% routage 1
4-% routage 2
5-Tension réseau
J'avoue être perdu avec toutes les infos que tu me donnes

Voici le fichier status.xml
Code : Tout sélectionner
<xml>
<rtcc>15:58:45 VE</rtcc>
<paramSys>
15:58:45;03/02/2023;On;01:00;0,0;MS_PV2_2;5.0.1;0000220;102e;102c;00:00;00:00
</paramSys>
<inAns>
0,1;-565,3;25; 0;227,1;0,0;0,0;0,0; 0; 0; 0; 0; 0; 0; 0; 0;
</inAns>
<survMm>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</survMm>
<cmdPos>0;0;0;0;0;0;0;0;</cmdPos>
<outStat>6;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</outStat>
<cptVals>10bee;ffffffec;ffffa2f3;ff43f90a;0;0;0;0;</cptVals>
<chOutVal>0;0;0;ff;:0,0;0,0;0,0;0,0;</chOutVal>
</xml>
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar opa95 » 03 Fév 2023 17:33

Bonjour flc85
flc85 a écrit:Le but est d'obtenir les infos d'un optimiseur solaire qui génère un fichier xml à l'adresse suivante 192.168.1.247/status.xml les infos qui m'intéresse le plus sont les 5 premières valeurs de inans.
1-puissance consommée
2-puissance produite
3-% routage 1
4-% routage 2
5-Tension réseau
J'avoue être perdu avec toutes les infos que tu me donnes

Y a-t-il moyen de récupérer le fichier json plutôt que le fichier XML? peut-être avec une indication de format dans la commande 192.168.1.247/status.xml
:)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar flc85 » 03 Fév 2023 17:41

Je ne pense pas, mais je vais aller voir sur le forum de msunpv
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar flc85 » 03 Fév 2023 18:03

Je n'ai rien trouvé concernant json, il y a bien un script mais pour jeedom, il ne fonctionne pas à cause de fonctions non autorisés sur eedomus
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar opa95 » 03 Fév 2023 18:17

Bonjour flc85
flc85 a écrit:Le but est d'obtenir les infos d'un optimiseur solaire qui génère un fichier xml à l'adresse suivante 192.168.1.247/status.xml les infos qui m'intéresse le plus sont les 5 premières valeurs de inans.
1-puissance consommée
2-puissance produite
3-% routage 1
4-% routage 2
5-Tension réseau
J'avoue être perdu avec toutes les infos que tu me donnes

Pas de problème
Tu sauves le script joint plus bas sur ton disque : solaire.php (par exemple)
Tu crée un capteur http "configuration" "Ajouter ou supprimer un périphérique" "Ajouter un autre type de périphérique" "HTTP Capteur" (réseau) "Créer"
Tu complètes comme sur l'image jointe (n'oublie pas la pièce).
Solaire.png
Solaire.png (34.43 Kio) Consulté 8122 fois

Ensuite tu cliques sur "sauver puis continuer à éditer".
Tu cliques sur "script", puis tout en bas sur "parcourir" et tu sélectionne solaire.php puis "ouvrir" et enfin "envoyer".
Si on te dit de te connecter sur le site de secours, tu acceptes et tu recommences l'opération depuis le page script.
Tu remets le lien dans URL de la Requête.
Ensuite tu cliques sur "sauver puis continuer à éditer" et tu cliques sur "tester".
Dans la fenêtre de test, tu cliques encore sur "tester" et tu vérifies que ça fonctionne.
Ensuite, tu reviens sur la fenêtre de ton périphérique et tu cliques sur "dupliquer", tu changes le nom, les unités éventuellement et le XPATH tu peux aussi lier le nouveau périphérique au premier ("Paramètres expert" "rattacher à")
et tu refais la même chose pour tous tes périphs.
Normalement, tout doit marcher
:)
Code : Tout sélectionner
<?php
// optimisateur de production solaire
// V1.0 : opa95 2023-02-03
//Récupération des valeurs par //champ/@vi
$url  = getArg('url');
$url  = $url.'/sensors.xml';
$response = httpQuery($url, 'GET', '','', $header);
/*
$response = '<xml>
<rtcc>15:58:45 VE</rtcc>
<paramSys>
15:58:45;03/02/2023;On;01:00;0,0;MS_PV2_2;5.0.1;0000220;102e;102c;00:00;00:00
</paramSys>
<inAns>
0,1;-565,3;25; 0;227,1;0,0;0,0;0,0; 0; 0; 0; 0; 0; 0; 0; 0;
</inAns>
<survMm>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</survMm>
<cmdPos>0;0;0;0;0;0;0;0;</cmdPos>
<outStat>6;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</outStat>
<cptVals>10bee;ffffffec;ffffa2f3;ff43f90a;0;0;0;0;</cptVals>
<chOutVal>0;0;0;ff;:0,0;0,0;0,0;0,0;</chOutVal>
</xml>';
*/
$response = xpath($response,"concat('rtcc=',//rtcc,'@paramSys=',//paramSys,'@inAns=',//inAns,'@survMm=',//survMm,'@cmdPos=',//cmdPos,'@outStat=',//outStat,'@cptVals=',//cptVals,'@chOutVal=',//chOutVal)");
$response = trim(str_replace(';@','@',$response));
$response = str_replace(',','.',$response);
$arr_response = explode('@',$response);
foreach ($arr_response as $field) {
  list($key,$values) = explode('=',$field);
  $arrValue = array();
  $arr_values = explode(';',$values);
  foreach ($arr_values as $value){
    if ($value != '') $result[$key][] = trim($value);
  }
}
@sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
$xml .= ' <root>'.PHP_EOL;
  $key = 'inAns';
  $xml .= '   <current>'.PHP_EOL; 
  $xml .= '     <conso>'.$result[$key][0].'</conso> ';
  $xml .= '<production>'.$result[$key][1].'</production> ';
  $xml .= '<routage_1>'.$result[$key][2].'</routage_1> ';
  $xml .= '<routage_2>'.$result[$key][3].'</routage_2> ';
  $xml .= '<tension>'.$result[$key][4].'</tension> ';
  $xml .= PHP_EOL.'   </current>'.PHP_EOL;
foreach ($result as $key => $value){
    $xml .= '   <'.$key.' ';
    foreach ($result[$key] as $key1 => $value1){
      $xml .= 'v'.$key1.'="'.$value1.'" ';
    }
    $xml .= '/>'.PHP_EOL;
  }
$xml .= ' </root>'.PHP_EOL;
echo $xml;
?>
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar flc85 » 03 Fév 2023 18:34

quand je fais tester j'ai une fenêtre qui s'ouvre mais l'URL est différente avec &eedomus_controller_module_id=2956267 en plus
http://localhost/script/?exec=MSUNPV.ph ... id=2956267
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar opa95 » 03 Fév 2023 18:40

C(est bon
flc85 a écrit:Je n'ai rien trouvé concernant json, il y a bien un script mais pour jeedom, il ne fonctionne pas à cause de fonctions non autorisés sur eedomus

Je suis reparti du XML :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar flc85 » 04 Fév 2023 07:50

Ça ne fonctionne pas j'ai une erreur:
Code : Tout sélectionner
<b> Error: </b> Por favor, especifique el valor del argumento <b>url</b>  para llamar a<a href='/script/editor/?src=MSUNPV.php' target='_blank'>este script <img src='/img/Pencil.png' align='absmiddle' alt='Editer' width='16' height='16' /></a>.<br><br>Ejemplo: <i>http://localhost/script/?exec=MSUNPV.php&adresse=192.168.1.247&eedomus_controller_module_id=2956267&<b>url=xxx</b></i>


J'ai du modifié la ligne 5 et 6 pour ne plus avoir d'erreur et que cela fonctionne
Code : Tout sélectionner
$url  = "192.168.1.247";

Code : Tout sélectionner
$url  = $url.'/status.xml';
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar opa95 » 04 Fév 2023 08:37

Bonjour flc85
Désolé :(
En fait l'erreur était dans la ligne de commande :
incohérence entre le script qui attend "url" et la commande qui en voie "adresse".
Je n'avais testé que depuis la fenêtre de test.
Les lignes peuvent être maintenues à
$url = getArg('url');
$url = $url.'/sensors.xml';
si la commande est
&url=192.168.1.247 au lieu de &commande=192.168.1.247
ou alors changer
$url = getArg('url'); en $url = getArg('commande');
Est-ce que ça marche maintenant?
:)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar flc85 » 04 Fév 2023 08:45

Super ça fonctionne, merci énormément pour ton aide
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar flc85 » 04 Fév 2023 09:12

Tu peux le mettre sur le store comme module de connexion au routeur solaire MSUNPV?
La problématique était de pouvoir consulter les données du routeur sans avoir à ouvrir les ports vers l'extérieur car ce il n'est pas sécurisé.
Dernière édition par flc85 le 04 Fév 2023 09:16, édité 1 fois.
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar opa95 » 04 Fév 2023 09:14

Bonjour
Pas de problème.
Donc pour d'autres utilisateurs éventuels, au final on obtient
Sauver le script sous le nom MSUNPV.php
Créer les devices selon le modèle suivant (capteurs HTTP)
MSUNPV.png
MSUNPV.png (34.97 Kio) Consulté 8088 fois

Script
Code : Tout sélectionner
<?php
// optimisateur de production solaire MSUNPV.php
// V1.0 : opa95 2023-02-03
//ligne decommande http://localhost/script/?exec=MSUNPV.php&adresse=192.168.1.247
//Récupération des valeurs par //champ/@vi
$url  = getArg('url');
$url  = $url.'/sensors.xml';
$response = httpQuery($url, 'GET', '','', $header);
/*
$response = '<xml>
<rtcc>15:58:45 VE</rtcc>
<paramSys>
15:58:45;03/02/2023;On;01:00;0,0;MS_PV2_2;5.0.1;0000220;102e;102c;00:00;00:00
</paramSys>
<inAns>
0,1;-565,3;25; 0;227,1;0,0;0,0;0,0; 0; 0; 0; 0; 0; 0; 0; 0;
</inAns>
<survMm>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</survMm>
<cmdPos>0;0;0;0;0;0;0;0;</cmdPos>
<outStat>6;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</outStat>
<cptVals>10bee;ffffffec;ffffa2f3;ff43f90a;0;0;0;0;</cptVals>
<chOutVal>0;0;0;ff;:0,0;0,0;0,0;0,0;</chOutVal>
</xml>';
*/
$response = xpath($response,"concat('rtcc=',//rtcc,'@paramSys=',//paramSys,'@inAns=',//inAns,'@survMm=',//survMm,'@cmdPos=',//cmdPos,'@outStat=',//outStat,'@cptVals=',//cptVals,'@chOutVal=',//chOutVal)");
$response = trim(str_replace(';@','@',$response));
$response = str_replace(',','.',$response);
$arr_response = explode('@',$response);
foreach ($arr_response as $field) {
  list($key,$values) = explode('=',$field);
  $arrValue = array();
  $arr_values = explode(';',$values);
  foreach ($arr_values as $value){
    if ($value != '') $result[$key][] = trim($value);
  }
}
@sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
$xml .= ' <root>'.PHP_EOL;
  $key = 'inAns';
  $xml .= '   <current>'.PHP_EOL; 
  $xml .= '     <conso>'.$result[$key][0].'</conso> ';
  $xml .= '<production>'.$result[$key][1].'</production> ';
  $xml .= '<routage_1>'.$result[$key][2].'</routage_1> ';
  $xml .= '<routage_2>'.$result[$key][3].'</routage_2> ';
  $xml .= '<tension>'.$result[$key][4].'</tension> ';
  $xml .= PHP_EOL.'   </current>'.PHP_EOL;
foreach ($result as $key => $value){
    $xml .= '   <'.$key.' ';
    foreach ($result[$key] as $key1 => $value1){
      $xml .= 'v'.$key1.'="'.$value1.'" ';
    }
    $xml .= '/>'.PHP_EOL;
  }
$xml .= ' </root>'.PHP_EOL;
echo $xml;
?>
 :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 751
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Suivant

Retour vers API eedomus & eedomus toolbox

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)