kioneoranga Posté(e) le 26 mars 2017 Signaler Posté(e) le 26 mars 2017 Merci pepite pour ta réponse J'ai relu hier l'ensemble des pages du forum et tendais seul la modification du code. Merci encore pour ton aide et conseil et bonne soirée et bonne fin de week-end.
jmg38 Posté(e) le 13 avril 2017 Signaler Posté(e) le 13 avril 2017 Bonjour, Inconditionnel de watchdog, celui ci m'a fait une blague ce matin en me redemandant de relancer GEA car "Durée des traitements non trouvés". GEA semble pourtant continuer à tourner... je réenregistre GEA sans avoir rien toucher d'autre et watchdog se calme... Une idée du problème rencontré? Merci et cdt
kioneoranga Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 Le 26/03/2017 à 20:35, pepite a dit : Bonsoir @kioneoranga Regarde ce post 1- tu rajoutes la fonction dans le code. 2 tu cherches Load VD-Scene 3- tu mets ce que titof a appelé titof bug 4.10 jusqu'a end titof. Si tu as besoin, je peux te partager toute ma scène Watchdog Pepite Bon le patch mis en place ne fonctionne pas chez moi Je ne comprends pas Voici le script de mon Watchdog! Si tu as quelques minutes et une idée qui peut faire fonctionner la fonction de relance des scenes quand watchdog la détecte planté! Un grand merci par avance WatchDog-v1.1.lua
kioneoranga Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 Re, Pensez vous possible lorsqu'une scene plante, qu'il soit possible de lancer une seconde instance de la scene via API? en // je laisse l'instance planté et automatiquement et elle killée par Fibaro plus tard. Pendant ce temps l'instance qui fonctionne assure le bon fonctionnement utilisateur. En tout cas j'envisage tout car une fois encore ce matin l'instance GEA qui ouvre mes volets à planter et j'ai failli faire la grasse mat :-)
pepite Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 Salut, Bizarre, le contournement de Titof fonctionne chez moi. Tu as 2instances GEA, tu as bien 2 variables differentes ? As tu essayé de n'en avoir qu'une ? On etait passé a 2 pour supprimer les latences d'une des versions du firmware, mais maintenant c'est OK Tu as quel firmware ? 4.10 ? Tu,peux avoir plusieurs instances de lancer oui, c'est comme cela que ca fonctionne maintenant pas sur que ce contournement avec GEA soit le bon. Imaginons 2 scenes GEA en meme temps, tu vas avoir les actions en double..ca sent le plantage non? J'ai jamais testé.
Lazer Posté(e) le 26 avril 2017 Auteur Signaler Posté(e) le 26 avril 2017 le problème n'est pas d'avoir plusieurs instances, mais de pouvoir relancer l'instance au AUTOSTART. Et celle-ci est unique. Les autres instances, lancées manuellement, sur trigger, sceneactivation, etc, c'est autre chose. En tout cas ça me rassure, je ne suis pas le seul pour qui le contournement évoqué ne fonctionne pas. Je crois que ça va finir en contournement radical => reboot de la box en cas de scène GEA plantée. Après tout c'est bien ce que je fais manuellement à chaque fois.
pepite Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 Oui c est vrai que depuis ton watchdog juste pr l id de gea un petit reboot :-)Envoyé de mon Nexus 5X en utilisant Tapatalk
kioneoranga Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 Le 15/03/2017 à 00:17, drboss a dit : Chez moi, après l'utilisation de le patch @Titof_44 et l'exécution de la commande httpClient:request("http://127.0.0.1:11111/api/sceneControl?id="..id.."&action=start") la commande fibaro:debug(fibaro:countScenes(id)) retourne 0, mais la scène fonctionne correctement. Bien sûr, Watchdog avec "0" redémarre la scène tout le temps Si la scène arrêté et redemarre par slide bouton fibaro:countScenes(id) returne bien 1 Pourquoi??? Bonjour Je viens de me pencher sur le fonctionnement et j'ai le meme comportement Donc Watchdog relance continuellement la scene, je spam moi meme ma messagerie :-) Pas cool
kioneoranga Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 @Pepite, Oui j'ai deux instances de GEA avec deux variables distinctes, pas d'erreur de ce coté là. C'est un choix voulu En fait cela me permets de séparer les activités et non plus de faire la distinction comme dans le passé avec les actions immédiates Donc dans mon cas si une instance plante cela ne plante pas tout l'automatisme de la maison. J'en ai une pour les fonctions générales, mise à jour de certains VD, check des noeuds mort et comme la gestion de l'ensemble des volets de la maison Ensuite la seconde pour des fonctions plus particulières propre à chaque pieces de la maison. C'est sur cela complexifie la maintenance et le suivit mais voila cela permet de préserver des fonctions car il est rare que mes deux instances GEA plante en même temps Concernant le firmware, je suis en 4.120, derrière en date qui pour info n'a pas solutionné mon pb de performance du moteur web qui affiche l'interface. Une fois sur 3 je dois faire des refreshs de l'interface pour quelle s'affiche correctement! J'avais ouvert un incident à Fiabro qui m'avait tout simplement dit que j'avais trop de module, pour une machine de guerre cette HC2 était vite dépassée d'un point de vue moteur Web Enfin c'est un autre sujet... @Lazer, Je confirme, le contournement de Titof ne fonctionne pas pour moi J'ai fait des tests en lançant le workarround de titof et j'ai bien constaté le stop et le start de l'instance, mais la valeur count reste à zéro et donc Watchdog relance continuellement considérant l'instance comme plantée !! Pas cool Concernant le reboot, je me suis dit la même chose, si GEA plante alors reboot HC2! mais franchement c'est radicale Concernant "AUTOSTART" faut il retirer cette fonction de l’entête de mes instances GEA? Enfin tout ceci ne me fera pas abandonné ma HC2, et puis j'aime trop ce forum :-) 1
pepite Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 ah oui ok, pourquoi pas, c'est une bonne gestion aussi, il n'y a pas de vérité ;-) En fait je te posais la question du firmware en regardant ton profil, t'es en 4.110 ;-) Quelque soit ton navigateur ça rame ? C'est radical, mais ça va fonctionner et le reboot ne prend pas autant de temps que cela ;-) Oh que non, à mon avis, il ne faut pas enlever l'autostart pour GEA, si tu oublies en cas de reboot d'aller cliquer pour lancer la scène tu n'aura plus rien ;-)
Lazer Posté(e) le 26 avril 2017 Auteur Signaler Posté(e) le 26 avril 2017 Si une scène en AUTOSTART qui réalise une seule action : un fibaro:startscene de GEA ! Ou comment faire compliqué quand on peut faire simple
pepite Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 oui c'est sur, mais là..ca simplifie pas le fonctionnement ;-)
Lazer Posté(e) le 26 avril 2017 Auteur Signaler Posté(e) le 26 avril 2017 non, mais cela permet de démarrer GEA sur un StartScene et d'appliquer le patch.... enfin si j'ai bien suivi. Je vais essayer d'implémenter le reboot dans les paramètres, pour une nouvelle version du Watchdog mais je suis toujours en déplacement là, et attendre 2 minutes à chaque chargement de page de la HC2, je suis pas motivé. Bien sûr, bientôt j'aurais la Fibre, alors je n'aurais plus ce problème, le VPN va mouliner
kioneoranga Posté(e) le 26 avril 2017 Signaler Posté(e) le 26 avril 2017 ah oui ok, pourquoi pas, c'est une bonne gestion aussi, il n'y a pas de vérité ;-) En fait je te posais la question du firmware en regardant ton profil, t'es en 4.110 ;-) Quelque soit ton navigateur ça rame ? C'est radical, mais ça va fonctionner et le reboot ne prend pas autant de temps que cela ;-) Oh que non, à mon avis, il ne faut pas enlever l'autostart pour GEA, si tu oublies en cas de reboot d'aller cliquer pour lancer la scène tu n'aura plus rien ;-) Je vais mettre à jour mon profil, Concernant le navigateur, je suis maintenant avec Chrome sous tes conseilsAyant essayé ie et FirefoxEnvoyé de mon ONE A2003 en utilisant Tapatalk
pepite Posté(e) le 27 avril 2017 Signaler Posté(e) le 27 avril 2017 Je n'ai pas testé, mais je crois que Chrome, Safari et Edge, c'est ok. Le moteur de Firefox rame un peu ;-)
Sakkhho Posté(e) le 27 avril 2017 Signaler Posté(e) le 27 avril 2017 (modifié) Le 13/04/2017 à 08:17, jmg38 a dit : Bonjour, Inconditionnel de watchdog, celui ci m'a fait une blague ce matin en me redemandant de relancer GEA car "Durée des traitements non trouvés". GEA semble pourtant continuer à tourner... je réenregistre GEA sans avoir rien toucher d'autre et watchdog se calme... Une idée du problème rencontré? Merci et cdt Je suis dans le même cas. Bizarre. Alors que GEA fonctionne très bien. J'ai désactivé le watchdog pour le moment. Modifié le 29 avril 2017 par Sakkhho
Lazer Posté(e) le 27 avril 2017 Auteur Signaler Posté(e) le 27 avril 2017 Je viens aussi d'être touché par le même problème. Alerté par vos 2 messages, je me suis dit il faut que j'aille vois... ce qui m'a pris 15 Minutes pour ouvrir 3 malheureuses pages Web, mon upload sature totalement Dans le log de GEA, c'est ceci à la fin : [DEBUG] 22:53:01: Durée des traitements : 2s nouveau délai : 28s / tourne depuis 115h 50m 7s [DEBUG] 23:03:00: Durée des traitements : 1s nouveau délai : 29s / tourne depuis 116h 6s [DEBUG] 23:13:00: Durée des traitements : 1s nouveau délai : 29s / tourne depuis 116h 10m 6s [DEBUG] 23:18:18: [ Vacances=0 ] !!! ERREUR !!! : vérification (ID: 126) [VirtualDevice,482,19] [If..] Sur la page Web, je vois pourtant "1 running instance" Le Watchdog a commencé à me spammer à 23:24, donc 10 minutes après le dernier message "Durée des traitements". Dans le log de Watchdog, j'ai ces 4 messages en boucle : Scene(22) String "Durée des traitements" not found Restart Scene(22) Scene(22) successfully restarted Notification : Watchdog : Scene "GEA" (22) a été redémarré Dans l'interface Web, j'ai fait un Save de GEA, sans succès (normal, c'est ce que fait le watchdog en vain). Conclusion provisoire : - Le bug de l'API lors de la sauvegarde d'une scène est toujours présent - GEA s'est planté tout seul, ce n'est pas un plantage de la scène au sens habituel des plantages.... donc GEA n'affiche plus rien dans le log, mais pourtant il tourne toujours - le watchdog fait son job, puisqu'il ne trouve pas la chaine "Durée des traitements", il pense que GEA est planté Reste à comprendre pourquoi GEA a ce comportement anormal..... et là ça me dépasse, faudrait faire intervenir maitre @Steven ou son nouveau disciple @pepite
Lazer Posté(e) le 27 avril 2017 Auteur Signaler Posté(e) le 27 avril 2017 Ma ligne sur laquelle GEA a planté, je ne comprends pas pourquoi alors qu'elle fonctionne en temps normal : GEA.add({{"Global", "Vacances", "0"}, {"Global", "Absence", "1"}, {"Global", "VD_Roomba_State", "st_base_trickle"}}, 5*60, "", {{"VirtualDevice", id["VD_ROOMBA"], 19}}) -- Clean Les variables globales utilisées : { name: "Absence", value: "0", readOnly: false, isEnum: true, enumValues: [ "0", "1" ] }, { name: "Vacances", value: "0", readOnly: false, isEnum: true, enumValues: [ "0", "1" ] }, { name: "VD_Roomba_State", value: "st_base_trickle", readOnly: false, isEnum: false }, Ce scenario GEA n'était pas censé se déclencher, le contenu des variables globales en question n'ont pas changé durant les 5 minutes précédentes.
Lazer Posté(e) le 27 avril 2017 Auteur Signaler Posté(e) le 27 avril 2017 D'après le log, GEA s'est planté en plein milieu de cette fonction : -- --------------------------------------------------------------------------- -- Check les tâches à effectuer sinon, log si une erreur survient -- --------------------------------------------------------------------------- GEA.checkAllToDo = function(nbElement) if (not GEA.pause()) then for i = 1, nbElement do GEA.log(GEA.translate[GEA.language]["RUN"], GEA.todo[i], GEA.translate[GEA.language]["CHECKING"], false) if (GEA.catchError) then if (not pcall(function() GEA.check(GEA.todo[i], i) end)) then GEA.log(GEA.translate[GEA.language]["ERROR"], GEA.todo[i], GEA.translate[GEA.language]["CHECKING"], true, red) -- <== Ici là, dernier endroit où il affiche le message erreur dans la zone de debug de GEA avant plantage end else GEA.check(GEA.todo[i], i) end end end return os.time() end Je ne suis pas capable d'interpréter tout le code sans rentrer en profondeur dans GEA, mais ce que je vois, c'est qu'il fait un pcall pour se protéger d'un éventuel plantage lors de l'appel de la fonction GEA.check). Si cela échoue, alors il affiche le message d'erreur, mais j'ai comme l'impression qu'il manque une gestion de l'erreur. Si il ne fait qu'afficher le message sans traiter l'erreur, en toute logique c'est pas trop étonnant que ça ne se passe pas bien par la suite. @Steven qu'en penses-tu, c'est un bug dans GEA ?
pepite Posté(e) le 28 avril 2017 Signaler Posté(e) le 28 avril 2017 (modifié) Il y a 10 heures, Lazer a dit : son nouveau disciple @pepite Olala ca se moque auj ;-) Bon, je veux bien regarder, mais je ne suis pas sur de traiter correctement les erreurs. A voir ce qu'en pense master@Steven Je veux bien qu'il me pilote, je vais voir avec lui. Sinon de mon côté l'affichage de "durée de traitements" est toutes les 5 minutes et non 10. C'est une des différences entre la version de @tibahut et celle de @Steven. On peut peut-être regarder de ce cote la d'abord. Vous pouvez regarder dans le code : if (first >= 10) then Vous devez avoir 20 non ? Je ne vois pas pourquoi ta ligne est en erreur ;-( Modifié le 28 avril 2017 par pepite
Lazer Posté(e) le 28 avril 2017 Auteur Signaler Posté(e) le 28 avril 2017 Euh, je n'ai aucune variable "first" dans mon GEA, en version 5.40 Mais je pense que chercher du coté du message "durée des traitements" est une fausse piste. Le bug que je soulève plus haut, c'est que GEA semble mal traiter un cas particulier, ce qui abouti à une situation où la scène GEA tourne toujours (1 instance), mais dans laquelle GEA ne fait plus rien (pas de gestion des scénarios ni d'affichage du fameux message "durée des traitements" ni d'aucun autre message). Et afin que ça soit bien clair pour tous, on parle là uniquement de l'instance unique en Autostart, celle qui tourne en permanence dès le boot de la box, sous forme de boucle infinie. Les autres instances déclenchées sur Triggers ne sont évidemment pas impactées car elles exécutent leur tâche puis s'arrêtent immédiatement.
pepite Posté(e) le 28 avril 2017 Signaler Posté(e) le 28 avril 2017 Oui normal, en fait la variable est "count" dans la versio de @tibahut. Ok, j'avais bien compris, on parle bien de la même chose pour "l'Autostart".
Steven Posté(e) le 28 avril 2017 Signaler Posté(e) le 28 avril 2017 ATTENTION : GEA maîtrise les erreurs uniquement si GEA.catchError est à true (par défaut dans ma version) sinon, il arrête de tourner en cas d'erreur. GEA se protège lui même au cas ou une ligne GEA.add contiendrait des erreurs. Au lieu de crasher, GEA continu sont traitement comme si rien ne s'était produit. Il n'est pas vraiment possible de traiter ces erreurs car c'est du code "utilisateur" qui est exécuter et seul l'utilisateur sait ce qu'il faut en faire. L'erreur en tant que telle ne devrait pas planté GEA puisque justement elle est maîtrisée (pas corrigé ni traitée mais maîtrisée). pcall = "protected call". Hormis cela, il m'est arrivé d'avoir un GEA planté alors qu'il n'y avais aucune erreur dans mon code. Et l'inverse c'est déjà aussi produit sans rien planté le jour ou j'ai supprimé un module sans pour autant modifié GEA. Perso, GEA n'a planté que 2x pour moi et sur des version non stable du firmware mais je dis bien "perso" et je veux bien croire que cela arrive sur des versions stable. 1
kioneoranga Posté(e) le 28 avril 2017 Signaler Posté(e) le 28 avril 2017 il y a une heure, pepite a dit : if (first >= 10) then Bonjour Moi j'ai (first >= 10) comme toi.
Lazer Posté(e) le 28 avril 2017 Auteur Signaler Posté(e) le 28 avril 2017 @Steven OK merci, mais le souci c'est que ma ligne qui a généré le dernier message ne contient à priori pas d'erreur due à l'utilisateur (moi), puisqu'elle fonctionne très bien le reste du temps. Je suis bien d'accord quand il y a des erreurs dans le GEA.add, on le remarque immédiatement lors de la sauvegarde de la scène. Pourquoi alors, cette ligne (mais ça pourrait être une autre) a généré cette erreur, et ce plantage de GEA ? C'est ce que je ne comprends pas. Et c'est différent du bug que l'on avait avant, dans les firmwares de l'année dernière, où les scènes (et VD) s'arrêtaient de fonctionner dans prévenir, suite à un core dump au niveau de l'OS Linux.
Messages recommandés