Aller au contenu
jjacques68

HC2 - 4.510 - Stable - 02/08/2018

Recommended Posts

tu veux des firmware upgrade sans sureur ? => Lifedomus

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour a tous

 

Depuis cette mise a jour j'ai la RAM disponible qui monte progressivement jusqu'a 90% d'occupation, mon HC2 se bloque, plus rien ne répond (je ne peut plus y accéder et les actions Z-wave ne répondent plus)

Je suis le seul dans cette situation?

Je suis obligé de la rebooter pour qu'elle fonctionne

Petite précision, je n'ai pas de connexion a internet pour le moment (attente de connexion suite a un déménagement) cela pourrait venir de la?

Merci

 

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

J'avais aussi une génération du message d'erreur API: Not Found quand GEA se déclenchait en mode -1 (en l’occurrence changement d'état d'une variable globale). Je confirme que ça ne bloque pas GEA qui continue à fonctionner normalement. Mais c'était gênant car du coup le Watchdog GEA redémarrait GEA pour rien.

 

En recherchant la source, j'ai trouvé que ça vient de la fonction GEA.searchPlugins() et plus précisément de la ligne ci-dessous:

  GEA.searchPlugins = function()
    if (not GEA.auto) then
      -- la ligne ci-dessous génère error API: Not found si var globale non créée
      local vgplugins = fibaro:getGlobalValue(GEA.pluginsvariables)

En effet, cette ligne génère un message d'erreur quand la variable globale "GEA_Plugins" n'existe pas (si vous n'utilisez pas de plugins).

Solution: soit créer la variable globale, soit supprimer la fonction GEA.searchPlugins si vous ne l'utilisez pas.

Moi j'ai choisi de ne pas appeler cette fonction quand on est en mode déclenchement -1 (équivalent à GEA.auto = false), en changeant la ligne suivante dans GEA.init (à la fin du code):

    -- la ligne dessous provoque erreur API: Not found en déclenchement -1
    -- GEA.searchPlugins()
    -- corrigé en ajoutant condition if (GEA.auto) devant:
    if (GEA.auto) then GEA.searchPlugins() end

Une façon plus propre de régler le problème serait de trouver un moyen de vérifier l'existence d'une variable globale sans générer ce fichu message d'erreur ...

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, flacon030 a dit :

Je suis le seul dans cette situation?

c'est clair qu'avec ma chance légendaire, j'aurais été dans le même cas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon j'ai finalement mis à jour en 4.510 .... durée environ 20 minutes, rien à signaler, tout semble fonctionner :)


Comme tout le monde, j'ai des messages "API not found" dans GEA.

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi vais retenter, j'ai basculé ma box de secours en PROD désormais. L'original a bien un souci de mémoire interne, j'ai de nouveau eu le plantage que j'ai eu plusieurs fois, et en root c'est base SQL erreur E/S... Je pense que le SSD interne à un jeton, et c'est qu'une question de temps et je retombe sur le défaut et boom, planté. Si cela se trouve, c'est pour ça qu'elle ne voulait pas passer en 4.510. Vais la restaurer et garder l'autre en PROD, puis je tenterai.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Felig

Merci du gros boulot je ne trouvais pas d'où provenait pour certains et pas d'autres. Je n'en avais pas, j'ai bien une variable pour les plugins. A voir avec @Steven mais il me semble que le plus simple serait de créer la variable si elle n'existe pas Comme ceci

if (tools.isNil(fibaro:getGlobalValue(GEA.pluginsvariables))) then
            tools.info(string.format(GEA.trad.gea_global_create, GEA.pluginsvariables), "yellow")
            api.post("/globalVariables", {name=GEA.pluginsvariables, isEnum=0})
end

En le mettant dans GEA.init.

 

@Steven

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vais mettre à jour mon GEA de ce pas :)

 

image.png.e7f20a33845d5b57e5d50b67e762eb28.png

EDIT : ca ne fonctionne pas ton code @pepite

Modifié par Dragoniacs

Partager ce message


Lien à poster
Partager sur d’autres sites

heuuu je n'ai pas dit que j'avais testé, c'etait juste une suggestion ;-) suite au message de @Felig

 

Et l'erreur est sur le TRAD ;-) d'après ta copie d'écran non ?

 

enleve tools.info pour voir ?

Et j'aurais mis  ceci pour creer la variable automatiquement au demarrage de GEA selon le retour de @FeligSi c'est ok, il nous aura fait gagner beaucoup de temps. Ne pas oublier que cela n'est pas bloquant normalement.
 

if (tools.isNil(fibaro:getGlobalValue(GEA.pluginsvariables))) then api.post("/globalVariables", {name=GEA.pluginsvariables, isEnum=0}) end

dans GEA.init()

Avant

GEA.searchPlugins()

Partager ce message


Lien à poster
Partager sur d’autres sites

J'aime bien tester des trucs :D Je suis un vrai chat noir, je tombe toujours sur les bug (mes fournisseurs me détestent, car j'ai toujours le pot de tomber sur LA pièce non conforme :D)

 

A priori ça bug plus.... Reste à tester plusieurs cycles pour voir si j'ai encore des "API NOT FOUND"

Modifié par Dragoniacs
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Hehe c'est ca un chat noir ;-) Après sur ce coup là, on l'est tous avec GEA normalement lol

 

Tu l'as mise où alors la ligne ?

Parfait si ca fonctionne ;-) il n'y aura plus qu'à demander @Steven une petite MAJ ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, ça semble tourner....

J'ai mis la ligne comme tu l'as dis, au dessus de

GEA.searchPlugins()

 

Modifié par Dragoniacs

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 23 minutes, Dragoniacs a dit :

Bon, ça semble tourner...

Bonjour bonjour,

 

Ca tournait déjà avant :60: mais as-tu encore des Error API ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Je corrige ma réponse : ça tourne toujours aussi bien, et je n'ai plus de message "API not found"

;)

Partager ce message


Lien à poster
Partager sur d’autres sites

OK, merci. On attend un peu et tu nous tiens au jus.

Partager ce message


Lien à poster
Partager sur d’autres sites

Désolé, je réponds un peu tard, mais je confirme: ca règle le pb, et c'est plus propre que mon bricolage. On a quand même une erreur API not found la première fois que GEA est lancé et que la variable n'existe pas. Pour être parfait il faudrait un moyen de vérifier l'existence de la variable sans générer un message d'erreur, mais ça semble difficile sous cette version. Mais ensuite, bien sûr plus aucun message d'erreur.

 

PS: Un truc étrange c'est que depuis que j'ai chargé le fichier syntaxe.lua dans une nouvelle scène, GEA le reporte comme plugin, et du coup ma variable était déjà créée. Probablement parce que le fichier indique le code nécessaire pour identifier les plugins. J'ai du effacer la scène en question puis la variable globale pour tester.

 

Bref, ravi d'avoir pu aider.

 

Merci @pepite

Modifié par Felig

Partager ce message


Lien à poster
Partager sur d’autres sites

NB: Pour les puristes, il faut ajouter la ligne suivante dans GEA.Init :

      tools.info(string.format(GEA.trad.gea_minifier, tools.version), "yellow")    
      tools.info(string.format(GEA.trad.gea_check_every, GEA.checkEvery), "yellow")
      tools.info(string.format(GEA.trad.gea_global_create, GEA.globalvariables), "yellow")
      tools.info(string.format(GEA.trad.gea_global_create, GEA.historyvariable), "yellow")
      tools.info(string.format(GEA.trad.gea_global_create, GEA.pluginsvariables), "yellow") -- nouvelle ligne

Ça donne ça au démarrage:

[DEBUG] 21:11:48: --------------------------------------------------------------------------------
[DEBUG] 21:11:48: Démarrage automatique de GEA 6.07 (mode autostart)
[DEBUG] 21:11:48: --------------------------------------------------------------------------------
[DEBUG] 21:11:48: Utilisation de minifiertools v. 2.00
[DEBUG] 21:11:48: Vérification automatique toutes les 30 secondes
[DEBUG] 21:11:48: Création de la variable globale : GEA_Tasks
[DEBUG] 21:11:48: Création de la variable globale : GEA_History
[DEBUG] 21:11:48: Création de la variable globale : GEA_Plugins
[DEBUG] 21:11:48: --------------------------------------------------------------------------------
[DEBUG] 21:11:48: Recherche de plugins ... : Aucun plugin trouvé
[DEBUG] 21:11:48: Chargement du code utilisateur setEvents() ...
[DEBUG] 21:11:48: --------------------------------------------------------------------------------

J'avais prévenu: c'est vraiment pour les puristes :P

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

SUper tout ca ;-)

 

Bon ben top @Felig du beau boulot, j'avais la flemme de le faire lol

Partager ce message


Lien à poster
Partager sur d’autres sites

c'était correction était pour les API not found ?

car j'ai rajouté la ligne est j'ai toujours ces messages.

Partager ce message


Lien à poster
Partager sur d’autres sites

d'ailleurs j'ai aussi ca dans le watchdog de @Lazer

 

[DEBUG] 09:27:09: [1;31m2018-10-07 09:27:09.709246 [ error] API: Not found

 

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est bizarre, moi je n'ai pas ce bug dans le watchdog....

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est parce que tu n'as pas une vraie HC2.

Toute HC2 qui se respecte a des bugs.

:98:

  • Haha 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a sans doute plusieurs raisons possibles aux messages API not found, mais la seule que je connaisse pour l'instant est quand on essaie d'accéder une variable globale qui n'existe pas. Le problème c'est que c'est une technique utilisée dans de nombreux scripts pour justement vérifier l'existence d'une variable globale: on essaie de lire sa valeur et si le résultat est "nil" on en déduit qu'elle n'existe pas. Depuis la 4.51, non seulement le résultat est "nil" mais en plus on un message d'erreur API not found (qui est juste pour information, ça ne bloque pas les scripts). Si on essaie d'accéder directement au json, c'est pareil on a aussi le message d'erreur.

 

@Sakkhho Attention quand le Watchdog trouve une erreur dans un script, il t'indique le message d'erreur d'origine. Le API not found vient peut-être du script qui est surveillé par le Watchdog (même si ça n'a pas l'air d'être le cas ici, si j'en crois la ligne que tu as recopiée). Si ça vient bien du Watchdog, le programme utilise une variable globale pour les SMS j'ai l'impression, il faut peut-être vérifier ce point.

 

Pour revenir à GEA et à tous les autres scripts qui testent l'existence d'une variable globale, il faudra sans doute changer la technique de test, avec une fonction de ce style, qui elle ne génère pas de message d'erreur:

  GEA.isGlobal = function(vg)  -- vérifie si la variable globale vg existe
    response = api.get("/globalVariables/")
    for _,v in pairs(response) do if v.name == vg then return true end end 
  end  

J'ai un peu bidouillé mon GEA pour l'intégrer, mais les modifs indiquées par @pepite ci-dessus suffisent, en attendant que @Steven corrige tout ça proprement.

Modifié par Felig

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

je ne sais pas si le pb vient de cette version ou si c'est antérieur mais je n'ai plus aucun historique de température (sensor globalement) dans le panneau event... (pas plus que dans la base d'ailleurs...) :(

Normal ou pas ? 

Thx

Partager ce message


Lien à poster
Partager sur d’autres sites

×