Lister les commandes utilisant les widgets "code"

Bonjour à tous,

Je viens juste de passer au core V4, je trouve dommage que pour les widgets « code » la liste des commandes liées n’apparait pas comme pour widgets classiques.
Pour ceux que ça intéresse, j’ai écrit un scénario en PHP pour réaliser cette tâche:

custom_list($scenario, 'dashboard');
custom_list($scenario, 'mobile');


function custom_list($scenario, $dashMob)
{
  $rootPath = __DIR__ . '/../../data/customTemplates/' . $dashMob;

  $scenario->setLog('');
  $scenario->setLog('');
  $scenario->setLog('');
  $scenario->setLog('###################################');
  $scenario->setLog('      widgets custom ' . $dashMob);
  $scenario->setLog('###################################');
  $scenario->setLog('');

  $files = scandir($rootPath); 
  foreach($files as $file) {
    if(is_file($rootPath.'/'.$file)&&(preg_match("/\.html$/i", $file))) {
      $scenario->setLog('');
      $scenario->setLog($file .":");
      list($cmd, $type, $subType, $template) = explode('.', $file);
    
      $count = 0;
      foreach(cmd::all() as $cmd) {
        list($origin,$cmdTemplate)=explode('::',$cmd->gettemplate($dashMob));
        if (($origin=='customtemp') && ($cmdTemplate==$template) && ($cmd->gettype()==$type) && ($cmd->getsubType()==$subType)) {
          $scenario->setLog('Id:' . $cmd->getId() . ' ' . $cmd->getHumanName());
          $count++;
        }
      }
      $scenario->setLog('Total: '. $count);
    }
  }
}

Pour l’utiliser il faut ajouter un bloc « code » à un scénario, lancer le scénario et récupérer les infos dans le log.

Merci @ajja17orange pour l’inspiration https://community.jeedom.com/t/widget-listing-utlisation/7217/12

1 « J'aime »

Salut,

Tu as aussi le plugin pimp my jeedom qui permet de gérer les widgets tiers, de les appliquer ou les enlever d’une commande et bien plus encore.

1 « J'aime »

Merci pour l’info, je vais regarder ça de plus près.