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
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
system
A fermé ce sujet ()
Août 19, 2022, 9:53
4
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.