Arreter tout les scenarios d'un groupe de scenario

Bonjour,
Pour améliorer la gestion des scenarios de mes volets, je souhaite savoir s’il serait possible d’arrêter TOUT les scenarios d’un groupe de scenario.

Je m’explique:
J’ai fais tout un tas de scenario pour la gestion de mes volets (ouvrir sejour; my sejour; fermer sejour; ouvrir chambre, my chambres etc etc …)

Dans le cas d’une erreur de manipulation ou de commande vocal, je souhaiterai avoir la possibilité de stopper TOUT les scenarios liée au groupe « volets »
Es possible ?

Merci

Bonjour,

Nativement il n’y a pas cette fonctionnalité.
Vous pouvez le faire avec le plugin : Mode
Vous créez un mode et y placez les scénarios que vous voulez arrêter avec la commande qui correspond à votre choix.

Ok merci

Oui, ou un scenario qui arrête des scenarios…
Dommage que ce ne soit pas implémenté. Car le fait de créer des sous ensemble de scenario aurait pu ouvrir a cette fonction…

Vous pouvez toujours faire un scénario stop volet avec dedans toutes vos commandes d’arrêt

Non car les scenarios des volets sont un peu complexe, avec des conditions de retour d’information.
Si la condition n’est pas rempli, il relance des actions …

Ce qu’il faut, c’est faire « stop scenario »

Je parlais d’un scénario dédié (ou un/des virtuel(s)) pour stopper pas de modifier vos scénarios actuels

un appel sur Alexa d’arret stoppera donc le mouvement.

Cela réponds pas à la question d’origine, j’en suis conscient :slight_smile:

oui ok, un scenario qui arrête tout les scenarios des volets, et un stop de tout les volets…
C’est bien une façon de faire que j’avais pensé…

Faut le faire quoi … Lol

Il n’arrêtera pas les scénarios, juste les volets.

Déclenchement sur commande : Arrêt VR
Action [Volet A][Stop]
Action [Volet B][Stop]
Action [Volet C][Stop]
Action [Volet …][Stop]

Bien sur, cela dépendra de ce que vous avez dans vos « scénarios » de gestion (n’ayant pas d’exemple …)

Non, comme je disai, cela ne marchera pas. Il faut arreter le/les scenario(s) en cours, puis, envoyer un stop à tout les volets …

Mais j’ai compris ce que tu voulais dire :wink:

Arrêter un scénario stop l’exécution du scénario en cours.

Bah j’espère que oui :grinning:

→ Je viens d’essayer et ça marche…

J’ai fait le test aussi :slight_smile:
Ca répond à votre besoin alors :wink:

Hmm il manque la notion de groupe …

Il faut refaire un scenario, qui arrete le(s) scenario(s), ajouter un « stop » pour chaque ouvrant, creer un commande vocal (« arrete les volets » par exemple)

Je pourrais aussi le rajouter en debut de tout les scenarios deja existant pour eviter la problematique d’un lancement (par erreur) de deux scenario qui entrerait en collision (ouvrir tout les volets puis fermer tout les volets)

Le probleme dans tout ca ? le faire … :rofl::rofl::rofl:

Scénario avec script pour arrêter tous les scénarios d’un groupe de scénario

pour arrêter un scenario on peut faire

$scenario = scenario::byId(ID);
$scenario->stop();

en adaptant ce que vous trouverez ici, ça devrait fonctionner.

Oula, c’est pas plus compliqué que la solution précédente ? :rofl:

un scénario qui arrête tous un groupe de scénario :slight_smile:
C’est votre demande non :wink:

Non, la demande était de savoir s’il existait une fonction dans scénario pour piloter un groupe de scénario

=> Cela n’existe pas

Pour pallier à ce manque, il y a plusieurs solutions dont le réglage de scripts, la création d’un scénario qui arrête d’autre scénario, un réglage via les tags, j’imagine qu’on peut faire des truc avec des variables aussi …
Bref

Je trouve que le scénario qui pilote l’arrêt des autres scénario me paraît plus simple à mettre en oeuvre.
Mais il faut avouer que je ne suis pas très à l’aise avec les tag, les scriptes, les variables etc …

Une montée en compétences dans ces domaines me ferai du bien :rofl::rofl::rofl:

Je voulais parler du titre de votre post :slight_smile:

Arreter tout les scenarios d’un groupe de scenario

Pas fait de code depuis longtemps,

mais à priori (pour un groupe du nom VOLET) :

Bloc code dans un scénario « Arrêt des scénarios du groupe VOLET »

$GroupeName = "VOLET";
$scenario->setLog("Groupe : " . $GroupeName);
$Groupes = $scenario::all($GroupeName);

foreach($Groupes as $Groupe)
{
    $Name = $Groupe->getName();
  	$State = $Groupe->getState();
    $scenario->setLog("Scénario: " . $Name . "| Statut = " . $State);
	If ($State != "stop"){
    	$Groupe->stop();
      	$scenario->setLog("Arrêt du scénario");
    }
}

Test ok

3 « J'aime »

J’ai testé le code, en modifiant le nom du groupe « VOLET » en « Volets » (le nom exact de mon groupe)
J’ai une erreur suite au lancement du scenario, mais rien dans les logs

Ce qui est étonnant, c’est que si je laisse le nom « VOLET », ca m’indique "

[2022-12-22 17:24:11][SCENARIO] Exécution d'un bloc code 
[2022-12-22 17:24:11][SCENARIO] Groupe : VOLET
[2022-12-22 17:24:11][SCENARIO] Fin correcte du scénario

Alors la, je suis perdu !


EDIT

Je suis vraiment ***, j’ai mis le fameux scenario en question dans le groupe VOLETS, et du coup, il n’aimait pas! Ce qui en soit parait tellement logique!!!

Du coup, je l’ai sortie du groupe et ça marche parfaitement!
Un grand MERCI à toi @J2B

C’est mieux que de se taper toutes les lignes de commande de scenario (j’en ai 43 !!!)

:muscle:

Si je souhaite lancer le scenarion plutot que de le stoper, dois je changer le « stop » par « start » ?

$GroupeName = "Volets";
$scenario->setLog("Groupe : " . $GroupeName);
$Groupes = $scenario::all($GroupeName);

foreach($Groupes as $Groupe)
{
    $Name = $Groupe->getName();
  	$State = $Groupe->getState();
    $scenario->setLog("Scénario: " . $Name . "| Statut = " . $State);
	If ($State = "stop"){
    	$Groupe->start();
      	$scenario->setLog("Lancement du scénario");
    }
}

SI le scenario = stop, alors « start »
J’ai essayé mais ca marche pas. Des idées?