Bloc code - Comment récupérer la liste des équipements d'un plugin

Bonjour,
Je cherche à récupérer la liste des équipements d’un plugin pour faire une action sur chacun des équipements
(plugin « suivre un colis », récupérer la liste des colis, et concaténer les données de suivi et les integrer à un virtuel pour les afficher coté jeedom connect).
Je ne sais par contre pas trop comment m’y prendre pour récupérer la liste des équipement (1 équipement par colis à suivre)

Merci de votre retour

Fais un eqLogic->byType(‹ plugin ›)

Si je peux me permettre, plutôt

eqLogic::byType('pluginId')

Car c’est une méthode static.

Oui bien sur mais faut bien le laisser chercher un peu qu’il puisse apprendre :grin:

3 « J'aime »

Mais quel pervers !! :grin:
J’avais corrigé de moi meme, mais ce ne me renvoit rien pour l’instant

$list_equipements = eqLogic::byType('Suivreuncolis') ;
$scenario->setLog('eq 0 --> '.$list_equipements[0].', eq 1 --> '.$list_equipements[1]);

ca semble tourner en boucle (bouton rouge Arreter) lorsque j’exécute le scenario pui erreur ensuite
image

est-ce que le pluginId est le libellé entre parenthèse à coté du petit nom du plugin ?
image

pas de majuscule normalement sur l’id d’un plugin :thinking:

Oui, c’est ça.
Et de mémoire il faut respecter les maj/minuscules

A priori, c’ets le setlog qui ne passe pas ! :thinking:
Ca, ca passe :

$list_equipements = eqLogic::byType('Suivreuncolis') ;
//$scenario->setLog('eq 0 --> '.$list_equipements[0]);
$scenario->setLog('eq 0 --> ');

mais ca non !

$list_equipements = eqLogic::byType('Suivreuncolis') ;
$scenario->setLog('eq 0 --> '.$list_equipements[0]);
//$scenario->setLog('eq 0 --> ');

donc ton retour n’est pas bon, essaye json_encode( $list_equipements) ? ou print_r

Je ne connais pas, j’utilise ca comment ensuite ?

$scenario->setLog(json_encode( $list_equipements));

tu verras ce que çà donne et tu avise en fonction

https://community.jeedom.com/search?q=eqlogic%20gethumanname%20order:latest

[2021-11-22 18:25:13][SCENARIO] -- Start : Scenario lance manuellement.
[2021-11-22 18:25:13][SCENARIO] - Exécution du sous-élément de type [action] : code
[2021-11-22 18:25:13][SCENARIO] Exécution d'un bloc code 
[2021-11-22 18:25:13][SCENARIO] [{},{},{}]
[2021-11-22 18:25:13][SCENARIO] Fin correcte du scénario

… j’ai 3 équipements donc ca doit correspondre aux {}, mais rien dedans
(je viens d’essayer avec un autre plugin, même retour, le nombre de {} correspond au nombre d’équipements)

Tu vois bien que tu va y arriver :pray:t2:

Tu ne récupère pas un array d’array mais un array d’objets php. Les eqlogics eux même.
Tente un list[0]->getName()

ET voilà le résultat …

$list_equipements = eqLogic::byType('Suivreuncolis') ;
$i = 1 ;
 
foreach ( $list_equipements as $eq ) {
  $eq_name = $eq->getHumanName();
  $eq_etat = '#'.$eq_name.'[Etat]#' ;
  $scenario->setLog('Commande '.$i.' --> '.$eq_etat);
  $i++ ;
}
[2021-11-22 20:11:41][SCENARIO] Exécution d'un bloc code 
[2021-11-22 20:11:41][SCENARIO] Commande 1 --> #[Famille][Capteurs ouverture SONOFF][Etat]#
[2021-11-22 20:11:41][SCENARIO] Commande 2 --> #[Famille][Mes colis][Etat]#
[2021-11-22 20:11:41][SCENARIO] Commande 3 --> #[Famille][Modules Nodon - Edi-elec.fr][Etat]#
[2021-11-22 20:11:41][SCENARIO] Fin correcte du scénario

Bon y a peut-être mieux à faire, mais ca fonctionne pour ce que je souhaite faire !!!
Merci @kiboost et @mips

3 « J'aime »

Dans le lien proposé plus haut, tu avais getHumanName().

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.