Aller au contenu

OJC

Membres confirmés
  • Compteur de contenus

    390
  • Inscription

  • Dernière visite

  • Jours gagnés

    8

Tout ce qui a été posté par OJC

  1. OJC

    Causes possibles d'une saturation mémoire ?

    J'ai vu qu'il y a une commande pour force le garbage collector à effectuer son cycle. Mais bon, j'ai juste ajouter une ligne en affectant nil à ma variable, et ça roule
  2. Cool En fait, c'est bien ce que je pensais. Dans ce token : Ezm\/TjhEQwAWeEhrpWu\/YA== le caractère d'échappement est bien un caractère d'échappement, qui est là pour échapper le slash. Vu que le moteur Lua n'a pour sa part pas besoin qu'on échappe les slash, il suffisait de virer le caractère d'échappement...
  3. OJC

    Causes possibles d'une saturation mémoire ?

    Oui, ça ce sont les chiffres après modifs. Je me suis rendu compte que je faisais toute les quelques secondes une série de table.insert dans le cadre d'un appel de fonction sur setTimeout, sans réinitialiser la variable avant... Du coup, je pense que ça a dû jouer, même si je vois mal comment ça peut saturer la mémoire vu la quantité de données réduites en jeu En tout cas, là je reste stable entre 400 et 700 Ko.
  4. OJC

    Causes possibles d'une saturation mémoire ?

    C'est ce que j'ai vu, merci pour la confirmation et désolé pour le Lua du samedi En même temps, si tu traînes par ici...
  5. OJC

    Causes possibles d'une saturation mémoire ?

    Oui, je trouve aussi... J'ai dû me planter sur l'unité de mesure... ça sort en bytes, c'est bien ça ? EDIT = Bon, j'ai fait le boulet, ça sort en Kb...
  6. OJC

    Causes possibles d'une saturation mémoire ?

    [DEBUG] 16:06:10: Heating Manager v. 2.1 (2017) by OJC [DEBUG] 16:06:11: [MEMORY USAGE] Current function StartHeatingManager : 539.67 Mb [DEBUG] 16:06:11: [MEMORY USAGE] Current function StartOverrideManager : 283.35 Mb [DEBUG] 16:06:16: [MEMORY USAGE] Current function StartOverrideManager : 462.44 Mb [DEBUG] 16:06:22: [MEMORY USAGE] Current function StartOverrideManager : 638.04 Mb [DEBUG] 16:06:27: [MEMORY USAGE] Current function StartOverrideManager : 399.07 Mb [DEBUG] 16:06:32: [MEMORY USAGE] Current function StartOverrideManager : 574.97 Mb [DEBUG] 16:06:37: [MEMORY USAGE] Current function StartOverrideManager : 335.79 Mb [DEBUG] 16:06:43: [MEMORY USAGE] Current function StartOverrideManager : 513.02 Mb [DEBUG] 16:06:48: [MEMORY USAGE] Current function StartOverrideManager : 271.22 Mb [DEBUG] 16:06:53: [MEMORY USAGE] Current function StartOverrideManager : 451.8 Mb [DEBUG] 16:06:58: [MEMORY USAGE] Current function StartOverrideManager : 627.6 Mb [DEBUG] 16:07:03: [MEMORY USAGE] Current function StartOverrideManager : 398.18 Mb [DEBUG] 16:07:09: [MEMORY USAGE] Current function StartOverrideManager : 573.99 Mb Parce que c'est quand même bizarre ce que ça me sort
  7. OJC

    Causes possibles d'une saturation mémoire ?

    Bon, apparemment c'est collectgarbage("count"), mais j'arrive pas à voir si ça concerne uniquement le script en cours d'exécution ou si ça concerne tout ce que le moteur Lua est en train de faire tourner @Krikroff ?
  8. OJC

    Causes possibles d'une saturation mémoire ?

    On peut le faire dans une scène, aussi ?
  9. Teste avec ça : -- Authentification local ip = "192.168.1.33" local url = 'http://'.. ip .. '/api/v1/auth' local dataslogin = '{"action":"login","params":{"password":"velux123"}}' local dataslogout = '{"action":"logout","params":{}}' local data, token local KLF = net.HTTPClient() KLF:request(url , { data = json.encode(response) print("Successfully logged with reponse :") print(data) token = temp:match('\\\"token\\\":\\\"(.+)\\\",\\\"') print("Returned token : " .. token token = string.gsub(token, '\\', '') print("Now trying to logout with token " .. token) KLF:request(url , { success = function(response) print("Successfully unlogged with response :") print(json.encode(response)) end, error = function(err) print("[ERROR] Unable to logout") print("Returned error : " .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/json, charset=utf-8', ["Authorization"] = 'Bearer ' .. token, }, data = dataslogout } }) end, error = function(err) print("[ERROR] Unable to login") print("Returned error : " .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/json, charset=utf-8', }, data = dataslogin } })
  10. Je connais pas cette commande. Elle fait quoi ?
  11. Essaie comme ça : options = { method = 'POST', headers = { ["content-type"] = 'application/json, charset=utf-8', ["Authorization"] = "Bearer ".. string.gsub(token, "\\", "\\\\"), }, Sinon, une fois que tu as un token, c'est mort pour en avoir un autre tant que la session est en cours ? Parce que sinon, il suffirait de vérifier s'il y a ces %#§!& de caractères d'échappement dedans pour aller en chercher un autre...
  12. Bonjour, Ce matin, ma HC2 s'est retrouvée à empêcher des scènes (basiques) de se lancer en raison d'une saturation RAM, laquelle était de fait à 99 % dans le panneau de diagnostics. Reboot impossible, donc recovery et tout le bazar. Pas un problème, ça lui fait toujours du bien Seulement voilà : comment identifier la cause d'une saturation RAM ? Vu que j'ai bossé hier soir sur Heating Manager, je me doute bien que j'ai dû merdé quelque part en codant. Mais comment identifier le truc ? Qu'est-ce qui peut entraîner une saturation de la RAM comme ça ?
  13. mets ça pour voir : token = string.gsub(token, "\\", "\\\\")
  14. @pepite Non, mais c'est pour que la fonction sache où s'arrêter. Comme on lui demande de ramener tous les caractères après \"token\":\", il faut lui dire où s'arrêter autrement qu'avec \", puisque sinon, elle te ramène tout jusqu'à errors inclus. Mais sinon, il est vrai que local token = response:match('\\\"token\\\":\\\"(.+)\\\",\\\"') marche aussi.
  15. En revanche, là où tu vas peut être avoir un problème, c'est pour renvoyer le token vers la boitier de commande s'il contient un caractère d'échappement comme tout à l'heure... Si tu as un pb à ce niveau-là, tu peux faire un string.gsub(token, "\\", "\\\\") avant de l'utiliser, comme ça tout caractère d'échappement contenu dans le token sera lui-même échappé et le moteur lua le considèrera comme un caractère lambda.
  16. Juste pour expliquer... Le contenu de la variable response est : {"headers":{"Connection":"Keep-Alive","Content-Type":"application\/json","Content-Length":"100"},"status":200,"data":")]}',\n{\"token\":\"2|3Cfg0j0mOfSwsiIQISQA==\",\"result\":true,\"deviceStatus":{},\"errors\",[]"} On se concentre là dessus : \"token\":\"2|3Cfg0j0mOfSwsiIQISQA==\",\"result Le point délicat qui nous a bien baladé, ce sont les caractères d'échappement \ qu'il faut aussi échapper pour que le moteur lua ne les considère pas comme des caractères d'échappement et que tout foire. Tout en échappant également les guillemets. Ce qui donne ça : \\\"token\\\":\\\"2|3Cfg0j0mOfSwsiIQISQA==\\\",\\\"result Et il reste plus qu'à préciser dans la formule qu'on veut récupérer ce qui est vert, qu'on remplace donc par (.+) = + les parenthèses pour que la fonction comprenne que c'est ça qu'il doit retourner + le point pour lui dire qu'on se fout du caractère et qu'il prend tout ce qu'il trouve + le plus pour lui dire qu'il prend tout ce qu'il trouve peu importe le nombre de caractères Et on a la formule à lui donner à manger...
  17. P... on va le mater, ton truc, j'te dis local token = response:match('\\\"token\\\":\\\"(.+)\\\",\\\"result') print("token = " .. tostring(token))
  18. Et essaie en remplaçant print par fibaro:debug
  19. @Cardane Tu peux faire un copie coller du debug (pour faciliter les tests) stp ?
  20. OJC

    Désactiver un bouton dans un VD

    Ce n'est pas parce que tu n'a pas d'erreur en debug que ça existe... Essaie avec fibaro:get(ID, "ui.slider.bonnesoupe") tu verras
  21. Tada : local key = "token" local token = response:match("\""..key.."\":\"(.+)\",") print(token)
  22. @Steven Le souci, c'est qu'il y a un caractère d'échappement dans son token : i2xU0kot0ZONeg\/tgGcTA== donc ça foire
  23. @Cardane oui, bien possible. Essaie comme ça du coup : success = function(response) print ("Je suis dans response") response.data = string.gsub(response.data, ")]},\n", "") local jsonTable = json.decode(response.data) for i, j in pairs(jsonTable) do fibaro:debug(tostring(i) .. " - " .. tostring(j)) end end,
  24. Oué, regarde deux posts plus haut la formule modifiée tenant compte du fait que tu as des signes = dans son token.
×
×
  • Créer...