Récupération liste dans script php curl

Bonjour à tous,

Je sollicite votre expérience après avoir fouillé dans la communauté je n’ai pas réussi à trouver mon bonheur.

Je cherche à récupérer la valeur dans une liste pour l’insérer dans le corps (POSTFIELDS) d’un script php curl.

Merci pour votre aide ou orientation je n’ai trouver que pour la partie scénario.

FilPilote.php.txt (693 Octets)

Bonjour,
Qu’appelles-tu une liste ? Faudrait que tu montres ton code sinon c’est impossible de répondre.

J’ai mis le code en pj sur le premier post.
Un type,liste dans une commande

ok remets dans le post pour la lisibilité, vu qu’il n’est pas très grand ca sera plus facile que de passer d’un écran à l’autre, surtout sur téléphone :wink:

et donc tu parles de la commande mode de ta vanne?
parce que dans ton exemple, dans $value tu n’as pas une liste, tu as la valeur actuelle.
Donc je ne comprend toujours pas :thinking:

Je veux récupérer la valeur de la commande ci dessous et la passer dans POSTFIELDS

J’espere etre plus precis.

Sinon de manière général pour récupérer la liste des valeurs possibles d’une commande de type liste, tu peux faire

$cmd->getConfiguration('listValue');

et tu vas récupérer l’info comme elle est présentée dans l’écran de gestion des commandes

En fait je souhaite récupérer la valeur sélectionnée dans la liste pour la passer dans Postfield dans le script.
Je n’arrive pas à trouver.

Pour avoir la valeur d’une commande, il faut faire $cmd->execCmd(); comme tu as fait donc je pense que ton code fonctionne, sauf que après tu essaies d’echo la commande et pas la valeur:

$value = $Mode->execCmd();
echo $Mode

fait un echo $value; à la place et tu verras la valeur (avec le point virgule)

ps: ca serait plus visible si le code était directement dans le post plutôt qu’en pièce jointe :wink:

Avec l’appel au core jeedom en plus non
require_once ‹ /var/www/html/core/php/core.inc.php ›;

Ce code ne fonctionne pas dans un type info pour tester.

<?php require_once '/var/www/html/core/php/core.inc.php'; $Mode = cmd::byString("#[Salle de bain RDC][Radiateur Salle de bain Mode][Mode]#"); $value = $Mode->execCmd(); echo $value; ?>

Bonjour,

Personne pour m’aiguiller ?

C’est le code/fonctions à utiliser, même sur une commande info.
Il doit y avoir un bug mais impossible à debug à distance sans message d’erreur, sans log etc.

Ps: peux tu mettre le code (et les logs si on les reçoit un jour) dans une balise Texte préformaté, petit symbole </>

Tu peux aussi tenter de passer l’info en argument de ton script en mettant la commande info dans ta commande script

Salut,
Je précise je suis en V4.
J’ai un retour comme quoi la commande est passée mais une erreur dans le retour du script.

<?php
require_once '/var/www/html/core/php/core.inc.php';
$Mode = cmd::byString("#[Salle de bain RDC][Radiateur Salle de bain Mode][Mode]#");
$value = $Mode->execCmd();
echo $value;
?>

Résultat de la commande : PHP Notice: Undefined variable: cmd in /var/www/html/plugins/script/core/ressources/Testlistvalue.php on line 8

Je viens de tester ce code pour en être certain, avec une autre commande info bien sur et pas de problème.

Est-ce que tu montres exactement ce qu’il y a dans ton script?
parce que tu n’as pas de ligne 8…

cela c’est parce que qlq part tu as oublié un $ devant une variable qui s’appellerait $cmd donc.

mais ce n’est pas la ligne

car ce n’est pas la ligne 8 et car s’il ne trouvait pas ce qu’il fallait il retournerait bien une erreur de class non trouvé et pas de variable non définie

Donc j’ai l’impression que tu ne montres pas ce que tu exécutes en réalité

Je me suis posé la même question sur la ligne 8.
Je revérifie demain qu’il n’y a rie qui pollue ou je réécrire le bout de code
Je te tiens informé.

Je viens de refaire le test en v4 également et pas de soucis.
Es-tu sur de la commande #[Salle de bain RDC][Radiateur Salle de bain Mode][Mode]#
Peux-tu mettre cela dans le testeur d’expression, valider que cela renvoi la valeur correcte et ensuite copier/coller dans ton script?

Le testeur expression fonctionne sur un type info.
Moi je souhaite récupérer ma valeur d’un type action pour la passer dans le curl postfields ci dessous.
Je ne sais pas si je suis assez clair.


<?php

$curl = curl_init();
$Mode = cmd::byString("#[Salle de bain RDC][Radiateur Salle de bain Mode][Mode]#");
$value = $Mode->execCmd();
echo $value;
curl_setopt_array($curl, array(
  CURLOPT_URL => "192.168.0.116:80/api/0C894FF2A2/sensors/36/config/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS =>$value,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

un type action n’a pas de valeur à priori, je peux voir la config de ta commande?