Bonjour j’ai un problème sur jeedom V4 par rapport a la V3 sur el plugin enphase_prod il récupère un numéro de série et une version de soft dans un fichier xml distant, le soucis c’est qu’il ne l’affiche pas dans le widget alors que les infos sont bien récupérées vu qu’elles apparaissent dans les log, voici le bout de code qui gère cette partie :
// Creation info Numero de serie
$info = $this->getCmd(null, 'nbserie');
if (!is_object($info)) {
$info = new enphaseCmd();
$info->setName(__('Numero de Serie', __FILE__));
}
$info->setLogicalId('nbserie');
$info->setEqLogic_id($this->getId());
$info->setIsHistorized(0);
$info->setType('info');
$info->setSubType('string');
$info->save();
// Creation info version
$info = $this->getCmd(null, 'ver_soft');
if (!is_object($info)) {
$info = new enphaseCmd();
$info->setName(__('Software Version', __FILE__));
}
$info->setLogicalId('ver_soft');
$info->setEqLogic_id($this->getId());
$info->setIsHistorized(0);
$info->setType('info');
$info->setSubType('string');
$info->save();
// Recuperation de l'info nbserie et version
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->getConfiguration('ip') . '/info.xml');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $this->getConfiguration('user') . ":" . $this->getConfiguration('pass'));
$response = curl_exec($ch);
curl_close($ch);
$response = simplexml_load_string($response);
$this->checkAndUpdateCmd('nbserie', $response->device->sn);
log::add('enphase', 'debug', 'commande recu pour numeros de serie :' . $response->device->sn);
$this->checkAndUpdateCmd('ver_soft', $response->device->software);
log::add('enphase', 'debug', 'commande recu pour version :' . $response->device->software);
Voilà si quelqu’un a une idée du problème, une solution est la bien venue.
Merci d’avance !
C’est pas un problème de widget, les données remontent dans les logs mais quand j’appuie sur le bouton tester la commande ne retourne rien et rien n’est affiché dans le widget non plus
A ben ça tu le dis pas dans le premier message donc forcément ça aide pas… Après analyse du code il faut faire un cast de ce que tu envoies a jeedom en string (par défaut un noeud XML c’est pas en string)
Je ne fais plus de cast automatiquement lors du formatValue dans le code pour ne pas predre du temps inutilement vu que 90% des plugins n’en ont pas besoin
C’est pour ca que je te dis qu’il faut deboguer, ca marche pour tous les plugins sauf le tien donc je pense le soucis vient de ton plugin. Après je n’ai malheureusement pas le temps de faire du debug dans les plugins tierces.
je ne sais pas déboguer je suis pas un cadore dans le domaine je modifie pour apprendre quelque truc mais bon ca reste assez limité, je fait ca aussi parce que le créateur ne met pas a jour le plugin alors du coup je fait ce que je peux en regardant dans d’autre plugin, j’ai regardé dans celui de l’ecodevice pour voir vu qu’il va aussi chercher dans un fichier xml mais rien ne correspond.