Berale64 Posté(e) le 8 novembre 2015 Signaler Partager Posté(e) le 8 novembre 2015 J'utilise la facilité json.encode et decode pour stocker des infos dans les variables globales. J'ai remarqué, depuis que j'ai installé un UPS, qu'une coupure de courant intempestive fait perdre ces valeurs. On se retrouve avec "NaN" (Not a Number) en lieu et place. Alors qu'un arrêt propre, avec le petit bouton derrière la box préserve nos valeurs. Voilà , c'est juste pour info. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 8 novembre 2015 Signaler Partager Posté(e) le 8 novembre 2015 moi j'ai également observé que les tableaux sauvés dans des variables globale, se transformaient en NaN, mais ce n'était pas lié àune coupure de courant intenpestive Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité chris6783 Posté(e) le 11 novembre 2015 Signaler Partager Posté(e) le 11 novembre 2015 Ça arrive également si on passe par le panneau variable et on sauve une autre variable après avoir regardé le tableau.... Au début ça cassait mon gestionnaire de piscine et j'ai dû le protéger de ce phénomène. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 11 novembre 2015 Auteur Signaler Partager Posté(e) le 11 novembre 2015 @chris:tu peux nous en dire plus ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nico Posté(e) le 11 novembre 2015 Signaler Partager Posté(e) le 11 novembre 2015 Yes Chris, déjàvu aussi, mais c'est corrigé maintenant non ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité chris6783 Posté(e) le 11 novembre 2015 Signaler Partager Posté(e) le 11 novembre 2015 Mon VD stoque ses options et des résultats de calcul dans une VG qui est un tableau json avec des sous tableau. Et àl'époque je créais pas mal d'autres VG. Régulièrement le gestionnaire de piscine s'arrêtait de calculer les temps de filtration... Les tableaux était remplacé par ´NaN' sans raison apparente (gt encore en v3). Pour reproduire le problème il suffisait de regarder le tableau dans le panneau variable et ensuite sauver une quelconque autre VG.... Et toutes les variables tableau passaient àNaN. Même la variable de GEA basculait. Donc dans mon VD j'ai ajouté une protection pour gérer le ças du tableau disparu. D'ailleurs je dois partager cet update car si qq'un utilise le gestionnaire de piscine et joue avec les VG le device peut s'arrêter. Une journée entière voir même plus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité chris6783 Posté(e) le 11 novembre 2015 Signaler Partager Posté(e) le 11 novembre 2015 Je vais essayer de reproduire ce soir mais c peut être corrigé, si tu parles du VD de gestion de piscine c corrigé mais pas sûr d'avoir publié de dernier update de ce printemps. J'ai retiré quelques cycles de calculs inutiles et supporte le NaN. Le VD tourne et je ne m'occupe plus des temps de filtration :-) Tu avais prévu de creuser une piscine il me semble, j'espère qu'il te sera utile Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 11 novembre 2015 Signaler Partager Posté(e) le 11 novembre 2015 merci chris, J'avais également des tableaux stockés dans des VG, et parfois ils venaient àNaN, sans raison apparente. Maintenant j'ai reproduit exactement ce que tu as dis et mon tableau est passé àNaN. C'est peut-être la cause du "plantage" de GEA, comme la variable GEA_Task passe également àNaN ? => c'est un bug de la box, je vais le remonter sur le bug traker ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 11 novembre 2015 Auteur Signaler Partager Posté(e) le 11 novembre 2015 Je ne pense pas que ce soit un bug. C'est plutôt un abus d'utilisation de notre part. Si le message est "Not a Number" c'est bien que le système attend une valeur numerique. Mais si Fibaro veut bien changer son fusil d'épaule, je suis preneur. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité chris6783 Posté(e) le 11 novembre 2015 Signaler Partager Posté(e) le 11 novembre 2015 Pour moi ça relève effectivement du bug car on modifie une variable et les voisines sont impactees Envoyé de mon SM-G850F en utilisant Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 11 novembre 2015 Signaler Partager Posté(e) le 11 novembre 2015 le test que je viens de faire est pire Je sauve mon panneaux des variables (sans avoir rien changé) et toutes (9 sur les 12) mes VG (non prédéfinies) passes à NaN => c'est un bug ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 11 novembre 2015 Signaler Partager Posté(e) le 11 novembre 2015 http://bugzilla.fibaro.com/view.php?id=3642 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 12 novembre 2015 Auteur Signaler Partager Posté(e) le 12 novembre 2015 Bon, ça vaut ce que ça vaut, mais voilà une scène qui conserve les variables globales et les restaure si besoin. L'idée est de lancer la scène avant que les variables ne soient perdues, puis de boucler pour vérifier qu'elles sont toujours bonnes. Si NaN on remet la valeur précédente. Les courageux pourront incorporer un VD avec différents icônes pour signaler un problème éventuel. Je n'ai pas mis de autostart. Je conseil de lancer la scène manuellement quand toutes les variables sont correctes. Il faut modifier lma ligne 8 et mettre le nom des variables que vous voulez préserver. --[[ %% properties %% globals --]] local Gvar = {"GVTempMM","Rain","Rain_Month"}; local tempGvar = {}; local temp; -- On mémorise les variables globales -- On présuppose qu'elles ne sont pas perdues for i = 1,#Gvar do temp = fibaro:getGlobalValue(Gvar[i]); if temp == "NaN" then fibaro:debug("bad Gvar "..Gvar[i]); end tempGvar[i] = temp; end -- Boucle qui vérifie les variables -- Si NaN on reprend la valeur précédente do while true for i = 1,#Gvar do temp = fibaro:getGlobalValue(Gvar[i]); if temp == "NaN" then fibaro:setGlobal(Gvar[i], tempGvar[i]); else tempGvar[i] = temp; end fibaro:sleep(60*1000); end 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 12 novembre 2015 Signaler Partager Posté(e) le 12 novembre 2015 ça c'est cool. Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 12 novembre 2015 Signaler Partager Posté(e) le 12 novembre 2015 mais il ne faut pas oublier de la redémarrer après un restart de la box (si toutes les variables sont ok après le restart). Le seul qui ne devra jamais se poser la question est Lazer 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés