Franco268 Posté(e) le 10 août 2018 Signaler Posté(e) le 10 août 2018 Bonjour, J'ai l'impression que mon code ne s'exécute pas de manière correct. Pouvez vous me donner votre avis? Ce code est dans une boucle de VD est et sensé "appuyer" sur un bouton toutes les 10min. Cependant, dans les faits (mode debbug), il le fait plus souvent. local FrequenceExecutionBoucleFraicheurEnMin = 10 if type(OldTempsSysteme) == "nil" -- Au premier lancement du VD la variable est vide, alors on l'initialise avec une valeur qui lancera tout de suite la boucle then OldTempsSysteme = os.time() - (FrequenceExecutionBoucleFraicheurEnMin + 1) * 60 end if (fibaro:getGlobalValue("FraichVolet") == "Oui" or fibaro:getGlobalValue("FraichVelux") == "Oui") and ((os.time() - OldTempsSysteme) >= (FrequenceExecutionBoucleFraicheurEnMin * 60)) then OldTempsSysteme = os.time() fibaro:debug("Lancement de la boucle"); fibaro:call(fibaro:getSelfId(), "pressButton", "26") -- On appui sur le bouton 26 end
Franco268 Posté(e) le 10 août 2018 Auteur Signaler Posté(e) le 10 août 2018 C'est quoi le délir???? J'ai changé ceci: fibaro:debug("Lancement de la boucle"); par cela: fibaro:debug("Lancement boucle"); et j'obtien ça: C'est quoi ces fantomes??
Dragoniacs Posté(e) le 10 août 2018 Signaler Posté(e) le 10 août 2018 Question toute bête : est ce que tu as limité à 1 scène en parallèle ? Peut être que tu as plusieurs instances en même temps...Envoyé de mon SM-A520F en utilisant Tapatalk
Franco268 Posté(e) le 10 août 2018 Auteur Signaler Posté(e) le 10 août 2018 C'est la boucle principale d'un VD pas d'une scene. J'ai essayé un redémarrage et un export import du VD, mais le résultat est le même. Je vais essayé de recréer le VD depuis le début pour voir....
Franco268 Posté(e) le 10 août 2018 Auteur Signaler Posté(e) le 10 août 2018 (modifié) Je me rends compte que dès que je modifie un VD, il y a toujours sa version - 1 qui toune en parallèle. Chez vous aussi? Voir même 4 fois la version -1. A moins que ce ne soit les versions -1, -2, -3, -4 (Je ne sais pas, le fibaro:debug avait les mêmes intitulés). Vraiment bizzare!!! Est ce normal? Modifié le 10 août 2018 par Franco268 Complement
Franco268 Posté(e) le 12 août 2018 Auteur Signaler Posté(e) le 12 août 2018 Finalement, j'ai trouvé ce qui supprime ce bug, sans pour autant vraiment comprendre le pourquoi. J'ai remplacé la ligne suivante: OldTempsSysteme = os.time() - (FrequenceExecutionBoucleFraicheurEnMin + 1) * 60 par: OldTempsSysteme = os.time() Ce qui, pour le coup, ne lance pas immédiatement l'appui sur le bouton au démarrage de la box. Y a t'il un problème au démarrage des box, si on sollicite des boutons trop vite??? Je ne sais pas. Mais cela semble avoir réglé mon problème
Lazer Posté(e) le 12 août 2018 Signaler Posté(e) le 12 août 2018 Etrange ce problème..... J'ai bien quelques VD qui appuient sur des boutons au démarrage, et il ne me semble pas avoir jamais rencontré ce problème. En tout cas tant mieux si tu as une solution.
jojo Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 Le 10/08/2018 à 09:20, Franco268 a dit : (fibaro:getGlobalValue("FraichVolet") == "Oui" or fibaro:getGlobalValue("FraichVelux") == "Oui") and ((os.time() - OldTempsSystem vérifie bien tes parenthèses, car les and s'exécutent avant les or
Lazer Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 T'es sûr ? Il me semblait qu'il ne fait pas la différence, or et and ont le même niveau de priorité, donc ils sont interprétés dans l'ordre de gauche à droite. Mais dans l'absolu tu as raison, dans le doute il veut mieux utiliser des parenthèses.
jojo Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 je ne suis jamais sûr de rien, mais quand)même ... https://docs.microsoft.com/en-us/sql/t-sql/language-elements/operator-precedence-transact-sql?view=sql-server-2017
Nico Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 Normalement oui, c'est ça la règle, mais peut être pas en lua ou en lua Fibaro
Lazer Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 Ok je ne connaissais pas cette règle. Après, en LUA, faudrait faire le test.....
Franco268 Posté(e) le 14 août 2018 Auteur Signaler Posté(e) le 14 août 2018 il y a une heure, jojo a dit : vérifie bien tes parenthèses, car les and s'exécutent avant les or Je ne sais jamais non plus quelle est la priorité, c'est pour ça que je mets beaucoup de parenthèse. Mais imaginons que je n'ai pas mis les parenthèses au bon endroit. Je ne comprends pas pourquoi, on voit également "Lancement de la boucle" alors qu'il ne figure même plus dans le code. Je voulais rajouter que vous êtes vraiment tous au top, pour prendre autant de temps à faire vivre ce forum et à repondre presque à tous les postes. Un grand merci
jojo Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 ou bien j'ai mal lu, mais dans ce if je ne vois pas de ( pour regrouper les conditions : if (fibaro:getGlobalValue("FraichVolet") == "Oui" or fibaro:getGlobalValue("FraichVelux") == "Oui") and ((os.time() - OldTempsSysteme) >= (FrequenceExecutionBoucleFraicheurEnMin * 60))
jojo Posté(e) le 14 août 2018 Signaler Posté(e) le 14 août 2018 il y a 9 minutes, Franco268 a dit : Je ne comprends pas pourquoi, on voit également "Lancement de la boucle" alors qu'il ne figure même plus dans le code. je ne comprends pas non plus. Il y a 20 ans, j'avais un collègue qui disait tout le temps : "il n'y a pas de mystère, il n'y a que des conneries." Alors remplace le texte de ton débug par qqch de super unique : "tartampion". Et reposte ton dernier code avec son débug
Franco268 Posté(e) le 14 août 2018 Auteur Signaler Posté(e) le 14 août 2018 pffffff.... J'ai passé toute une grosse soirée et une matinée à me bagarrer contre ce bug et maintenant, plus moyen de le répéter...... j'en perd mon lua...... Mais bon le screen shot ne ment pas, il y a eu qqchose, mais quoi?
Dragoniacs Posté(e) le 15 août 2018 Signaler Posté(e) le 15 août 2018 Un fantôme Fibaro... Envoyé de mon SM-A520F en utilisant Tapatalk
jojo Posté(e) le 17 août 2018 Signaler Posté(e) le 17 août 2018 pour d'autres histoire de fantôme Fibaro : 1
Dragoniacs Posté(e) le 18 août 2018 Signaler Posté(e) le 18 août 2018 Fibaro un jour, Fibaro toujours Envoyé de mon SM-A520F en utilisant Tapatalk
Lazer Posté(e) le 18 août 2018 Signaler Posté(e) le 18 août 2018 C'est les vacances, toutes nos box sont sur AirBNB, et nos bouts de codes LUA se louent des semaines entre eux 1 1
Dgille Posté(e) le 18 août 2018 Signaler Posté(e) le 18 août 2018 J ai eu le meme probleme après modif d un vd en 4.510. Pour moi, apres modif, lancien process du vd ne s arrete pas, d ou le double debug. J ai du rebooter la box pour le regler. Ou si vous etes root, tuer le process associé au vd
Franco268 Posté(e) le 18 août 2018 Auteur Signaler Posté(e) le 18 août 2018 Je suis aussi en version 4.510. Mais je ne sais pas dire si ce problème était déjà existant avant ou pas. C’est une bonne piste. Lorsque j’avais essayé le reboot, le défaut était parti quelques minutes puis avait réapparu. Et depuis je n’arrive pas à le recréer (en même temps, ça ne me dérange pas lol). Par contre ceci m’a interpellé : Il y a 10 heures, Dgille a dit : Ou si vous etes root, tuer le process associé au vd Je ne savais pas qu’il était possible de tuer des process.. ça se passe où?
Dgille Posté(e) le 19 août 2018 Signaler Posté(e) le 19 août 2018 Manip pas officielle, et que tu ne drevrais pas avoir a faire normalement mais chaque vd correspond a une process linux. En etant root, il,est possible de tuer le process en double. Je pense que ce pb sera regle ds les prochaines versions.
Messages recommandés