à tout fin utile, c’est possible pour les entrées virtuelles et les sorties virtuelles, pour les 8 entrées physiques sur l’ipx800 (pas celles des extensions), les 8 sorties relais sur ipx800 (pas sur extensions)
pour les IO virtuelles : le plus rapide est
http://ip_IPX800/admin/ioVr.json
pour les autres, vous pouvez utiliser un script externe.
j’ai écrit celui-ci en Php, il génère la liste des noms, au choix
- si out=0 : dans un fichier csv (même dossier web),
- si out=1 : à l’écran.
la variable type détermine la liste de noms à obtenir :
- type = ED = 8 entrées digitales sur IPX800
- type = SR : noms des 8 sorties physiques sur IPX800
- type = EV : noms des 128 entrées virtuelles
- type = SV : noms des 128 sorties virtuelles
- type = AN : noms et formules des 4 analogiques sur IPX800
- type = VA : noms et formules des 32 analogiques virtuelles
Remarque : pour générer un csv sur le NAS, l’utilisateur SYSTEM doit avoir les droits « read/write » sur le dossier concerné.
Si votre interface admin est protégée par un login, décommentez les 3 lignes et renseignez le mot de passe.
Vous pouvez le mettre sur un NAS par exemple :
<?php
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// http://IpSyno/monDossierWeb/listNames.php?type=ED&out=0
// http://IpSyno/monDossierWeb/listNames.php?type=EV&out=1
// type=ED ou SR ou EV ou SV ou AN ou VA
// out=0 pour une sortie dans un fichier csv
// out=1 pour une sortie à l'écran
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
$IP_IPX800="192.168.0.5";
$admin_login="";
//$admin="admin";
//$password="password";
//$admin_login=$admin . ":" . $password . "@";
//valeurs par défaut
$out=1;
$type="SR";
//valeurs lue dans requête
$type=$_GET["type"];
$out=$_GET["out"];
$sep="\n";
if ($type=="SV") {$url="virtualout.htm";$id=["out","taout","tbout"];$nb=128;}
if ($type=="SR") {$url="output.htm";$id=["relay","tarelay","tbrelay"];$nb=8;}
if ($type=="ED") {$url="input.htm";$id=["input"];$nb=8;}
if ($type=="EV") {$url="virtualin.htm";$id=["input"];$nb=128;}
if ($type=="AN") {$url="analog.htm";$id=["analog","AToV","VToA"];$nb=4;}
if ($type=="VA") {$url="analogVirt.htm";$id=["analog","AToV","VToA"];$nb=32;}
//Chargement de la page entière
header('Content-Type:application/json');
$url = "http://" . $admin_login . $IP_IPX800 . "/admin/" . $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$res = curl_exec($ch);
curl_close($ch);
// parse HTML
$dom = new DomDocument();
@ $dom->loadHTML($res);
//export
if ($out=="0") {$listNames=fopen('./Names_' . $type . "_" . date("Y-m-d h:i:sa") . '.csv', 'a+');}
$message="";
for ($i = 0; $i < $nb; $i++) {
for ($j = 0; $j < count($id); $j++) {
$elemt1 = $dom->getElementById($id[$j] . $i); //DOMElement
$val1 = $elemt1->getAttribute('value');
if ($out=="0") {
fputs($listNames,$val1 . ";" );
}else{
echo $val1 . ";";
}
}
if ($out=="0") {fputs($listNames,"\n" );
}else{
echo "\n";
}
}
if ($out=="0") {fclose($listNames);
echo "output ok" . " -> " . $type;}
?>
bonne soirée