Obtenir les MIN/MAX des capteurs TC4012 dans le Status XML

Bonjour à tous,
De niveau « 0 » en HTML, PHP, XML et Javascript, j’essaie cependant de comprendre, afin d’apporter par moi-même au code de la V3 quelques modifications qui me sont utiles.
En regardant les Tutos du site « Zéro », plus quelques souvenirs en Basic 2000 et Pascal, j’ai apporté des modifications simples aux pages « Index » et « iPréset » de la V3, afin de résoudre les problèmes de précision des capteurs de température dus à leur éloignement de 15m, 20m, 25m et aux raccords…
Avec l’imbrication des tests conditionnels, chaque capteur à donc son coefficient propre, étalonné avec un thermomètre de précision. Le résultat est satisfaisant.
Code modifié :
case ‹ 2 ›: // Concerne les 3 capteurs de température TC-4012
if (i == 1) {
GetAn = getXMLValue(xmlData, ‹ analog › + i) * 0.323 - 49.40;
}
else if (i == 2) {
GetAn = getXMLValue(xmlData, ‹ analog › + i) * 0.323 - 48.1;
}
else if (i == 3) {
GetAn = getXMLValue(xmlData, ‹ analog › + i) * 0.323 - 49.6;
}
else
GetAn = getXMLValue(xmlData, ‹ analog › + i) * 0.323 - 50;
HCtemp = GetAn;
document.getElementById(‹ tmp › + i).innerHTML = GetAn.toFixed(1) + « °c »;
break;

Maintenant, je souhaiterai mettre en mémoire, pour chacun des 3 capteurs, les températures « MAX et MIN » comme on les obtiendrait avec un thermomètre à « Maxima et Minima », et récupérer ces valeurs dans des variables qui seraient simplement lues dans le « Status XML » quand on le charge (Donc, pas de modification d’affichage dans les pages HTML de la V3…).

En simplifiant, cela donnerait ceci en Basic (Pour le capteur N° 1 par exemple) :
// La variable TEMP() est la valeur recueillie en temps réel par le capteur
// La variable MaxTEMP() prend la valeur de TEMP() si celle-ci est supérieure à sa dernière valeur stockée
// La variable MinTEMP() prend la valeur de TEMP() si celle-ci est inférieure à sa dernière valeur stockée.

//Dernières valeurs stockées pour l’exemple… :
MaxTEMP(1)=23
MinTEMP(1)=-1

//… Acquisition du capteur de TEMP(1) = 25° !

For i = 1 to ….
IF TEMP(i) > MaxTEMP(i)
Then MaxTEMP(i) = TEMP(i)
Else IF TEMP(i) < MinTEMP(1)
Then MinTEMP(i) = TEMP(i)
End IF

Résultats qui seraient lus en status XML* :
MaxTEMP(1)=25°
MinTEMP(1)=-1°

  • Bien sûr les valeurs des variables seraient celles des valeurs brutes des capteurs, comme dans le status XML…

J’ai essayé, mais c’est trop compliqué pour moi et cela ne fonctionne pas.

Quelqu’un pourrait-il m’aider, si toutefois vous en avez le temps… ?

Cordialement.

Les données délivrées par l’IPX800 dans son flux XML sont figées et liées au firmware. Or le firmware n’est pas ouvert et ne peut donc être modifié. Pour moi il est donc impossible de rajouter de nouvelles variables dans le statut XML de l’IPX : il faut soumettre la demande à GCE.

Bonjour,
Moi qui pensait que cela serait plus simple d’extraire les données dans un flux XML que de les afficher… Cela prouve mon incompétence en la matière -:slight_smile: !

Je ne pense pas que GCE aura le temps de s’occuper de cette demande « personnelle », mais hors mis la solution XML, existe-t-il à votre connaissance un autre moyen d’exporter de manière simple, sous forme « .txt » par exemple, les données de la V3 ?

Par exemple, lorsque j’ai acheté ma première V2, un membre très sympa du Forum, « Rno », m’avait fait un script qui se lançait automatiquement toutes les heures, via le site CRON, et qui générait un fichier .txt des données XML, sur mon Synology de l’époque. Je traitais après ces données sous « Access et Excel ». Malheureusement ce script php refuse aujourd’hui de s’exécuter, pour des raisons que ne comprend pas, vu mon niveau… J’ai changé de Syno, mais je n’ai pas touché au script.

En tout cas, merci de m’avoir éclairé sur ce sujet !
Cdlt.

Lire ou extraire les données du flux XML de l’IPX800 par un script PHP, ce n’est pas le problème. C’est votre demande qui est impossible, à savoir que l’IPX800 donne le min/max d’une entrée analogique.
Visiblement vous avez un autre souci, c’est que votre script PHP ne fonctionne plus…

Bonsoir,
J’avais compris que le min/max en flux XML n’était pas possible !..

Je voulais simplement dire que le script php que m’avait écrit Rno comportait des extractions XML, conformes et autorisées par le Firmware et générait in fine un fichier txt. Depuis 2010, date de réalisation du script php, je n’ai pas touché à ce script et il ne fonctionne plus et n’est plus exécuté par le site CRON, bien que ce dernier ait toujours les paramètres… Peut-être un problème du Syno 110J, car lorsque j’appelle le script à partir du navigateur, il ne le trouve pas, alors qu’il est bien présent à la racine du répertoire Web.

Votre script utilise certainement du Curl pour lire le flux XML de l’IPX. Or le Curl est une librairie PHP qui n’est pas forcément activée par défaut dans le serveur PHP de votre Syno : il faut donc aller dans votre DSM pour l’activer dans le panneau de configuration.