Appels de scénario avec parametre en boucle

bonjour,
Je pense que j’ai un problème de syntaxe dans mes scénarios :
Contexte : Puisque la boucle « tant que » n’existe pas dans jeedom, et que j’ai une installation avec une trentaine de volets, il arrive assez souvent que l’un des volets ne s’exécute pas (saturation du ZWAVE ?).
J’ai donc mis en place un garde-fou dans lequel j’ai un scénario lanceur et un scénario exécuteur

tous les soirs à heure fixe, le scénario lanceur demande la fermeture des volets d’une pièce avec en paramètre la position souhaitée

le scénario exécuteur reçoit correctement le paramètre et tourne en boucle jusqu’à ce que le position du volet soit celle demandée.

mon probleme est lorsqu’au bout des 20s de timleout, si le volet n’est pas dans sa position cible et que je relande le même scénario avec le même paramètre, le scénario exécuteur ne recoit pas correctement le paramètre qu’il s’est lui-même envoyé. c’est ce que j’ai surligné en jaune.

et voici les logs.

Clairement, j’ai un probleme avec ce paramètre qui est envoyé/recu en numérique du scénario lanceur vers le scénario exécuteur, mais en chaine de caractère entre le scénario exécuteur et lui-meme…

merci de votre aide !


Informations Jeedom Luna

Core : 4.4.20 (master)
DNS Jeedom Luna : oui

Salut,

Je pense qu’il n’est déjà pas terrible d’utiliser un tag avec un nom un peu identique au mot clef param que l’on doit utiliser pour le passage de paramètres.

Envoi plutôt un position

Ensuite pour appeler le contenu du tag il faudrait utiliser tag(position) : à utiliser donc pour la comparaison dans le SI ainsi que dans le passage du paramètre

Perso j’utiliserais un generic type et fermerais les volets par pièces avec un wait de 5s entre chaque pièces
Et en fin de scénario je teste les de tous les volets tjrs avec le generic type et je relance une fermeture

Bonjour

Il faut effectivement enlever les deux # dans le transfert du tag
L’écriture historique était #mon tag#
Puis remplacé par tag(mon tag)
Vérifier la doc pour l’écriture aujourd’hui recommandée.
Mais il faut pas mélanger les deux.

Avant l’appel du scénario (au début de ton Si) j’aurais ajouter une action qui compte le nbre de boucle soit :
Tag (Ni) = tag(Ni,0) + 1
Si tag(Ni) > 10
Alors envoie d’un message puis action STOP
Sinon appel du scénario

Merci Henri,
j’essaie aujourd’hui.
concernant les 10 tentatives,j’avais fait le test et n’étais jamais arrivé au dela de 3 tentatives avant que ca marche.
de plus, le scenario exécuteur étant également appelé par la gestion de la sécurité de la maison, je n’aimerais pas qu’un volet reste ouvert…