Bonjour A tous,
J’avais posté une demande d’aide au mois de juin car mon scenario de fermeture de la maison (dont 15 volets roulants, 40 actions au total avait des résultats aléatoires, certains volets restaient ouverts, pas toujours les mêmes et pas systématiquement.
Réponse logique de la communauté : créer des blocs, mettre des points d’attente pour éviter que le plugin ZWAVE ne sature.
Ce que j’ai fait, j’ai mis des sleep allant jusqu’a 10s entre chaque commande mais toujours le même résultat.
du coup, je ne vois qu’une seule solution, une boucle tant que… qui n’existe pas en tant que telle.
Tant que mon état de volet roulant est > 10 (Le volet est fermé à 0)
commande « bas » du VR
attente Xs (minimum le délai de fermeture)
on recommence
J’ai pensé à une alternative :
Si je créé un scénario par volets roulant VR dans ce genre la :
Concernant ton palliatif, en soit ca peut fonctionné bien sur j’aime toujours essayé de trouver la source du problème plutôt que des faire des palliatifs …
Peux-tu m’envoyer le scénario originel avec les logs associés pour essayer de comprendre la source du problème ?
si tu veux vraiment arrêter d’investiguer sur le problème initial alors
Non sauf si le scénario est en mode synchrone !
Propals d’amélioration :
attention dans le dernier SI tu as mis >10 et non <=10 pour arrêter ton scénario
Il faut aussi de mémoire sélectionner le multi-lancement dans l’onglet général sinon cela ne fonctionnera pas
si tu veux que tes volets descendent complètement, mets plutôt SI…[VR][etat] == 0
au lieu de Sleep, utilise plutôt un wait avec comme condition …[VR][etat] == 0 et un time-out de 15s (pour optimiser le code et les ressources)
Mais comme je te l’ai dit, perso je suis pas fan de ce type de palliatif…il faudrait investiguer sur le problème de base…
j’aurais procédé autrement, je ne sais pas si c’est mieux ou moins bien, mais pour toutes mes actions importantes
je lance la commande
et je lance un « DANS » : 3 ou 5mn après qui vérifie que c’est bien fait
suivant les cas, je m"informe que ce n’est pas réalisé, ou je relance la scenario
qui fait la commande, puis recontrôle, … avec une variable qui bloque la « boucle » après 3 tentatives infructueuse
Bonjour MIPS,
merci du conseil pour le Wait plutôt que le sleep
Evidemment, il s’agissait d’une erreur dans le scenario que j’avais créé juste pour illustré ma question, il n’est pas opérationnel.
Bonjour David,
J’ai pris un peu de temps pour modifier le scénario et le dédier à la fermeture des VRs, j’ai enlevé tout le reste.
Le scénario, le voila :
Le wait sert à attendre, dans le scénario, qu’une condition soit vraie avant de poursuivre (ou au bout d’un timeout).
Par exemple utile pour lancer une fermeture, attendre que le volet soit en bas avec un wait et poursuivre avec la fermeture d’une autre volet.
Le dans sert à programmer une action pour qu’elle soit réalisée plus tard.
Par exemple utile pour lancer une fermeture et demander à vérifier dans 1mn l’état du volet pour, relancer la fermeture, avertir d’un problème, etc.
Dans ton dernier scénario il n’y a plus de notion de pause, toutes les actions sont envoyées en même temps et certaines ne doivent pas arriver au modulende façon aléatoire
Quand je lance un tat de commande, je fais une pause de 2 secondes entre chaque action.
Si cela ne marche pas (meme avec 5 secondes entre chaque action) je m’interrogerai sur le choix des modules, car si l’on devait vérifier qu’une action passe à chaque fois, ça serai enfer. Il faut donc avoir un système qui passe les actions quand on lui demande….
Ps: pour essayer différents temps de pause, tu peux créer un tag : Pause = X seconde, en début de scénario.
Puis dans les sleep indiquer comme temps tag(Pause).
Ps2: j’ai un scénario qui allume puis éteint toute les lumières (en cas de détection extérieure quand on dors) cela fait une vingtaine d’ordre, je n’ai jamais de loupé…. (Reseau z-wave + zigbee : j’envoie une commande z-wave et zigbee en même temps, pause, un autre couple de commandes, etc…)
Je ne m’en sert pas pour les volets mais pour mes prises connectées.
Mais comme on peut régler le délais entre les tentatives
Ca vaut le coup de tester