Liste des actions possible ne se met pas à jour

Hello,
Petite question pour le dev mon plugin Reolink.
Dans mes commandes j’utilise une commande « action » de type « select ». Ma liste de valeur pour ce select n’est pas remplie lors de la création de la commande, mais plus tard une fois que l’utilisateur interroge la caméra.
Et mon problème c’est que sur le Dashboard, la liste visible sur le widget reste désespérément vide. Même après avoir faire un « setConfiguration » avec mes valeurs.
Je suis obliger de désactiver/réactiver l’équipement pour que la liste soit accessible depuis le widget…

Une idée de comment je pourrais updater ça à la volée ?
Merci

Bonjour,

Ca manque d’un bout de code pour qu’on puisse vraiment se faire un avis, il peut y avoir beaucoup de raison :wink:

Là de tête je dirais:

  • est-ce que le save est bien effectué?
  • est-ce juste un problème de refresh du widget ou que la config de la commande n’est pas à jour?
  • faudrait p-e forcer le refresh du widget (method eqLogic::refreshWidget()

Voilà mon code qui ajoute les listes :

        foreach ($data  as $key => $value) {
          if ($value['enable'] == 1) {
              log::add('reolink', 'debug',  'Ajout du PTZ preset = '.$value['id'].'|'.$value['name']);
              $ptzlist .=  $value['id'].'|'.$value['name'].";";
          }
        }
        log::add('reolink', 'debug',  'fin boucle');
        $ptzlist = substr($ptzlist, 0, -1);
        $cmd->setConfiguration('listValue', $ptzlist);
        $cmd->save();

Et du coup une fois mon code exécuté quand je vais dans la commande mes valeurs sont bien là.

liste

Mais sur le dashboard ca ne s’update pas :

liste2

-Le save est bien effectué
-J’ai testé mais eqLogic::refreshWidget() mais ce n’est pas ça

Il semble qu’il faille que le Widget soit complètement recharger ? Existe t-il un méthode pour cela ?

bah oui, je l’ai donné juste avant:

mais eqLogic::refreshWidget() c’est la signature de la méthode, ce n’est pas exactement cela qu’il faut coder :wink:

Déjà c’est une méthode d’instance, pas static;
Donc il te faut ton objet eqlogic et appeler cette méthode dessus;
exemple:

$cmd->getEqLogic()->refreshWidget();

Évidement pas besoin de (re)faire le getEqLogic() si tu as déjà une variable avec ton équipement.

2 « J'aime »

Effectivement en utilisant correctement cela fonctionne beaucoup mieux !
Un grand merci à toi :pray: :relaxed:

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.