-
Compteur de contenus
390 -
Inscription
-
Dernière visite
-
Jours gagnés
8
Tout ce qui a été posté par OJC
-
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
-
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
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... -
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.
-
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...
-
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...
-
[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
-
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 ?
-
On peut le faire dans une scène, aussi ?
-
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
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 } }) -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Je connais pas cette commande. Elle fait quoi ? -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
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... -
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 ?
-
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
mets ça pour voir : token = string.gsub(token, "\\", "\\\\") -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
@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. -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
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. -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
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... -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
-
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
P... on va le mater, ton truc, j'te dis local token = response:match('\\\"token\\\":\\\"(.+)\\\",\\\"result') print("token = " .. tostring(token)) -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Et essaie en remplaçant print par fibaro:debug -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
@Cardane Tu peux faire un copie coller du debug (pour faciliter les tests) stp ? -
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
-
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Tada : local key = "token" local token = response:match("\""..key.."\":\"(.+)\",") print(token) -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
@Steven Le souci, c'est qu'il y a un caractère d'échappement dans son token : i2xU0kot0ZONeg\/tgGcTA== donc ça foire -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
@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, -
Velux ... intégration avec HC2, un peu de teasing :-)
OJC a répondu à un(e) sujet de Cardane dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
Oué, regarde deux posts plus haut la formule modifiée tenant compte du fait que tu as des signes = dans son token.