Votre avis ? Automate appelé par un autre automate
#1
.
Bonjour,
Il m'arrive depuis un automate d'en appeler un autre.
Cela me permet par exemple d'utiliser l'automate appelé comme une fonction. Plutôt que de reproduire l'automate appelé 3 fois dans les 3 automates maîtres, il n'est repris qu'une seule fois, et si cette "fonction(alité)" est appelée à évoluer, je fais la modif une seule fois !

MAIS

J'ai constaté un GROS problème.
Je crée une action pour exécuter l'automate, puis une autre qui suit cette action : elles sont lancées les une après les autres, et l'action qui suit le lancement de l'automate n'attend pas la fin de l'automate.

Exemple (je lui ai fait actionner des lampes pour être sûr des actions)
Mon automate principal s'appelle Z_Main.
Il a démarré à 20:14:12 en appelant l'automate Z_Sub.
[attachment=1719]
L'automate Z_Sub a bien démarré à 20:14:12
[attachment=1720]
comme je suis sûr qu'il dure 5 secondes (cfr Délais), je m'attendais à ce que la seconde action de l'automate Z_Main démarre à 20:14:17.
Or elle a été enclenchée à 20:14:13 (13 ou 12, c'est la même chose, c'est dû aux arrondis, à l'après de quelques millisecondes)
[attachment=1721]

N.B. pour avoir les heures d'exécution de mise à jour de l'automate appelé (Z_Sub), il ne suffit pas de l'ouvrir une fois appelé (quand on l'ouvre directement, on a les heures d'exécution de la fois précédente), mais il faut faire une modif dans  l'automate (changer la durée du Wait), afin de pouvoir le sauver, et alors on a les heures mises à jour.

La "solution" serait d'ajouter un Délais dans l'automate Z_Main qui correspond à la durée d'exécution du Z_Sub. Mais ce n'est pas propre, ET ici c'est facile, mais vous pouvez avoir des automates Z_Sub qui ont des durées d'exécution variables ...
Répondre
#2
Bonjour,

ce n'est pas un problème c'est juste un comportement qui a été voulu par les développeurs.

Si tu veux attendre la fin de l'execution de l'automate tu peux metrte en oeuvre ceci

http://forum-lifedomus.com/showthread.ph...31#pid5131
http://www.homesweetdom.lu
Boutique en ligne avec identification des produits testés compatibles Lifedomus
www.homesweetshop.eu
Likes Received: 174 in 123 posts
Likes Given: 248
Répondre
#3
Merci pour ton idée / ta solution.

Et si je veux que mon second automate se comporte comme une fonction (c'est-à-dire qu'il puisse éventuellement être appelé par plusieurs automates en même temps, comment devrais-je faire ?
Car le mode Recommencer, va interrompre l'instance actuelle et en recommencer une nouvelle depuis le début ?
Répondre
#4
Je ne pense pas qu'il soit possible d'utiliser ton automate comme une "fonction" car on ne peut pas lancer deux fois le même automate
http://www.homesweetdom.lu
Boutique en ligne avec identification des produits testés compatibles Lifedomus
www.homesweetshop.eu
Répondre
#5
ok,
Si juste avant de faire le délais en fonction de la variable, on fait un test sur une autre valeur de la variable qui dit si le second automate est en cours, on peut ainsi attendre qu'il ait fini ailleurs, et ensuite le démarrer.
Je crois que c'est faisable, mais seulement si on risque d'avoir 2 instances simultanées de la fonction.
En tout cas merci, tu m'as donné plein d'idées (qui m'empêcheront de dormir cette nuit Icon_thunder-20740 )
Répondre
#6
Arreter de me perdre et de me noyer @jojo et @HSD ;-)
Répondre
#7
investi dans une LD, et
  1. tu seras heureux, car nette augmentation du WAF
  2. tu comprendras mieux nos charabias Eek-1e6fb
Likes Received: 179 in 132 posts
Likes Given: 150
Répondre
#8
(05-22-2017, 11:22 AM)jojo a écrit : investi dans une LD, et
  1. tu sera heureux, car nette augmentation du WAF
  2. tu comprendras mieux nos charabias Eek-1e6fb

si seulement ;-)
Répondre
#9
(05-21-2017, 04:22 PM)jojo a écrit : J'ai constaté un GROS problème.
Je crée une action pour exécuter l'automate, puis une autre qui suit cette action : elles sont lancées les une après les autres, et l'action qui suit le lancement de l'automate n'attend pas la fin de l'automate.

J'ai un peu de mal à suivre des explications mais j'ai compris que les automates sont asynchrones; lorsqu'un automate A lance un automate B ; A continue son exécution sans être influencé par B ?
Un automate peut-il lancer simultanément plusieurs autres automates ?
Répondre
#10
en effet, un automate peut lancer en parallèle plusieurs automates
Et si tu ne veux pas que celà soit le cas, regarde comment faire dans ma signature (enchainement des automates)
Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  creer automate avec les alertes yann29 10 11,291 04-03-2020, 07:31 PM
Dernier message: yann29
  Boucle dans automate syndrom 3 5,150 04-03-2020, 06:41 PM
Dernier message: Al_Bla
  Aide automate fermeture volets coucher de soleil FranckH 27 33,504 02-01-2020, 07:57 PM
Dernier message: Daniel
  Lancer un automate lors de l'activation d'une scène KNX fredblabla 4 8,139 09-20-2019, 11:23 PM
Dernier message: Pollux06
  Automate pour arrosage Daniel 21 27,613 09-11-2019, 03:09 PM
Dernier message: Pollux06
  Demande d'aide realisation automate satpak 3 6,181 03-20-2019, 07:48 AM
Dernier message: 889laurent
  Intercaler nouvelle action dans automate sirdjey 2 5,451 03-07-2019, 03:16 PM
Dernier message: sirdjey
  Déclencher un automate sur le retour d'état d'un autre automate? AucuneID 3 6,176 10-28-2018, 01:05 PM
Dernier message: jojo
  Lancer un automate toutes les heures Ives 9 14,160 09-18-2018, 06:01 PM
Dernier message: Daniel
  Modification d'un automate fpicard102 9 13,452 03-20-2018, 02:12 PM
Dernier message: fpicard102



Utilisateur(s) parcourant ce sujet : 1 visiteur(s)