une boucle qui verifie que la consommation du volet augmente et que donc le volet s’ouvre (ou se ferme) , je repete donc cette boucle pour chaque volet…
En powershell , il existe la possibilité de faire une fonction et de l’appeller avec un arguments (mon volet)
Est ce que ce type de fonction existe sous jeedom , afin de gagner en code et en lisibilité dans mon scenario … , cela simplifierais les choses ?
Je n’ai pas la réponse, mais un truc m’interpelle, c’est votre boucle DE 1 A :
- Cette boucle attend un chiffre en argument, pas un vrais ou faux ! (votre condition retourne une valeur booléenne, pas un nombre).
C’est pas plutôt un WAIT que vous auriez du mettre ?
La log du scénario ne vous indique pas une erreur avec cette boucle ?
je vais etudier la partie tag que je ne connais pas…
POur la boucle cela fonctionne …
je crée une variable à 1 et si ma puissance est toujours egale à 0 alors je rentre dans le faire et je renvoie l’ordre de monter le volet et j’incremente la variable de 1
cela tente 3 fois et ensuite on considere le volet mort et on passe au suivants
j’ai verifier dans la log cela fonctionne , ce cas etait rare , peux etre interference dans la maison je ne sais pas pourquoi le module ne recevait pas l’ordre… mais maintenant je n’ai plus ce cas …; , mes volets s’ouvre tout le temps en 1 voir 2 tentative
------------------------------------
[2021-01-21 08:50:04][SCENARIO] ************Lancement sous tâche**************
[2021-01-21 08:50:04][SCENARIO] Exécution du sous-élément de type [action] : do
[2021-01-21 08:50:04][SCENARIO] Exécution d'un bloc élément : 85
[2021-01-21 08:50:04][SCENARIO] Exécution du sous-élément de type [action] : action
[2021-01-21 08:50:04][SCENARIO] Log : ---------------------- SAISON : hiver ----------------------
[2021-01-21 08:50:04][SCENARIO] Log : ---------------------- MOIS : Janvier ----------------------
[2021-01-21 08:50:04][SCENARIO] Log : ---------------------- LEVER DU SOLEIL + 15 min ----------------------
[2021-01-21 08:50:05][SCENARIO] Exécution de la commande [Salon][Volets salon][Monter]
[2021-01-21 08:50:05][SCENARIO] Pause de 1 seconde(s)
[2021-01-21 08:50:06][SCENARIO] Exécution de la commande [Salon][Volets salon][Rafraichir]
[2021-01-21 08:50:06][SCENARIO] Pause de 1 seconde(s)
[2021-01-21 08:50:07][SCENARIO] Affectation de la variable tentative_volets_rdc => 1 = 1
[2021-01-21 08:50:07][SCENARIO] Exécution d'un bloc élément : 152
[2021-01-21 08:50:07][SCENARIO] Exécution du sous-élément de type [condition] : for
[2021-01-21 08:50:07][SCENARIO] Evaluation de la condition : [99 == 0 AND 1 < 3] = Faux
[2021-01-21 08:50:07][SCENARIO] Pause de 21 seconde(s)
[2021-01-21 08:50:28][SCENARIO] Exécution de la commande [Salle à manger][Volets Salle à manger][Monter]
[2021-01-21 08:50:28][SCENARIO] Pause de 2 seconde(s)
[2021-01-21 08:50:30][SCENARIO] Exécution de la commande [Salle à manger][Volets Salle à manger][Rafraichir]
[2021-01-21 08:50:30][SCENARIO] Pause de 2 seconde(s)
[2021-01-21 08:50:32][SCENARIO] Affectation de la variable tentative_volets_rdc => 1 = 1
[2021-01-21 08:50:32][SCENARIO] Exécution d'un bloc élément : 160
[2021-01-21 08:50:32][SCENARIO] Exécution du sous-élément de type [condition] : for
[2021-01-21 08:50:32][SCENARIO] Evaluation de la condition : [191.3 == 0 AND 1 < 3] = Faux
[2021-01-21 08:50:32][SCENARIO] Pause de 34 seconde(s)
[2021-01-21 08:51:06][SCENARIO] Exécution de la commande [Cellier][Volets Cellier_V][Monter]
[2021-01-21 08:51:06][SCENARIO] Pause de 1 seconde(s)
[2021-01-21 08:51:07][SCENARIO] Exécution de la commande [Cellier][Volets Cellier_V][Rafraichir]
[2021-01-21 08:51:07][SCENARIO] Pause de 1 seconde(s)
[2021-01-21 08:51:08][SCENARIO] Affectation de la variable tentative_volets_rdc => 1 = 1
[2021-01-21 08:51:08][SCENARIO] Exécution d'un bloc élément : 161
[2021-01-21 08:51:08][SCENARIO] Exécution du sous-élément de type [condition] : for
[2021-01-21 08:51:08][SCENARIO] Evaluation de la condition : [23.5 == 0 AND 1 < 3] = Faux
[2021-01-21 08:51:08][SCENARIO] Pause de 31 seconde(s)
[2021-01-21 08:51:39][SCENARIO] Exécution de la commande [Cuisine][Volets Cuisine_V][Monter]
[2021-01-21 08:51:39][SCENARIO] Pause de 1 seconde(s)
[2021-01-21 08:51:40][SCENARIO] Exécution de la commande [Cuisine][Volets Cuisine_V][Rafraichir]
[2021-01-21 08:51:40][SCENARIO] Pause de 1 seconde(s)
[2021-01-21 08:51:41][SCENARIO] Affectation de la variable tentative_volets_rdc => 1 = 1
[2021-01-21 08:51:41][SCENARIO] Exécution d'un bloc élément : 162
[2021-01-21 08:51:41][SCENARIO] Exécution du sous-élément de type [condition] : for
[2021-01-21 08:51:41][SCENARIO] Evaluation de la condition : [39 == 0 AND 1 < 3] = Faux
[2021-01-21 08:51:41][SCENARIO] ************FIN sous tâche**************
La c’est un cas ou il ne rentre pas dedans , mais cela permet de voir le point de vérification qui est fait …
je n’ai pas de cas ou il rentre dedans dans la log actuellement … , au prochain cas je l’ajoute … ( a moins que l’on peut remonter plus loin dans les logs…)
comme te l’a dit @Fabrice , ca ne peut pas fonctionner comme ca …
et dans le MEILLLEURE des cas, la boucle fonctionnera UNE seule fois
si ta condition est VRAIE, la boucle fera de 1 à ‹ VRAI › ==> le ‹ vraie › sera transformé en 1
donc tu n’auras qu’une seule exécution de ta boucle
ah d’accord oui en effet c’est fort possible que cela fonctionne qu’une seule fois , je n’ai jamais eu le cas ou il est necessaire de l’executer 3 fois…
Boucle : Permet de réaliser des actions de manière répétitive de 1 jusqu’à un nombre défini (ou même la valeur d’un capteur, ou un nombre aléatoire…).
------------------------------------
[2021-01-24 09:17:03][SCENARIO] ************Lancement sous tâche**************
[2021-01-24 09:17:03][SCENARIO] Exécution du sous-élément de type [action] : do
[2021-01-24 09:17:03][SCENARIO] Exécution d'un bloc élément : 90
[2021-01-24 09:17:03][SCENARIO] Exécution du sous-élément de type [action] : action
[2021-01-24 09:17:03][SCENARIO] Log : ---------------------- SAISON : hiver ----------------------
[2021-01-24 09:17:03][SCENARIO] Log : ---------------------- MOIS : Janvier ----------------------
[2021-01-24 09:17:03][SCENARIO] Log : ---------------------- LEVER DU SOLEIL + 45 min ----------------------
[2021-01-24 09:17:03][SCENARIO] Exécution de la commande [Salon][Volets salon][Monter]
[2021-01-24 09:17:03][SCENARIO] Pause de 1 seconde(s)
[2021-01-24 09:17:04][SCENARIO] Exécution de la commande [Salon][Volets salon][Rafraichir]
[2021-01-24 09:17:04][SCENARIO] Pause de 1 seconde(s)
[2021-01-24 09:17:05][SCENARIO] Affectation de la variable tentative_volets_rdc => 1 = 1
[2021-01-24 09:17:05][SCENARIO] Exécution d'un bloc élément : 154
[2021-01-24 09:17:05][SCENARIO] Exécution du sous-élément de type [condition] : for
[2021-01-24 09:17:05][SCENARIO] Evaluation de la condition : [80.1 == 0 AND 1 < 3] = Faux
[2021-01-24 09:17:05][SCENARIO] Pause de 30 seconde(s)
[2021-01-24 09:17:35][SCENARIO] Exécution de la commande [Salle à manger][Volets Salle à manger][Monter]
[2021-01-24 09:17:35][SCENARIO] Pause de 2 seconde(s)
[2021-01-24 09:17:37][SCENARIO] Exécution de la commande [Salle à manger][Volets Salle à manger][Rafraichir]
[2021-01-24 09:17:37][SCENARIO] Pause de 2 seconde(s)
[2021-01-24 09:17:39][SCENARIO] Affectation de la variable tentative_volets_rdc => 1 = 1
[2021-01-24 09:17:39][SCENARIO] Exécution d'un bloc élément : 157
[2021-01-24 09:17:39][SCENARIO] Exécution du sous-élément de type [condition] : for
[2021-01-24 09:17:39][SCENARIO] Evaluation de la condition : [191.6 == 0 AND 1 < 3] = Faux
[2021-01-24 09:17:39][SCENARIO] Pause de 25 seconde(s)
[2021-01-24 09:18:04][SCENARIO] Exécution de la commande [Cellier][Volets Cellier][Monter]
[2021-01-24 09:18:04][SCENARIO] Pause de 1 seconde(s)
[2021-01-24 09:18:05][SCENARIO] Exécution de la commande [Cellier][Volets Cellier][Rafraichir]
[2021-01-24 09:18:05][SCENARIO] Pause de 1 seconde(s)
[2021-01-24 09:18:06][SCENARIO] Affectation de la variable tentative_volets_rdc => 1 = 1
[2021-01-24 09:18:06][SCENARIO] Exécution d'un bloc élément : 158
[2021-01-24 09:18:06][SCENARIO] Exécution du sous-élément de type [condition] : for
[2021-01-24 09:18:06][SCENARIO] Evaluation de la condition : [22 == 0 AND 1 < 3] = Faux
[2021-01-24 09:18:06][SCENARIO] Pause de 23 seconde(s)
[2021-01-24 09:18:29][SCENARIO] Exécution de la commande [Cuisine][Volets Cuisine][Monter]
[2021-01-24 09:18:29][SCENARIO] Pause de 1 seconde(s)
[2021-01-24 09:18:30][SCENARIO] Exécution de la commande [Cuisine][Volets Cuisine][Rafraichir]
[2021-01-24 09:18:30][SCENARIO] Pause de 1 seconde(s)
[2021-01-24 09:18:31][SCENARIO] Affectation de la variable tentative_volets_rdc => 1 = 1
[2021-01-24 09:18:31][SCENARIO] Exécution d'un bloc élément : 159
[2021-01-24 09:18:31][SCENARIO] Exécution du sous-élément de type [condition] : for
[2021-01-24 09:18:31][SCENARIO] Evaluation de la condition : [0 == 0 AND 1 < 3] = Vrai
[2021-01-24 09:18:31][SCENARIO] Exécution du sous-élément de type [action] : do
[2021-01-24 09:18:31][SCENARIO] Affectation de la variable tentative_volets_rdc => 1+1 = 2
[2021-01-24 09:18:31][SCENARIO] Log : !!!! Nouvel envoie de l'ordre de monter le volet de la cuisine | tentative 2
[2021-01-24 09:18:31][SCENARIO] Exécution de la commande [Cuisine][Volets Cuisine][Monter]
[2021-01-24 09:18:31][SCENARIO] Pause de 1 seconde(s)
[2021-01-24 09:18:32][SCENARIO] Exécution de la commande [Cuisine][Volets Cuisine][Rafraichir]
[2021-01-24 09:18:32][SCENARIO] Pause de 1 seconde(s)
[2021-01-24 09:18:33][SCENARIO] ************FIN sous tâche**************
------------------------------------
On voit bien qu’il a tenter une deuxieme fois ce matin le volet de la cuisine
mais je comprends que ce n’est pas le but de cette fonction