Faut il effectuer x fois un script qui retourne x valeurs?

Tout est dans le titre! j’ai fait un script PHP qui retourne un liste de 10 valeurs dans un array. Mais si j’ai bien compris, le plugin-script ne peux retourner qu’un seule valeur par exécution du script! N’y a-t-il pas moyen de récupérer tout le contenu de l’array?
D’autant plus que mon script met 30 sec à s’exécuter! :frowning:

Salut,

Juste une question si c’est du php, pourquoi ne pas passer pas un bloc code dans un scenario ?
ou par user.function.class.php qui est dans /data/php ?
Tu crées ainsi ta fonction et est plus libre que via le plugin script

Ce serait peut être plus simple non ?

Bonjour,

Même avis concernant le bloc code.
Sinon il reste la possibilité d’utiliser l’api http dans ton script pour mettre à jour chaque commande.

Donc ca ferait une commande action (et pas info) qui exécute le script php et dans celui ci tu fais le job qui dure 30s et ensuite mise à jour de commandes info (d’un virtuel par exemple)
Ca sera le même principe avec un scénario bloc code mais plus simple car pas besoin d’utiliser l’api, on peut instancie les cmd directement

merci prfalken pour ta réponse. Je ne savais pas que l’on peut récupérer des valeurs avec un senario. :slight_smile: Je pensais que les senarios sont fait traiter les variables dans jeedom et déclencher des actions de périfériques connus de jeedom!
Comment fais tu pour lancer un PHP et récupérer ses données via un senario?

OK… bon faut que je lise la doc… c’est nouveau pour moi.
Donc un script PHP peut passer une valeur dans un virtuel en copiant l’url copié dans le PHP?
http:/core/api/jeeApi.php?plugin=virtual&type=event&apikey=…&id=#cmd_id#&value=#value#

y’a plus simple, tout est déjà prévu dans les outils de scenario
Dans les bloc action, tu as « event » qui permet d’écrire la valeur d’une info (d’un virtuel mais pas uniquement)
Dans le scripts tu utilises des tags
$tags[« #montag# »]

en fin de scenario
tu met un
$scenario->setTags($tags);
et ensuite en dehors du script les tags peuvent servir à affecter une valeur en mettant le nom du tag dans le champ valeur de action>event

et si tu veux passer des paramètres au script c’est le même système avec des tags avant le script
et avec
$tags = $scenario->getTags();
en début de script

Oui ou dans un bloc code tu peux aussi faire

// Equipement Cible Jeedom : Virtuel avec info type autre par exemple
$cmdCible = '#[Ta][commande][cible]#' ;

$result rempli avec la routine de ton choix

// Envoi du resultat dans la commande cible
cmd::byString($cmdCible)->event($result) ;

Merci à tous les deux pour vos réponses. je vais tester/essayer même si j’ai pas encore tout compris. c’est en forgeant qu’on devient forgeron!

N’oublie pas de lire cette page, une petite bible…

On m’avais déconseillé de faire comme ça, car c’est plus compliqué à maintenir (par exemple avec l’utilisation des fonctions de remplacement, ça fonctionne dans un bloc action, mais pas dans un script, si ?)