passe par un scenario avec un bloc code plutot que de relire 10 fois les mêmes infos dans des scripts…
j’utilise juste un esp un convertisseur RS232 connecter en direct sur les pylontech !
Les sources sont ici :
le reste est un bloc code
$tags = $scenario->getTags(); // recuperation des tag
$ip = $tags['#ip#']; // recuperation ip
$url = "http://".$ip."/req?code=pwr"; // composition adresse url
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($curl); // appel de la requette et recuperation dans $data
$data=str_replace("\n",'',$data);
$data=str_replace("\r",'',$data);
$err="";
if(curl_error($curl)) {
$scenario->setLog('DEBUG 0 ------------------> Erreur sur CURL N° : '.curl_errno($curl).' , '.curl_error($curl));
$err = 'Erreur sur CURL N° : '.curl_errno($curl).' , '.curl_error($curl);
}
curl_close($curl);// fermeture de la requette
for ($i = 1; $i <= 6; $i++) {$data = str_replace(" "," ",$data);}//supprime tous les espaces double
$data = str_replace(" ",",",$data);// remplace les espaces par des virgules
$data = str_replace("pwr","",$data);
$data = str_replace("@","",$data);
$data = str_replace("Time","Date,Heure",$data);
$data = str_replace("Coulomb","Energie",$data);
$data = str_replace("Power",", Rack ",$data);
$data = str_replace("Idle","Veille",$data);
$data = str_replace("Normal","ok",$data);
$data = str_replace("Tempr"," Temperature ",$data);
$data = str_replace("Tlow","T Min",$data);
$data = str_replace("Thigh","T Max",$data);
$data = str_replace("Vlow","V Min",$data);
$data = str_replace("Vhigh","V Max",$data);
$data = str_replace("Base.St"," Statut ",$data);
$data = str_replace("Curr"," Intensité ",$data);
$data = str_replace("Dischg"," Décharge ",$data);
$scenario->setLog('DEBUG 1 ------------------> : '.$data); //Trace des données dans le log du scenario
$tab = explode(',', $data);//decomposition des données en tableau
for ($i = 0; $i <= 8*17; $i=$i +17) {
$t1=date('d:m:Y',strtotime($tab[31+$i]." ".$tab[32+$i])-(0));
$t2=date('H:i:s',strtotime($tab[31+$i]." ".$tab[32+$i])-(0));
$tab[31+$i]=$t1;
$tab[32+$i]=$t2;
}
$l= 8;
$table="<br><table style='border-collapse: separate;border-spacing: 3px;'>";
$table = $table."<tr>";
for($z=1;$z<18;$z++){
$table = $table."<td>".$tab[$z]."</td>";
}
$table = $table."</tr>";
for ($l = 1; $l <9; $l++) {
$z = (17*($l-1));
$table = $table."<tr>";
$table = $table."<td>".$tab[18+$z]."</td>";
$table = $table."<td>".$tab[19+$z]/1000 ."V</td>";
$table = $table."<td>".$tab[20+$z]/1000 ."A</td>";
$table = $table."<td>".$tab[21+$z]/1000 ."°C</td>";
$table = $table."<td>".$tab[22+$z]/1000 ."°C</td>";
$table = $table."<td>".$tab[23+$z]/1000 ."°C</td>";
$table = $table."<td>".$tab[24+$z]/1000 ."V</td>";
$table = $table."<td>".$tab[25+$z]/1000 ."V</td>";
$table = $table."<td>".$tab[26+$z]."</td>";
$table = $table."<td>".$tab[27+$z]."</td>";
$table = $table."<td>".$tab[28+$z]."</td>";
$table = $table."<td>".$tab[29+$z]."</td>";
$table = $table."<td>".$tab[30+$z]."</td>";
$table = $table."<td>".$tab[31+$z]."</td>";
$table = $table."<td>".$tab[32+$z]."</td>";
$table = $table."<td>".$tab[33+$z]."</td>";
$table = $table."<td>".$tab[34+$z]."</td>";
$table = $table."</tr>";
}
$table = $table."</table>";
$table = str_replace("<td>","<td style ='border: 1px solid red;height: 30px;'>",$table);
if($err ==''){
$tags["#data#"]= $table;
$tags["#err#"]="";
}else{
$tags["#data#"]= $err;
$tags["#err#"]= "SENARIO PYLONTECH ".$err;
}
//$tags["#err#"]="";
//$tags["#data#"]= $table;
$scenario->setTags($tags); // affectation des tag