Aller au contenu

Messages recommandés

Posté(e) (modifié)

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
Posté(e)

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

 

 

Posté(e)
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.

Posté(e)

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.

Posté(e)

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.

Posté(e)

@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

 

Posté(e)

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()
Posté(e) (modifié)

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
Posté(e)

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

Posté(e) (modifié)

Bon, ça semble tourner....

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

GEA.searchPlugins()

 

Modifié par Dragoniacs
Posté(e)
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 ?

  • 2 semaines après...
Posté(e) (modifié)

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
Posté(e)

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
Posté(e) (modifié)

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
Posté(e)

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

×
×
  • Créer...