Aller au contenu

Intégration station Netatmo dans HC3


Sanderic

Messages recommandés

  • 3 mois après...

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 ...?

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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....

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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).

 

Lien vers le commentaire
Partager sur d’autres sites

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 !!

Lien vers le commentaire
Partager sur d’autres sites

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.

 

Lien vers le commentaire
Partager sur d’autres sites

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é par henri-allauch
Lien vers le commentaire
Partager sur d’autres sites

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 ...

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 :2:

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 :D

image.png.ead355e0904267486aa75ee08704f1f1.png

 

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

 

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.

 

 

  • Like 2
Lien vers le commentaire
Partager sur d’autres sites

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 ??

 

 

Lien vers le commentaire
Partager sur d’autres sites

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

  • Like 2
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...