Lancement d'un scenario en boucle

Bonjour

Dans un scenario j’utilise un bloc Boucle ( ex de 1 a 3 )
Dans ce bloc je lance un autre scenario ( Démarrer)

Le probleme c’est qu’il me lance 3 fois le scenario de maniéré consécutive sans attendre
que le cycle du premier scenario soit terminer ( Pour info le temps de cycle est variable)
Comment pourrais je faire pour qu’il attente la fin du scenario avant de continuer la boucle ?
y a t il un moyen de récupérer l’état d’un scenario ?

Merci d’avance pour votre aide
Lionel

Salut,
Tu ne dois pas utiliser Démarrer mais Démarrer (Sync)

Merci pour le retour
Mais cette fonction ne change rien

Pourtant démarrer Sync est fait pour ça.
Lancement d’un scénario et attente de la fin de son exécution pour continuer le scénario en cours.

Et en cochant la case « synchrone » du scénario à lancer ?

Alors avec vos différentes remarques je pense avoir compris pourquoi

Dans mon scenario je lance une action puis j’imbrique des fonctions ‹ Dans › ce qui généré
des sous taches ( D’apres les logs du scenario)
J ai fais un test avec un scenario temporaire ( Boucle , fonction sleep et notif ) et la en choisissant
démarrer(sync) j ai bien les 3 cycles de notifs qui me remonte

Si mon analyse est correct je pense que mon premier cas fonctionne mais qu’il comprend que le scenario est terminé après la première action sans attendre que toutes les sous tache se terminent .

Pensez vous que c’est un bug ou un fonctionnement normal ?

PS: @Jeandhom Synchrone ne change rien

En tout cas merci pour aide

1 J'aime

Le plus simple est que tu nous envoies ton scénario afin que l’on puisse se faire une idée

Alors je pense avoir trouvé une solution

J ai mis une action ‹ wait › dans ma boucle qui appel le scenario avec les sous tache
Au début du scenario avec les sous tache je la passe a 0 et a la dernière sous tache je la passe a 1
ce qui débloque la boucle et recommence mon cycle suivant et ainsi de suite

Apres si cela pour vous aider a comprendre si nous sommes dans un fonctionnement normal ou pas je veux bien vous envoyer les deux scenarios en question
Si oui vous les voulez comment ?

Merci pour votre aide

Edit : j ai fait le test et cela semble fonctionner

Si ça te convient, restes en là.
Il ne faut pas perdre de vue que, contrairement au DANS, les sleep sont bloquants et ralentissent le process

Alors effectivement le ‹ wait › bloque le scenario , a voir a la longue si cela pose probleme

Par contre est ce que le fait que le demarrer(sync) ne prennent pas en compte le ‹ Dans › est
normale ? ou est-ce un bug ?

Merci en tour de ton aide

Le DANS créé une entrée dans la table des cron.
Donc, si tu mets un DANS dans ton scénario, quelque soit ta programmation, un évènement va se déclencher à l’heure prévue.
Ceci étant, tu n’as toujours pas posté ton scénario afin que l’on puisse comprendre précisément ce que tu cherches à faire.

Alors voici mon scenario qui gérer mes zones d’arrosage
Ps : la variable Sous tache sert a régler mon probleme et les notifications pour les tests

Scenario_01

Scenario_02

Ensuite avec un autre scenario je gère pour l’instant que le nombre de cycle
mais le but de faire comme cela est qu’a terme je pourrais rajouté un pluviomètre, une temperature
et conditionné l exécution du scenario avec ces paramètres

Voici le scenario de ‹ Gestion ›
Scenario_03

Merci d’avance pour ton retour

Bonjour

@mich0111 as tu un retour suggestion a me faire ?

Salut,
Désolé, j’avais zappé.
Je regarde ce soir quand je serais sur PC.
A+

J’ai essayé de comprendre ton scénario sur smartphone.
C’est très compliqué à lire mais de toutes manières il est trop dense pour pouvoir être compris comme ça.
Peux-tu m’expliquer ton algorithmie soir par organigramme soit en mode texte ?
En l’état, je mettrais trop de temps à entrer dans ta logique pour te faire une suggestion.
A+

Bonjour

Alors ma logique est la suivante j ai 7 zones d’arrosage , lorsque que j actionne
le scenario ‹ Cycle › je lance la première , puis la deuxième , …, jusqu’à la septième de manière consécutive, sachant que le temps d’une zone est dans une variable afin de pourvoir le faire évoluer
Dans ma logique je démarre une zone puis avec le ‹ Dans › je ferme la Zone et allume la suivante
et tout cela imbriqué afin de pourvoir les exécuter de maniéré consécutive.

Ensuite un second scenario ‹ Gestion › lance celui le scenario ‹ Cycle › avec comme variable le nombre de cycle a effectuer et c est de la d’où vient mon problème car il faut que j’attende que le premier cycle soit terminer pour exécuter le suivant …

En espérant avoir été claire et en te remerciant par avance pour ton aide

Donc, si je comprends bien, c’est ton scénario « Gestion » qui lance le scénario « Cycle » qui lui-même a 7 instances différentes d’une séquence à peu près équivalente d’arrosage par zone.
Ça m’a l’air assez simple.
Il ne me manque qu’une info, qu’est-ce qui lance le scénario « Gestion »?

Salut

Pour l’instant un BP ( via un virtuel) sur l appli mobile en manuel ,
a terme il sera automatisé ( Période, horaire, météo ,pluviomètre,…)

Ok, je te rédige ça rapidement.

Voici ce que je te propose :

Capture

Cela ne concerne que le scénario « Cycle ».
Pour le lancement de « Gestion », tu ne devrais pas avoir de difficulté si tu gardes ton fonctionnement actuel.
La variable « temps-cycle » identifie l’intervalle de temps entre 2 lancements d’arrosage de zones. Elle s’exprime en minutes. Je n’ai jamais testé le fait de passer une variable en paramètre d’un bloc DANS mais il n’y a pas de raison que cela ne marche pas.
Je n’ai pas prévu d’initalisation interactive de cette variable mais là encore ça ne devrait pas te poser de problème. En l’occurence, je me suis contenter de créer cette variable et de l’initialiser à 1.

J’attends ton retour.

Bonne journée