Est-il possible de récuperer le l'id d'un scénario à partir de son nom?

Bonjour,

J’ai besoin de lancer un scénario à partir d’un bloc Code.
Je voudrais pouvoir le sélectionner non pas byID, mais byName.
Cette contrainte est parce que j’ai plusieurs machine Jeedom et je dois pouvoir identifier le même scénario sur les autres machine (donc qui n’ont pas forcément le même id de scénario, mais toujours le même nom de scénario…)
Y a t-il une solution pour résoudre cette contrainte ?

Merci par avance de vos suggestions :wink:

Hello
Cela devrait répondre a ton besoin

public static function getScenarioByName($scenarioName,$scenario=NULL) {
          self::log($scenario,__FUNCTION__ . " " .$scenarioName);
          try {
            
            if (self::IsNotNullOrEmptyString($scenarioName)) {
            	$sc=scenario::byString('#'.$scenarioName.'#');
            }
            
            if (is_object($sc)) {
              	return $sc;
            }
          } catch (Exception $e) {
            self::manageError($scenario,$e);
          }
    }
  
  	
  
  	public static function launchScenarioByName($scenario=null,$scenarioName,$tags=null) {
      	self::log($scenario,__FUNCTION__ . $scenarioName . '| tags :' . json_encode($tags));
      	
      	try {
          $sc=self::getScenarioByName($scenarioName,$scenario);
          
          if (is_object($sc)) {
              if ($tags != null) {
                  $sc->setTags($tags);
              }
              $sc->launch();
          } 
        } catch (Exception $e) {
            self::manageError($scenario,$e);
        }
        
    }

ou alors si tu as pas le humanName une fonction plus simple et après tu sélectionnes le bon

foreach(scenario::all() as $sc) {
  	$scenario->setLog('Scenario name : ' . $sc->getName());
}

@chris94440

Merci @chris94440 !
Je vais tester ta solution :wink:

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