henri-allauch Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 Après quelques jour de fonctionnement parfait, je constate une dégradation dans le délai de lecture des sondes Cela à suivi ( peut être sans rapport ) la désactivation du QA par mes soins pendant une nuit Depuis et malgré quelques sauvegardes et un reboot J'ai des arrets de 10 minutes. j'ai lu dans les mises à jour - Optimized 10 minutes query interval 10s after Netatmo cloud update j'ai souvent des : Next loop in 573 seconds at 15:22:41 ... Les optimisations se font par rapport à des dates de( status, mise à jour, message ) issu de l'interrogation au cloud Netatmo actuellement un loop a 30 un loop a 570 (ca fait de bon escaliers) Cela veut dire que ma station a un PB ou ...?
Lazer Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 C'est moi qui avait introduit ce changement, pour optimiser les requêtes. On regarde l'heure de dernière remonté des infos de la station vers le Cloud Netatmo, et ensuite on programme (setTimeout) les suivants 10 secondes après. Cela permet de minimiser le retard de remonté des infos dans la HC3, donc d'avoir des mesures les plus récentes possible. Je n'ai jamais constaté de bug sur mon installation (pas d'escalier, les courbes sont bien linéaires) Sauf... depuis hier ! Je constate un plantage... le QA a l'air de tourner, mais les valeurs ne se mettent plus à jour. Je vais investiguer...
Lazer Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 Il semble que ça soit lié au niveau firmware 5.063.30 - BETA sorti hier Pour commencer je te propose d'ajouter un math.floor() au setTimeout() de la ligne 221 comme suit : fibaro.setTimeout(math.floor(waitDelay*1000), function() self:loop() end) J'ai fait la modif de mon coté, je laisse tourner quelques temps, on verra si le problème se reproduit. Je me dit qu'il va falloir que je fasse un Watchdog pour les QuickApps comme on avait sur HC2....
jjacques68 Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 il y a 12 minutes, Lazer a dit : Je me dit qu'il va falloir que je fasse un Watchdog Moi j'ai utilisé le resfreshState pour intercepter les log... Quand y en a un de type "error", je m'envoie un mail avec les détails... Mais pas de notion de restart de QA...
Lazer Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 Oui mais là le QA n'a pas planté, il s'est arrêté de fonctionner. Ce n'est pas pareil. Mon Watchdog ne fait pas que chercher les erreurs, il recherche également la présence régulière d'une chaine de caractère... ça fait toute la différence, car on peut détecter quand un QA s'est arrêté de fonctionner. D'ailleurs la HC3 fait la moitié du boulot, car quand un QA plante sur erreur, elle le redémarre automatiquement la minute suivante (donc ta boucle de refreshState ne fait pas mieux).
jjacques68 Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 il y a 1 minute, Lazer a dit : Mon Watchdog ne fait pas que chercher les erreurs, il recherche également la présence régulière d'une chaine de caractère ah oui c'est vrai il y a 1 minute, Lazer a dit : elle le redémarre automatiquement la minute suivante exact aussi oui donc c'est plûtot l'arrêt que tu cherches !!
Lazer Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 Voilà Aller, je vais m'y mettre... vu que j'ai fini les QA en cours, c'est l'occasion où jamais
jjacques68 Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 curieux de voir comment tu vas faire... je sèche... à froid, je penserais ajouter un une fonction dans chaque QA pour ajouter un "log", et tester la présence de ce log... pffff super lourd...
Lazer Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 Justement, c'est le cas dans tous mes QA, exactement comme pour les VD (et scènes) "Total memory in use by LUA ..." => cette ligne a un double avantage : en plus d'apparaitre toutes les 5 minutes, elle permet également de surveiller la consommation mémoire Franchement y'a rien d'extraordinaire, toute la logique du Watchdog a été développée à l'époque de la HC2, et c'est ultra robuste, je n'ai jamais eu à revenir dessus. Je pensais juste pouvoir l'éviter sur HC3, mais en fait non, il vaut mieux le porter, je m'en rend compte à la lumière du problème survenu avec ce QA Netatmo.
jjacques68 Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 ah oui d'accord, oui donc tu as déjà fait les 3/4 du boulo
henri-allauch Posté(e) le 13 mars 2021 Signaler Posté(e) le 13 mars 2021 (modifié) J'ai mis en place la modif Je suis effectivement passé en 5.063.30 le 11/03/2021 vers 19h00 Cette nuit il y a eut un arrêt sans message et j'ai relancé le QA ce matin Ce matin aussi je surveille aussi mais comme tu vois il y a toujours des attentes de 10 minutes mais bon c'est pas mal pour la prise des mesures [13.03.2021] [18:41:49] [TRACE] [QA_NETATMO_34]: [13.03.2021] [18:41:49] [TRACE] [QA_NETATMO_34]: QuickApp Netatmo - Initialization [13.03.2021] [18:41:49] [TRACE] [QA_NETATMO_34]: [13.03.2021] [18:41:50] [DEBUG] [QA_NETATMO_34]: Current time : 18:41:50 - Last updated values : 01:00:00 - Next loop in 30 seconds at 18:42:20 ... [13.03.2021] [18:42:20] [DEBUG] [QA_NETATMO_34]: Current time : 18:42:20 - Last updated values : 18:33:37 - Next loop in 87 seconds at 18:43:47 ... [13.03.2021] [18:44:17] [DEBUG] [QA_NETATMO_34]: Current time : 18:44:17 - Last updated values : 18:43:40 - Next loop in 573 seconds at 18:53:50 ... [13.03.2021] [18:53:50] [DEBUG] [QA_NETATMO_34]: Current time : 18:53:50 - Last updated values : 18:43:40 - Next loop in 30 seconds at 18:54:20 ... [13.03.2021] [18:54:20] [DEBUG] [QA_NETATMO_34]: Current time : 18:54:20 - Last updated values : 18:53:42 - Next loop in 572 seconds at 19:03:52 ... [13.03.2021] [19:03:52] [DEBUG] [QA_NETATMO_34]: Current time : 19:03:52 - Last updated values : 18:53:42 - Next loop in 30 seconds at 19:04:22 ... [13.03.2021] [19:04:22] [DEBUG] [QA_NETATMO_34]: Current time : 19:04:22 - Last updated values : 19:03:46 - Next loop in 574 seconds at 19:13:56 ... [13.03.2021] [19:13:56] [DEBUG] [QA_NETATMO_34]: Current time : 19:13:56 - Last updated values : 19:03:46 - Next loop in 30 seconds at 19:14:26 ... [13.03.2021] [19:14:26] [DEBUG] [QA_NETATMO_34]: Current time : 19:14:26 - Last updated values : 19:13:49 - Next loop in 573 seconds at 19:23:59 ... Modifié le 13 mars 2021 par henri-allauch
henri-allauch Posté(e) le 14 mars 2021 Signaler Posté(e) le 14 mars 2021 Il s'est arrêté à 23h15 [13.03.2021] [23:05:48] [DEBUG] [QA_NETATMO_34]: Current time : 23:05:48 - Last updated values : 23:05:08 - Next loop in 570 seconds at 23:15:18 ... [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: Found device: '70:ee:50:20:c8:dc'; station_name: 'Mourguette (Salon Rdc)'; module_name: 'Salon Rdc'; type: 'NAMain'; device.last_status_store: '13.03.2021 23:05:08' [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: SetValue 'Noise' from module 'Mourguette (Salon Rdc)'/'Salon Rdc' on hcID: 37; value: 58 [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: SetValue 'Pressure' from module 'Mourguette (Salon Rdc)'/'Salon Rdc' on hcID: 38; value: 1001.9 [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: SetValue 'Humidity' from module 'Mourguette (Salon Rdc)'/'Salon Rdc' on hcID: 36; value: 53 [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: SetValue 'Temperature' from module 'Mourguette (Salon Rdc)'/'Salon Rdc' on hcID: 35; value: 21.9 [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: SetValue 'CO2' from module 'Mourguette (Salon Rdc)'/'Salon Rdc' on hcID: 39; value: 1651 [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: Found module: '02:00:00:20:d6:6a'; station_name: 'Mourguette (Salon Rdc)'; module_name: 'Extérieur Nord'; type: 'NAModule1'; device.last_status_store: '13.03.2021 23:05:08' [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: SetValue 'Humidity' from module 'Mourguette (Salon Rdc)'/'Extérieur Nord' on hcID: 41; value: 74 [13.03.2021] [23:05:49] [DEBUG] [QA_NETATMO_34]: SetValue 'Temperature' from module 'Mourguette (Salon Rdc)'/'Extérieur Nord' on hcID: 40; value: 10.1 [13.03.2021] [23:15:18] [DEBUG] [QA_NETATMO_34]: Current time : 23:15:18 - Last updated values : 23:05:08 - Next loop in 30 seconds at 23:15:48 ...
Lazer Posté(e) le 14 mars 2021 Signaler Posté(e) le 14 mars 2021 Le miens n'a pas craché, il a tourné toute la nuit jusqu'à maintenant sans problème. Mais sur le forum officiel, ils ont testé avec le math.floor, et aussi de remettre un intervalle fixe de 5 minutes (au lieu de mon intervalle qui s'ajuste aux 10 minutes de l'API remontée par Netatmo), et ça ne change rien, plantage quand même : https://forum.fibaro.com/topic/53868-the-“netatmo-weather-station-qa-for-hc3”-has-stoped-working-since-5063-installed/ C'est mystérieux. J'ai vérifié tous mes propres QA, y compris le gros GEA, et aucun n'a de problème, il n'y a que le Netatmo qui pose souci... et comme je ne suis pas l'auteur original, je ne maitrise pas vraiment le code, donc difficile de rentrer dedans.
fredokl Posté(e) le 14 mars 2021 Signaler Posté(e) le 14 mars 2021 (modifié) Comme @Lazer, le QA n'a pas planté. Il fonctionne normalement pour moi. Modifié le 14 mars 2021 par fredokl
Lazer Posté(e) le 14 mars 2021 Signaler Posté(e) le 14 mars 2021 Bon j'avance, j'ai découvert que le QA plante lors de l'appel http:request() Donc je l'ai modifié pour faire comme dans tous mes QA : pcall() pour protéger l'exécution, et déclaration de la variable http en self.http comme conseillé par Fibaro, et confirmé par nos récents tests avec @henri-allauch On verra comment ça se passe dans les heures qui viennent. L'avantage des firmwares Betas, c'est que ça nous force à écrire notre code LUA plus proprement... ça me rappelle vaguement les heures sombres de la v4 betastable Et dire que j'ai installé cette beta juste pour le correctif de la météo YR Weather, en conséquence ça fait planter la météo Netatmo, c'est comique. PS : j'aime beaucoup mon statut de Newbie 1 étoile sur le forum officiel
henri-allauch Posté(e) le 14 mars 2021 Signaler Posté(e) le 14 mars 2021 Pas de blocage depuis ce matin on verra cette nuit Si tu as besoin que je test ton nouveau lua n'hésites pas
Lazer Posté(e) le 14 mars 2021 Signaler Posté(e) le 14 mars 2021 Tiens voici Attention c'est une BETA, avec beaucoup de traces de logs codées en dur, à installer uniquement pour test Netatmo_2.6_BETA.lua
razowski Posté(e) le 14 mars 2021 Signaler Posté(e) le 14 mars 2021 Hello, Est-ce qu’il y a des informations disponibles sur cette notion de pcall?J’ai un QA (self.http) qui crash après un certain temps, sans raison apparente je dirais. Je n’avais pas le souci sur la bêta précédente. Merci -> trouvé sur le forum, navré pour le bruit sur le topic...
Lazer Posté(e) le 14 mars 2021 Signaler Posté(e) le 14 mars 2021 On peut s'en servir pour protéger différentes parties du code, mais j'ai envie de dire que c'est obligatoire pour 2 fonctions natives : http:request(), et json.decode() tant ces 2 fonctions ont la fâcheuse habitude de crasher. Et c'est visiblement amplifié avec la dernière Beta. 2
Lazer Posté(e) le 15 mars 2021 Signaler Posté(e) le 15 mars 2021 @henri-allauch ça donne quoi chez toi ? De mon coté ça tient depuis hier sans plantage. En parallèle, mon watchdog est déjà fonctionnel, il faut maintenant que je fasse de la cosmétique pour le rendre partageable. 1
henri-allauch Posté(e) le 16 mars 2021 Signaler Posté(e) le 16 mars 2021 A priori ils on sorti un QA "Netatmo 2.5.1" Mais d'une manière générale comment installe t'on une nouvelle version a partir d'un fqa OK je récupère le lua pour modifier l'existant Mais s'il y avait des nouveaux boutons ou autre on est obligé de l'installer complet et on créé donc des nouveaux devices vu que les anciens sont inscrits dans les variables de l'ancien QA ??
Lazer Posté(e) le 16 mars 2021 Signaler Posté(e) le 16 mars 2021 Ce n'est pas possible (à l'heure actuelle ? Fibaro est censé travailler sur une refonte du market, qui est inexploitable en l'état) Seule solution, c'est ce que je fais sur le forum, c'est de partager puis copier/coller le contenu du fichier LUA. Sinon, tu importes le nouveau QA, récupère le code LUA dedans, puis le supprime. Reste la problématique des nouveaux boutons/labels sur l'interface.... Je vais nettoyer mon code, si tu veux je te le passerai, c'est censé être la même chose, de toute façon c'est moi qui ait donné à gsmart la bonne syntaxe avec pcall 2
Messages recommandés