Gestion de groupes scénarios

Bonjour ,
Alors voila j’utilise le plugin mode et je commence avoir tellement de scénarios que cela deviens difficile de gérer tous ça dans ce plugin car il ne faut rien oublier sur chaque changement de mode .

Alors voila ma question ,est il possible de pouvoir agir sur un groupe complet de scénario : Exemple désactiver tous les scénarios du groupe volet sur un mode précis.

Merci .

Salut,

Voilà ce que j’ai, il faut passer en tag le nom du groupe… exemple : #Groupe#="Chauffage - Consignes"

$tags = $scenario->getTags();
$tagGroupe = $tags['#Groupe#'];
$tagGroupe = str_replace("\"", "", $tagGroupe);

$scenario->setLog("Groupe=".$tagGroupe);

$scenario->setLog('Etat=' . $tags['#Etat#']);
$scenarii = $scenario::all($tagGroupe);

// $scenario->setLog('NB='.count($scenarii));

foreach($scenarii as $scenar)
{
	$scenario->setLog("ID=" . $scenar->getID() . "(" . $scenar->getIsActive() . "->" . $tags['#Etat#'] . ") : " . $scenar->getName());
	$scenar->setIsActive($tags['#Etat#']);
	$scenar->save();
}
1 « J'aime »

Ok ,merci pour ton aide ,bien que cette fonction serai très utile dans le plugin .
Je vais voir ce que cela donne avec le tag.

Bonjour, veuillez m’excuser mais je n’ai rien compris de votre présentation.

Voici ce que je veux mettre en place avec le plugin mode, qui je pense est la même chose .

Modes : présent, vacances, démarrer-désactiver. Dans le mode démarrer-désactiver se trouve tous les scenarios qui changent d’état (démarrer ou désactiver). Je voudrais que lorsque je clic sur vacances tous les scenarios soient désactives , et lorsque je clic sur le mode présent tous les scenarios deviennent démarrer. Comment faire ?

Merci d’avance pour votre aide.

Bonjour, il faudra les réactiver avant de les démarrer.
Tu mets des actions de sortie dans ton mode vacance et c’est là qu’il faut mettre tes scénarios en activer .

Bonjour, aujourd’hui j’ai déjà dédoublé les scenarios , une copie dans le mode présent action de sortie avec le paramètre action a la valeur désactivée, et une autre dans le mode vacance action de sortie avec le paramètre action activée.

Ce que je voudrais c’est éviter de mettre en double mes scenarios , c’est pourquoi je crée un mode dans lequel je mets tous mes scenarios, et bascule le paramètre action en activé ou en désactivé suivant le mode sur lequel je cliquerai (présent,vacance). Est-il possible de le faire ? Si oui pourriez vous avoir la gentillesse de me l’expliquer.

Merci-d’avance.

Bonsoir, oui c’est possible.
Dans ton mode présent, tu mets les scénarios en activer et dans le mode vacance, tu mets les scénarios en désactiver.

Comme l’indique @loustic03 tu peux mettre les même scénario dans les deux modes, d’un coté actifs, de l’autre inactifs…

Quand tu es en mode A et que tu passes en mode B, les actions de sorties de A et les actions de B sont exécutées (dans cet ordre). Quand tu retournes en A, les actions de sorties de B sont jouées ainsi que les actions d’entrées de A.
Par contre ça oblique à mettre tous les scénarios explicitement (1 par action).
Avec l’exemple ci-dessus, tu fais 1 action en entrée pour A et une action en entrée pour B si les scénario sont dans un même groupe

Merci beaucoup.

BOnjour,

Je viens de tester ce code fonctionne parfaitement pour activer ou désactiver un Groupe de scénario, par contre qu’elle est la syntaxe pour mettre plusieurs groupes avec la variable ?


J’ai essayé :
Groupe=« Divers;XX » OU Groupe=« Divers,XX » OU Groupe=« Divers;XX » OU Groupe=« Divers » ; « XX »

Je ne trouve pas.
Merci

Hello,

J’avais pas besoin de ce cas là donc le code précédent ne le prends pas en compte.
Je viens de rajouter rapidement de quoi le faire (et testé ultra vite aussi)

$tags = $scenario->getTags();
$tagGroupes = $tags['#Groupes#'];
$tagGroupes = str_replace("\"", "", $tagGroupes);
if(strpos($groupes,";")===FALSE){
  	$groupes = array($tagGroupes);
}else{
	$groupes = explode(";", $tagGroupes);
}

foreach($groupes as $groupe)
{
  $groupe=trim($groupe);
  $scenario->setLog("Groupe=".$groupe);
  $scenario->setLog('Etat=' . $tags['#Etat#']);
  $scenarii = $scenario::all($groupe);
  foreach($scenarii as $scenar)
  {
      $scenario->setLog("ID=" . $scenar->getID() . "(" . $scenar->getIsActive() . "->" . $tags['#Etat#'] . ") : " . $scenar->getName());
      $scenar->setIsActive($tags['#Etat#']);
      $scenar->save();
  }
}


Attention le tag est désormais #Groupes# donc ne pas oublier le s
Et le séparateur est un ;

[2020-10-26 12:43:48][SCENARIO] Start : Lancement provoqué par le scénario  : [X - Tests][tmp1]. Tags : {"#Etat#":"1","#Groupes#":"Chauffage - Consignes;Chauffage - Zones"}
[2020-10-26 12:43:48][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-10-26 12:43:48][SCENARIO] Exécution d'un bloc code
[2020-10-26 12:43:48][SCENARIO] Groupe=Chauffage - Consignes
[2020-10-26 12:43:48][SCENARIO] Etat=1
[2020-10-26 12:43:48][SCENARIO] ID=14(1->1) : C01-SdB Max
[2020-10-26 12:43:48][SCENARIO] ID=7(1->1) : C02-Matin On
[2020-10-26 12:43:48][SCENARIO] ID=52(1->1) : C03-Matin Off
[2020-10-26 12:43:48][SCENARIO] ID=53(1->1) : C04-SdB Confort
[2020-10-26 12:43:48][SCENARIO] ID=54(1->1) : C05-SdB Eco
[2020-10-26 12:43:48][SCENARIO] ID=58(1->1) : C06-Soir On
[2020-10-26 12:43:48][SCENARIO] ID=98(1->1) : C07-SdB Max
[2020-10-26 12:43:48][SCENARIO] ID=99(1->1) : C08-SdB Eco
[2020-10-26 12:43:48][SCENARIO] ID=100(1->1) : C09-Suite on
[2020-10-26 12:43:48][SCENARIO] ID=60(1->1) : C10-Soir Off RDC
[2020-10-26 12:43:48][SCENARIO] ID=140(1->1) : C11-Soir Off ETG
[2020-10-26 12:43:48][SCENARIO] ID=6(1->1) : Recalcul Mode Chauffage
[2020-10-26 12:43:48][SCENARIO] ID=119(1->1) : Rejouer Planning
[2020-10-26 12:43:48][SCENARIO] Groupe=Chauffage - Zones
[2020-10-26 12:43:48][SCENARIO] Etat=1
[2020-10-26 12:43:48][SCENARIO] ID=1(1->1) : Z0-Toutes Zones
[2020-10-26 12:43:48][SCENARIO] ID=2(1->1) : Z1-Zone RDC
[2020-10-26 12:43:48][SCENARIO] ID=22(1->1) : Z2-Zone Suite
[2020-10-26 12:43:48][SCENARIO] ID=51(1->1) : Z3-Zone Amis
[2020-10-26 12:43:48][SCENARIO] ID=5(1->1) : Z4-Zone SdB Suite 
[2020-10-26 12:43:48][SCENARIO] ID=113(1->1) : Z5-Zone SdB Amis
[2020-10-26 12:43:48][SCENARIO] Fin correcte du scénario
1 « J'aime »

Bonjour,

Merci à toi c’est niquel, ça marche et du premier coup !