Affecter une chaine json dans une liste de commande action

Hello,
Dans mon script basé sur pytapo pour piloter une caméra je récupère une commande info getPresets de type Autre qui contient la liste des positions enregistrées, sous la forme brute {'1': 'Point de vue 1', '2': 'Test', '3': 'Point de vue 3'} .

Dans une autre commande action setPresets je souhaite pouvoir appeler une de ces positions en argument, par son id, et j’avais pensé utiliser cette première commande info comme une liste, mais je n’y arrive pas (la commande fonctionne si je mets un argument 1 ou 2 ou 3…). J’ai essayé de mettre le nom de la commande dans le champ de valeurs mais ça ne fonctionne pas.

Je suppose également qu’il faudrait mettre en forme la chaîne json (via la requête getPresets dans le script) puisqu’elle ne répond pas au formalisme demandé par une liste ?

As tu trster avec | ?

Tu veux dire modifier la chaîne retournée pour remplacer les : par des | ?

Edit : je l’ai fait dans le script via la fonction replace(), et ma commande info a maintenant une meilleure gueule, mais je ne sais toujours pas comment je peux l’appeler dans la commande action :

1| Point de vue 1; 2| Test; 3| Point de vue 3

Probablement via un bloc code, il faut que je creuse.

Bon bah j’ai trouvé, un ou deux messages sur le community disent qu’on ne peut pas affecter une commande info comme liste d’une commande action donc j’ai fait ce bout de code:

$cmdId = 3942; // Id de la commande action
$listValue = cmd::byString("#[Salon][tapo-ctrl][getPresets]#")->execCmd(); // Liste depuis la commande info

///////////////////////////////////////
$cmd = cmd::byId($cmdId);
if(is_object($cmd) && isset($listValue)){
  if($cmd->getSubtype() == 'select'){
    $cmd->setConfiguration('listValue', $listValue);
    $cmd->save();
    $cmd->getEqLogic()->refreshWidget();
  }
}

Et je mets en déclencheur de ce scénario la commande Info (getPresets) comme ça dès que cette commande change ma liste change aussi dans la commande action.

Et pour plus de détails sur la transformation de la chaîne json en chaîne « liste » j’ai fait ça dans le script:

res=str(tapo.getPresets()).replace("{","").replace("}","").replace("'","").replace(",",";").replace(":","|")
    print(res)