MPVSUN

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

Re: Problème xpath

Messagepar flc85 » 04 Fév 2023 09:17

Je mets en lien le post sur le forum de MSUNPV
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar opa95 » 04 Fév 2023 09:23

:thumbup:
Bonne journée
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 : 870
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar flc85 » 04 Fév 2023 09:27

à toi également merci
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar Scalaire » 05 Fév 2023 11:19

Salut,
Je découvre ce sujet et comme je ne maitrise pas pas les scripts je me demandais s'il était possible de le modifier pour avoir la valeur de la puissance routée vers les chauffe eau en watts à la place des pourcentage car j'ai ajouté des pinces amperemetrique sur les ce ?
Scalaire
 
Messages : 11
Inscription : 21 Jan 2021

Re: Problème xpath

Messagepar opa95 » 05 Fév 2023 12:56

Bonjour Scalaire
Scalaire a écrit:Salut,
Je découvre ce sujet et comme je ne maitrise pas pas les scripts je me demandais s'il était possible de le modifier pour avoir la valeur de la puissance routée vers les chauffe eau en watts à la place des pourcentage car j'ai ajouté des pinces amperemetrique sur les ce ?

J'avais commencé à remodifier le script pour avoir plus d'informations affichées.
Le problème c'est que je n'ai pas suffisamment d'informations, car je n'ai pas ce système.
J'en ai trouvé quelques une chez le constructeur et sur le forum jeedom.
Peux-tu m'envoyer ton fichier xml de départ (réponse de ton système) si possible en me disant où sont les variables qui t'intéressent et leur valeurs.
J'ai déjà récupéré les valeurs des puissances et énergies en W ou Wh.
:)
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 : 870
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Problème xpath

Messagepar Scalaire » 05 Fév 2023 13:18

Heu, je fais ça comment ?
Scalaire
 
Messages : 11
Inscription : 21 Jan 2021

Re: Problème xpath

Messagepar flc85 » 05 Fév 2023 14:03

tu tapes l'adresse de ton routeur suivi de status.xml
192.168.XX.XX/status.xml
copier coller sur le forum
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: Problème xpath

Messagepar Scalaire » 05 Fév 2023 14:18

Voila,

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<xml>
<div id="activemynatranslator"/>
<rtcc>14:16:44 DI</rtcc>
<paramSys>
14:16:45;05/02/2023;On;01:00;0,0;MS_PV4_2;5.0.1;dl0420a;102e;102c;00:00;00:00
</paramSys>
<inAns>
-541,5;-5253,1;400;400;226,4;0,9;2784,4;0,0;0,0;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>a;0;0;0;0;0;0;2;</cmdPos>
<outStat>100;100;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</outStat>
<cptVals>1613a;fffffb63;fffed060;ff27e7b8;0;0;0;0;</cptVals>
<chOutVal>0;0;0;ff;:0,0;0,0;0,0;0,0;</chOutVal>
</xml>
Scalaire
 
Messages : 11
Inscription : 21 Jan 2021

Re: Problème xpath

Messagepar opa95 » 05 Fév 2023 16:42

Bonjour scalaire
Ce forum serait plus clair si on mettait la discussion sous un autre nom, par exemple MSUNPV quelqu'un sait faire? Peut-être merguez07. :)
Voici quelque chose qui tourne, mais je ne sais pas si ça répond à ton problème.
Voici ce qu'il renvoie pour l'instant
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
 <root>
   <time>2023-02-05 14:16:45</time>
   <timestamp>1675603005</timestamp>
   <current>
     <conso>-541.5</conso> <production>-5253.1</production> <routage_1>400</routage_1> <routage_2>400</routage_2> <tension>226.4</tension> <enConso>9042.6</enConso> <enProd>-118.1</enProd> <enPV_J>-7772.8</enPV_J> <enPV_P>-1416199.2</enPV_P> <heure>14:16:45</heure> <date>05/02/2023</date> <etat>On</etat> <intervalle>01:00</intervalle> <nom>MS_PV4_2</nom> <version>5.0.1</version> <sn>dl0420a</sn>  <cmd1>auto</cmd1> <cmd2>auto</cmd2>
   </current>
   <rtcc v0="14:16:44 DI" />
   <paramSys v0="14:16:45" v1="05/02/2023" v2="On" v3="01:00" v4="0.0" v5="MS_PV4_2" v6="5.0.1" v7="dl0420a" v8="102e" v9="102c" v10="00:00" v11="00:00" />
   <inAns v0="-541.5" v1="-5253.1" v2="400" v3="400" v4="226.4" v5="0.9" v6="2784.4" v7="0.0" v8="0.0" v9="0.0" v10="0.0" v11="0.0" v12="0.0" v13="0.0" v14="0.0" v15="0.0" />
   <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="10" v1="0" v2="0" v3="0" v4="0" v5="0" v6="0" v7="2" />
   <outStat v0="100" v1="100" 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="90426" v1="-118.1" v2="-7772.8" v3="-1416199.2" v4="0" v5="0" v6="0" v7="0" />
   <chOutVal v0="0" v1="0" v2="0" v3="255" v4="0" v5="0" v6="0" v7="0" />
 </root>

Tu as accès à toutes les résultats avec un XPATH : //champ/@vi (i de 0 à 15) et champ inAns, etc.
ou plus directement par
//conso ou //time ou //enprod ou même l'état des commandes cmd1 et cmd2 (//cmd1)...
On pourrait aussi envisager un actionneur pour modifier ces états, mais je ne pourrai pas tester.
Pour cela, tu crée un capteur http et tu appelles
Code : Tout sélectionner
http://localhost/script/?exec=MSUNPV.php&url=192.168.x.y

Ce serait mieux si j'avais les correspondances vraies, j'ai du aller à la pêche et je ne sais pas si j'ai raison.

Voici le code à sauver en MSUNPV.php sur la box :)
Code : Tout sélectionner
<?php
// optimisateur de production solaire MSUNPV.php
// V1.0 : opa95 2023-02-03 niveaux instantanes
// V1.1 : opa95 2023-02-05 généralisation
//ligne decommande http://localhost/script/?exec=MSUNPV.php&adresse=192.168.1.247
//Récupération des valeurs par //champ/@vi

function sdk_set_command($cmd1,$cmd2) {//$command off ou 0, manuel ou 1, auto ou 2)
  $commande = $cmd[$cmd1] + 4*$cmd[$cmd2];
  return $command;//nombre entre 0 et 10
}

function sdk_get_command($command) {//$command entre 0 et 10, select 0 ou 1
  if (strtolower($command) == 'a') $command = 10;
  $arrCmd[1] = $command%4;
  $arrCmd[2] = round(($command - $arrCmd[1])/4);
  return $arrCmd;
}


$hexa = array('cmdPos','cptVals','chOutVal');//Champ hexa
$inAns = array('conso','production','routage_1','routage_2','tension');
$cptVals = array('enConso','enProd','enPV_J','enPV_P');
$paramSys = array('heure','date','etat','intervalle','','nom','version','sn');
$cmdPos = array('cmd0');
$cmdArr = array('off','manuel','auto');
$max_int_pos = 0X100000000;
$max_int = ($max_int_pos+1)*2;
$url  = getArg('url');
$url  = $url.'/sensors.xml';
$response = httpQuery($url, 'GET', '','', $header);
$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);
  if (in_array($key,$hexa)) {
    foreach ($arr_values as $value){
      $value = trim($value);
      if ($value != '') {$result[$key][] = hexdec($value);}
    }
  }
  else {
    foreach ($arr_values as $value){
      $value = trim($value);
      if ($value != '') $result[$key][] = $value;
    }
  }
}
//var_dump($result);
$cmds = sdk_get_command($result['cmdPos'][0]);
$heure = $result['paramSys'][0];
list($day,$month,$year) = explode('/',$result['paramSys'][1]);
$date = $year.'-'.$month.'-'.$day;
$timestamp = strtotime($date.' '.$heure);
$time = date('Y-m-d H:i:s',$timestamp);
@sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
$xml .= ' <root>'.PHP_EOL;
$xml .= '   <time>'.$time.'</time> '.PHP_EOL;;
$xml .= '   <timestamp>'.$timestamp.'</timestamp>'.PHP_EOL;;
$xml .= '   <current>'.PHP_EOL.'     '; 
$key = 'inAns';
$ind = 0;
foreach ($inAns as $item){
  if ($item != '') $xml .= '<'.$item.'>'.$result[$key][$ind].'</'.$item.'> ';
  $ind++;
}
$key = 'cptVals';
$ind = 0;
foreach ($cptVals as $item){
  if ($item != '') {
    if ($result[$key][$ind]<=$max_int_pos) {
      $xml .= '<'.$item.'>'.($result[$key][$ind]/10).'</'.$item.'> ';
    }
    else {
      $result[$key][$ind] = ($result[$key][$ind]-$max_int)/10;
      $xml .= '<'.$item.'>'.$result[$key][$ind].'</'.$item.'> ';
    }
  $ind++;}
}
$key = 'paramSys';
$ind = 0;
foreach ($paramSys as $item){
  if ($item != '') $xml .= '<'.$item.'>'.$result[$key][$ind].'</'.$item.'> ';
    $ind++;
}
$xml .= '<cmd1>'.$cmdArr[$cmds[1]].'</cmd1> '.'<cmd2>'.$cmdArr[$cmds[2]].'</cmd2> ';
$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 : 870
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: MPVSUN

Messagepar flc85 » 05 Fév 2023 17:01

Ça à l’air pas tout ça, je vais jeter un œil pour vérifier et tester l’envoi de commandes, j’ai changé le titre du sujet
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: MPVSUN

Messagepar opa95 » 05 Fév 2023 17:37

Bonjour
flc85 a écrit:Ça à l’air pas tout ça, je vais jeter un œil pour vérifier et tester l’envoi de commandes, j’ai changé le titre du sujet

Il me semble qu'il suffirait de rajouter 2 actionneurs http avec les valeurs 0->off, 1->off et 0->auto la commande correspondante renvoyant au script avec &cmd1=[rawvalue] ou &cmd2=[rawvalue].
Ensuite on traite cela dans le script. :)
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 : 870
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: MPVSUN

Messagepar Scalaire » 05 Fév 2023 18:07

ça ne fonctionnait pas, mais j'avais vu les posts de flc85 qui avait modifié ceci:
$url = $url.'/sensors.xml'; par $url = $url.'/status.xml';et là certains xpath marche, je continu de tester. les infos les plus pertinentes pour mon usage sont les puissances routées en what vers les chauffe eau : <inAns>
-1957,3;-5953,5;400;400;227,5;1,1;2917,7;0,0;0,0;0,0;0,0;0,0;0,0;0,0;0,0;0,0;

Quelle info puis-je fournir pour t'aider ? et comment les récupérer ?

En te remerciant :)
Scalaire
 
Messages : 11
Inscription : 21 Jan 2021

Re: MPVSUN

Messagepar opa95 » 05 Fév 2023 18:24

Bonjour
Scalaire a écrit:ça ne fonctionnait pas, mais j'avais vu les posts de flc85 qui avait modifié ceci:
$url = $url.'/sensors.xml'; par $url = $url.'/status.xml';et là certains xpath marche, je continu de tester. les infos les plus pertinentes pour mon usage sont les puissances routées en what vers les chauffe eau : <inAns>
-1957,3;-5953,5;400;400;227,5;1,1;2917,7;0,0;0,0;0,0;0,0;0,0;0,0;0,0;0,0;0,0;

Quelle info puis-je fournir pour t'aider ? et comment les récupérer ?

En te remerciant :)

Désolé, c'était une adresse IP d'essai chez moi.
Actuellement tu peux mettre
//inAns/@v4
//inAns/@v5
//inAns/@v6
Connais-tu leur nom "officiel", pour que je mette quelque chose de plus significatif.
:)
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 : 870
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: MPVSUN

Messagepar Scalaire » 05 Fév 2023 18:57

Alors, //inAns/@v4 remonte la tension réseau; mais //inAns/@v5 et //inAns/@v6 remonte les puissances routées vers les chauffe eau !! super, sur mon fichier Kicad ça correspond à Powbal1 et powbal2 qui sont des sondes virtuelles référencés S6 et S7. Félicitations pour ce travail sans avoir un routeur sous la main pour tester :) Bravo encore.
Scalaire
 
Messages : 11
Inscription : 21 Jan 2021

Re: MPVSUN

Messagepar opa95 » 06 Fév 2023 10:33

Bonjour flc85
flc85 a écrit:Ça à l’air pas tout ça, je vais jeter un œil pour vérifier et tester l’envoi de commandes, j’ai changé le titre du sujet

J'ai écrit une version qui prend mieux en compte les noms des champs et qui devrait être capable de modifier les commandes, mais je ne peux pas la tester.
Peux-tu la tester depuis la fenêtre de test avec la commande
Code : Tout sélectionner
http://localhost/script/?exec=MSUNPV.php&url=192.168.x.y&cmd1=manuel&eedomus_controller_module_id=xxxxxxxxx

on peut mettre cmd1 = 0,1,2,off,manuel,auto et/ou cmd2 (idem)
et me dire si ça marche.
Il faut peut-être activer la ligne $headers et var_dump qui suit dans le bloc if($is_new_command){} après la ligne 100.
Code : Tout sélectionner
<?php
/****************************************************************************
* optimisateur de production solaire MSUNPV.php
* V1.0 : opa95 2023-02-03 niveaux instantanes
* V1.1 : opa95 2023-02-05 généralisation tests par flc85 et Scalaire
* V1.2 : opa95 2023-02-06 modification des commandes
* ligne decommande http://localhost/script/?exec=MSUNPV.php&url=[VAR1]
* ligne decommande http://localhost/script/?exec=MSUNPV&php&url=[VAR1]&cmd1=a
* ligne decommande http://localhost/script/?exec=MSUNPV&php&url=[VAR1]&cmd2=b
* ligne decommande http://localhost/script/?exec=MSUNPV&php&url=[VAR1]&cmd1=a&cmd2=b
* avec VAR1 : adresse ip du MSUNPV
* avec a et b = 0 ou off, 1 ou manuel, 2 ou auto
*Récupération des valeurs dans XPATHpar //champ/@vi (i de 0 à 15)
* //rtcc/@v0
* //paramSys/@v0 à //paramSys/@v11
* //<inAns/@v0 à //<inAns/@v15
* //<survMm/@v0 à //<survMm/@v15
* //<cmdPos/@v0 à //<cmdPos/@v7
* //<outStat/@v0 à //<outStat/@v15
* //<cptVals/@v0 à //<cptVals/@v7
* //<chOutVal/@v0 à //<chOutVal/@v7
*Récuperations ciblées
* //time //timestamp //conso //production> //routage_1 //routage_2 //tension
* //powbal1 //powbal2 //enConso //enProd //enPV_J //enPV_P
* //heure //date //etat //intervalle //nom //version //sn //cmd1 //cmd2
*Contenu du xml renvoyé (exemple)
<?xml version="1.0" encoding="UTF-8"?>
 <root>
   <time>2023-02-05 14:16:45</time>
   <timestamp>1675603005</timestamp>
   <current>
     <conso>-1957.3</conso> <production>-5953.5</production> <routage_1>400</routage_1>
     <routage_2>400</routage_2> <tension>227.5</tension> <powbal1>1.1</powbal1>
     <powbal2>2917.7</powbal2> <enConso>9042.6</enConso> <enProd>-118.1</enProd>
     <enPV_J>-7772.8</enPV_J> <enPV_P>-1416199.2</enPV_P> <heure>14:16:45</heure>
     <date>05/02/2023</date> <etat>On</etat> <intervalle>01:00</intervalle>
     <nom>MS_PV4_2</nom> <version>5.0.1</version> <sn>dl0420a</sn>
     <cmd1>auto</cmd1> <cmd2>auto</cmd2>
   </current>
   <rtcc v0="14:16:44 DI" />
   <paramSys v0="14:16:45" v1="05/02/2023" v2="On" v3="01:00" v4="0.0" v5="MS_PV4_2" v6="5.0.1"
     v7="dl0420a" v8="102e" v9="102c" v10="00:00" v11="00:00" />
   <inAns v0="-1957.3" v1="-5953.5" v2="400" v3="400" v4="227.5" v5="1.1" v6="2917.7" v7="0.0"
     v8="0.0" v9="0.0" v10="0.0" v11="0.0" v12="0.0" v13="0.0" v14="0.0" v15="0.0" />
   <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="10" v1="0" v2="0" v3="0" v4="0" v5="0" v6="0" v7="2" />
   <outStat v0="100" v1="100" 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="90426" v1="-118.1" v2="-7772.8" v3="-1416199.2" v4="0" v5="0" v6="0" v7="0" />
   <chOutVal v0="0" v1="0" v2="0" v3="255" v4="0" v5="0" v6="0" v7="0" />
 </root>
**************************************************************************/
function sdk_set_command($cmd1,$cmd2) {//$command 0,1,2)
  $cmd1 = min($cmd1%4,2);
  $cmd2 = min($cmd2%4,2);
  $command = $cmd1 + 4*$cmd2;
  if ($command == 10) $command = 'a';
  return $command;//nombre entre 0 et 10
}

function sdk_get_command($command) {//$command entre 0 et 10, select 0 ou 1
  if (strtolower($command) == 'a') $command = 10;
  $command = min($command,10);
  $arrCmd[1] = $command%4;
  $arrCmd[2] = round(($command - $arrCmd[1])/4);
  return $arrCmd;
}

function sdk_num_command($cmd) {//$cmd off, manuel, auto
  $cmd = trim(strtolower($cmd));
  switch ($cmd) {
    case '0' :
    case 'off'    : $cmd = 0;
                    break;
    case '1' :
    case 'manuel' : $cmd = 1;
                    break;
    case '2' :
    case 'auto'   : $cmd = 2;
                    break;
    default :       $cmd = '*';
  }
  return $cmd;               
}

$hexa = array('cmdPos','cptVals','chOutVal');//Champ hexa
$inAns = array('conso','production','routage_1','routage_2','tension','powbal1','powbal2');
$cptVals = array('enConso','enProd','enPV_J','enPV_P');
$paramSys = array('heure','date','etat','intervalle','','nom','version','sn');
$cmdPos = array('cmd0');
$cmdArr = array('off','manuel','auto');
$max_int_pos = 0X100000000;
$max_int = ($max_int_pos+1)*2;
$url_  = getArg('url');
$url  = $url_.'/status.xml';
$url_cmd  = $url_.'/index.xml';
$cmd1_  = sdk_num_command(getArg('cmd1',false,''));
$cmd2_  = sdk_num_command(getArg('cmd2',false,''));
$response = httpQuery($url, 'GET', '','', $header);

$response1 = xpath($response,'cmdPos');
list($old_command,$bof) = explode(';',$response1);
$old_cmds = sdk_get_command($old_command);
if ($cmd1_ === '*') $new_cmds[1] = $old_cmds[1];
else {$new_cmds[1] = $cmd1_; }
if ($cmd2_ === '*') $new_cmds[2] = $old_cmds[2];
else {$new_cmds[2] = $cmd2_;}
$is_new_command = ($new_cmds[1] != $old_cmds[1]) || ($new_cmds[1] != $old_cmds[1]) ;
$cmd = sdk_set_command($new_cmds[1],$new_cmds[2]);
if ($is_new_command){
//  $headers[] = 'Content-Type: application/x-www-form-urlencoded';
  $parS=$cmd.';0;0;0;0;0;0;2;';
  $url1 = $url_cmd.'?parS='.$parS;
  $response = httpQuery($url1, 'POST', '','', $header);
//  var_dump($response);
}

$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);
  if (in_array($key,$hexa)) {
    foreach ($arr_values as $value){
      $value = trim($value);
      if ($value != '') {$result[$key][] = hexdec($value);}
    }
  }
  else {
    foreach ($arr_values as $value){
      $value = trim($value);
      if ($value != '') $result[$key][] = $value;
    }
  }
}
//var_dump($result);
$cmds = sdk_get_command($result['cmdPos'][0]);
$heure = $result['paramSys'][0];
list($day,$month,$year) = explode('/',$result['paramSys'][1]);
$date = $year.'-'.$month.'-'.$day;
$timestamp = strtotime($date.' '.$heure);
$time = date('Y-m-d H:i:s',$timestamp);
@sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
$xml .= ' <root>'.PHP_EOL;
$xml .= '   <time>'.$time.'</time> '.PHP_EOL;;
$xml .= '   <timestamp>'.$timestamp.'</timestamp>'.PHP_EOL;;
$xml .= '   <current>'.PHP_EOL.'     '; 
$key = 'inAns';
$ind = 0;
foreach ($inAns as $item){
  if ($item != '') $xml .= '<'.$item.'>'.$result[$key][$ind].'</'.$item.'> ';
  $ind++;
}
$key = 'cptVals';
$ind = 0;
foreach ($cptVals as $item){
  if ($item != '') {
    if ($result[$key][$ind]<=$max_int_pos) {
      $xml .= '<'.$item.'>'.($result[$key][$ind]/10).'</'.$item.'> ';
    }
    else {
      $result[$key][$ind] = ($result[$key][$ind]-$max_int)/10;
      $xml .= '<'.$item.'>'.$result[$key][$ind].'</'.$item.'> ';
    }
  $ind++;}
}
$key = 'paramSys';
$ind = 0;
foreach ($paramSys as $item){
  if ($item != '') $xml .= '<'.$item.'>'.$result[$key][$ind].'</'.$item.'> ';
    $ind++;
}
$xml .= '<cmd1>'.$cmdArr[$cmds[1]].'</cmd1> '.'<cmd2>'.$cmdArr[$cmds[2]].'</cmd2> ';
$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 : 870
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: MPVSUN

Messagepar flc85 » 06 Fév 2023 10:42

Salut, oui je test de suite
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: MPVSUN

Messagepar flc85 » 06 Fév 2023 10:46

la cmd1 semble fonctionner, pour la cmd2 je ne vois rien mais je ne sais pas ce quel gère
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: MPVSUN

Messagepar flc85 » 06 Fév 2023 10:48

je n'ai pas éditer de ligne
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: MPVSUN

Messagepar flc85 » 06 Fév 2023 10:57

cmd1 correspond au routage 1

autre info dans cmdpos la valeur V7 correspond à Test Routeur avec comme valeur et signification:
1-injection
2-zéro injection
4-moyen
8-fort
Capture d’écran 2023-02-06 à 10.56.45.png
Capture d’écran 2023-02-06 à 10.56.45.png (239.83 Kio) Consulté 10008 fois
flc85
 
Messages : 70
Inscription : 17 Jan 2019

Re: MPVSUN

Messagepar flc85 » 06 Fév 2023 11:00

Suivant la configuration des uns et des autres les "appareils" peuvent être différents c'est pourquoi il faut mieux les appeler routage_1 plutôt que comme dans mon cas Bal
flc85
 
Messages : 70
Inscription : 17 Jan 2019

PrécédentSuivant

Retour vers API eedomus & eedomus toolbox

Qui est en ligne ?

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