Merci bien pour le bout de code, ça (plus d’autres exemples trouvé ici et là…) m’a permit de bricoler un script (oui à mon niveau c’est du bricolage…) qui permet de faire exactement ce que je voulais faire.
J’ai donc un virtuel avec 4 infos type numérique qui reprennent les 4 sondes de mon chauffe-eau solaire :
T_Capteur (température capteur solaire)
T_Extrerieur (température extérieur)
T_Ballon_Haut (température du haut du ballon de stockage)
T_Ballon_Bas (température du balle du ballon de stockage)
qui correspondent au 4 premières valeurs de mon ficher XML dans la balise « inAns »
Un script PHP du plug-in script se charge d’aller chercher le fichier XML et d’extraire les valeurs qui m’interesent pour mettre à jour les infos de mon virtuel
Alors oui, je sais c’est sâle, pas optimisé, ne gère pas les erreurs, etc… mais déjà ça fonctionne comme je le voulais alors pour moi c’est déjà formidable.
Si un pro du php passe par là et se sent de faire un code plus propre et plus robuste pour faire la même chose
Alors par contre j’ai pas compris l’intérêt de passer par un scenario ?
C’est une recommandation de Jeedom de faire ça dans un scenario plutôt que dans un script ? ou c’est juste que pour un débutant comme moi c’est moins risqué de faire ça dans un scenario ?
Parce que dans cette approche, si je comprend bien, il faut un script type « XML » pour récupérer les valeurs, un scenario pour les mettre en forme, et un virtuel pour les afficher/exploiter…
A moins que le scenario puisse être autonome lui aussi pour récupérer le fichier XML ? dans ce cas ça peut éviter l’usage du plug-in script…
Bref, une petite explication sur la démarche m’aiderait sans doute à comprendre ce qu’il faut faire vs. ce qu’on peut faire.
Ben il y en a au moins une raison c’est de sortir du code par l’intermédiaire de tag les variables
qui sont de commandes infos tu peut ainsi modifier les noms des commandes sans avoir a modifier ton php.
mais a la final du php dans un script ou un bloc code fera la même chose …
le scenario t’apportera donc plus de souplesse dans l’utilisation des entrées et sorties !
les tag son la pour t’y aider.
Me renvoi « 0 » pour la première sonde et pas « -1.9 »
Sans doute un problème de type quelque part… mais qu’attends Jeedom pour afficher une valeur négative ?
merci d’avance
Avant de poser la question et ça n’avait rien changé, mais effectivement ça doit être l’espace après le signe qui doit faire ch…
Merci pour la méthode car j’étais parti sur un truc beaucoup plus compliqué !
Voilà, ayant maintenant un script qui fonctionne même pour les valeurs négatives et ayant compris l’intérêt de passer un par un scénario, j’ai fait un essai et ça fonctionne impeccable. Même pas besoin de passer par un objet script pour récupérer le fichier XML; on peut le faire directement depuis le script du scénario, du coup ce n’est pas plus lourd que de passer par un script et c’est effectivement bien plus simple si ont dont modifier les affectations du virtuel. Petit raffinement supplémentaire, je suis passé par un tag pour passer l’adresse IP de l’appareil au script, ça n’apporte pas grand chose mais je voulais voir si ça fonctionne, et ça fonctionne !
$tags = $scenario->getTags(); // récuperation des tag
$ip = $tags['#ip_maxisun#'];
$url = 'http://'.$ip.'/status.xml';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$datas = curl_exec($curl); //appel du fichier XML du Maxisun
curl_close($curl);
$sondes = new SimpleXMLElement($datas); //parser XML pour récuperation des valeurs des balises
$array = explode(';', $sondes->inAns);//decomposition des données des sondes (balise <inAns>) en tableau
$x=1;
foreach ($array as $values)
{
$values = str_replace(' ','',$values);
$tags["#S".$x."#"] = floatval(str_replace (',','.',$values));// creation des tag
$x++;
}
$scenario->setTags($tags); // affectation des tags
Sinon en passant par un objet script (si un jour ça peut aider qq1)
Dans le but d’améliorer un peu, est-ce qu’il y’a un moyen simple de s’assurer que la communication passe entre mon régulateur solaire et jeedom (que le fichier xml remonte bien à chaque appel), par exemple pour avoir un indicateur info « online » (vrai/faux) comme certains plug-ins ?
Merci d’avance.
Ah ben dans le même genre j’aurais éventuellement les infos d’un onduleur solaire hybride, mais ça va être plus compliqué pare qu’il n’est équipé que d’un port USB périphérique… Il me faut donc une passerelle avec un USB host (« gros » arduino/raspberry ?) et le soft qui va bien pour traduire ça (CRC) et mettre ça à dispo dans un XML ou JSON… bref, c’est pas pour maintenant !
Déjà que le régulateur du chauffe-eau solaire ça fait plus d’un an que j’y pense et ça vient seulement d’être fait alors qu’au final c’était « simple » (déjà connecté au réseau ethernet et fichier xml dispo avec les valeurs qui m’intéressaient)