mprinfo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 Surveillance Free Memory HC2 Voici un VD qui va vous permettre de connaitre la taille maximum et minimum de la mémoire libre de votre HC2 ainsi que la taille libre en temps réel C'est un VD très simple, il permet de connaitre les piques de mémoire maximum et minimum. Cela ne veut pas dire que les problémes de RAM que certains connaissent sont du à la RAM Le SWAP (fichier échange n'est pas pris en compte dans ce VD) car il n'est pas accessible via l'api de la box. De plus il n'est utilisé que lorsque RAM libre est inférieur a 5%. Le cache et le Buffers sont considéré comme de la RAM utilisé. Codes des différents Boutons : Bouton UPDATE local SelfId = fibaro:getSelfId() local pause = fibaro:get(SelfId, 'IPAddress') local NivAlerte = fibaro:get(SelfId, 'TCPPort') local IdTel = fibaro:getGlobal("TelPascal") local HC2 = Net.FHttp("127.0.0.1",11111) local response, status, errorCode = HC2:GET("/api/diagnostics") local result = json.decode(response) local RamFree = tonumber(result.memory.free) local RamCache = tonumber(result.memory.cache) local RamBuffers = tonumber(result.memory.buffers) local heure = os.date("%H:%M:%S", os.time())--os.date("%T") local date = os.date("%d/%m") local RamMax = tonumber(string.sub(fibaro:getValue(SelfId, "ui.labMax.value"), -4, -2)) local RamMini = tonumber(string.sub(fibaro:getValue(SelfId, "ui.labMini.value"),-4, -2)) ----------------------------------------------------------------- --- Message d'alerte Push ----------------------------------------------------------------- local push = tonumber(fibaro:getValue(SelfId, "ui.labPush.value")) if RamFree < tonumber(NivAlerte) then if push == nil then push = 0 end if push > 0 then push = push - tonumber(pause) fibaro:debug("difference"..push) else local Message = string.format("HC2 Espace Memoire faible %s le %s a %s", RamFree, os.date("%d/%m/%Y"), os.date("%R")) fibaro:call(IdTel, "sendPush", Message) push = 600 -- 10mn end else push = "" end ------------------------------------------------------------------ if RamMax == nil or RamMini == nil then RamMax = 0 RamMini = 0 end if RamFree > RamMax then RamMax = string.sub("0"..RamFree.." %", -4) fibaro:call(SelfId,"setProperty","ui.labMax.value", date.." à "..heure.." - "..RamMax) end if RamFree < RamMini or RamMini == 0 then RamMini = string.sub("0"..RamFree.." %", -4) fibaro:call(SelfId,"setProperty","ui.labMini.value", date.." à "..heure.." - "..RamMini) end ------------------------------------------------------------------ -- Mise a jour de label ------------------------------------------------------------------ fibaro:call(SelfId,"setProperty","ui.labPush.value", push) fibaro:call(SelfId,"setProperty","ui.labFreeRam.value", heure.." - "..RamFree.." %") fibaro:call(SelfId,"setProperty","ui.labSwap.value", heure.." - "..RamCache .." %") fibaro:call(SelfId,"setProperty","ui.labelBuffers.value", heure.." - "..RamBuffers .." %") Bouton RESET local SelfId = fibaro:getSelfId() local heure = os.date("%T") fibaro:call(SelfId,"setProperty","ui.labMini.value", "") fibaro:call(SelfId,"setProperty","ui.labMax.value", "") Bouton REBOOT function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") if (current == msg) then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", " ") return true else fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == " " end end -- ----------------------------- -- A vous de jouer by Steven --- -- ----------------------------- local message = "Ré-appuyer pour confirmer" -- le message de confirmation local label_id = "lblMessage" -- l'ID du label qui recevra le message local duree = 3 -- la durée max entre 2 clique (en seconde) if ( confirm(message, label_id, duree) ) then fibaro:log("Confirmé") local SelfId = fibaro:getSelfId() local HC2 = Net.FHttp("127.0.0.1",11111) response, status, errorCode = HC2:POST("/api/settings/reboot", "data=shutdown -h"); if errorCode == 0 then fibaro:log(status); else fibaro:log("error"); end else fibaro:log("Annulé") message = "Demande Annulée..." confirm(message, label_id, 10) message = "" confirm(message, label_id, 1) end Main Loop local SelfId = fibaro:getSelfId() local pause = fibaro:get(SelfId, 'IPAddress') ----------------------------------------------------------------- fibaro:call(fibaro:getSelfId(), "pressButton", "6") fibaro:sleep(pause*1000) Utilisation : il va falloir renseigner 3 valeurs Le temps de rafraichissement des valeurs, ce temps sera exprimé en seconde. Pour renseigner cette valeur il suffit de rentrer un chiffre a la place de Adresse IP:Exemple : Pour une mise a jour toute les 3 mn Adresse IP : 180 Le % de mémoire libre restants à partir du quel je veux être averti par push. Pour renseigner cette valeur il suffit de rentrer un chiffre a la place de Port TCP: Exemple : Pour recevoir un push lorsque la mémoire vive libre est inférieur à 25 % PortTCP: 25 L'ID de votre SmartPhone ou Apple Phone local IdTel = fibaro:getGlobal("TelPascal") --si votre tel est enregistré dans une VG ou local IdTel = 69 -- id du telephone Cette ligne ce trouve dans le bouton UPDATE ligne 4 Prochaine évolution : amélioration de la boucle pour l'envoi de push Icône du VD réalisé par notre amis DID Voici le VD a importer sur votre HC2 : Free_Memory_v1.10.vfib 5
Berale64 Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 Chouette, encore un VD qui va faire exploser la box !!!
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 Non si la box explose c'est parce fibaro code avec les pieds lol
Sakkhho Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 merci Reset c'est Reboot de la box ? D'ailleurs c'est quoi le bout de code pour faire cela ? Free RAM, c'est Free + Cache ou seulement la memoire libre ?
jojo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 Merci ! Je pense que Free n'est que Free
jojo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 MPRInfo, Je me permetterais la suggestion suivante : afficher la Free et la Cache (car perso, je considère la cache comme de la free) FREE RAM actuel : hh:mm:ss - 50% RAM Max : jj/mm hh:mm - 50% RAM Min : jj/mm hh:mm - 50% CACHE RAM actuel : hh:mm:ss - 50% RAM Max : jj/mm hh:mm - 50% RAM Min : jj/mm hh:mm - 50% Je pense que rajouter la date des valeurs min/max pourrait être utilie. Super en tout cas !
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 Ok je vais voir cela chef Envoyé de mon SM-G900F en utilisant Tapatalk
jojo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 je pense juste à un truc: tu fais des requêtes http toutes les 3 sec dans la main loop. Ca va planter un jour. 2 solutions : on inclut ça dans le Watchdog de Lazer mais alors il faut mettre un fibaro:debug avec un message dans la main loop on encapsule le tout comme dans le module Surveillance Station de Lazer (toujours lui ...)
Berale64 Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 A mon humble avis, toutes les 3s ça n'a pas de sens. Le but est, si j'ai bien compris, de détecter une augmentation régulière de l'occupation mémoire. Quand on regarde le graphe Fibaro, il n'y a pas de pics soudains. Donc un requête toute les 3mn me semble largement suffisant. Si Fibaro code avec les pieds, raison de plus pour ne pas en rajouter !!!
Sakkhho Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 oui je suis d'accord. Moi je ce que je souhaite faire c'est si RAM > XX % alors REBOOT de la HC2. mais pas besoin de connaitre cela toutes les 3s. Le VD Diagnostics je le rafraichis toutes les 10mn ou à la demande.
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 C'est juste pour connaître l'espace libre de la ram avec li mini et maxi J'ai pas mis de sleep mais cest prévu car je veux déjàvoir comment ca évolue et cela dépend aussi des scripts qui sont installés je peux te faire un script qui en moins de 30s plante ta box Oui je vais mettre un sleep réglable pour que chacun puisse adapté àson besoin Vous êtes pas cool les copains c'est mes premières ligne lua depuis au moins 5 mois Envoyé de mon SM-G900F en utilisant Tapatalk
jojo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 mprinfo, Ce que tu as fait est bien mieux que ce que tu m'avais demandé jeudi. Moi j'ai rien sorti. Toi au moins tu es venu avec quelque-chose. Il fallait que quelqu'un se lance. Et on partage pour l'améliorer ensemble. 1
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 Merci jojo tu n'es pas comme berale24 lol Envoyé de mon SM-G900F en utilisant Tapatalk
Berale64 Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 J'ai l'impression que la mirabelle a un effet certain sur ta mémoire.
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 Petit question je fais une demande http sur le serveur interne avez vous déjàeu un plantage via le serveur interne Envoyé de mon SM-G900F en utilisant Tapatalk
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 Je viens de faire une mise a jour du VD post 1 1
jojo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 merci, mai je ne comprends pas bien ta question précédente ? Swap = cache ?
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 sous linux le cache s'appel swap https://fr.wikipedia.org/wiki/Swap
jojo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 une petite remarque si je puis me permettre, Mettre le bouton par défaut sur Update et pas sur Reboot, car si on appuye par mégarde sur le bouton par défaut de l'interface, il reboot la HC2. Un petit double click éventuellement sur ce bouton ? Que je trouve utile mais dangereux
jojo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 mprinfo, tu connais mes limites en anglais, d'où la question ...
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 MDR tu es mon traducteur préféré Merci jojo pour ton aide Tu peux te permettre j'ai un peu de temps en ce moment car il pleut lol en plus tu n'es pas comme berale24 tu es gentil avec moi lol Tu peux me donner le code pour le double clic STP
Sakkhho Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 super. possible d'avoir le code du VD ? (j'aime pas peut être a tort importer plein de VDs)
jojo Posté(e) le 29 novembre 2015 Signaler Posté(e) le 29 novembre 2015 Cool mprinfo, Berale24 n'est pas méchant, d'ailleurs personne n'est méchant ici, sinon ils sont virés ... ou on ne les aide pas ... ou ils n'aident pas. code du double click : http://www.domotique-fibaro.fr/index.php/topic/1303-double-clique-pour-confirmer/
mprinfo Posté(e) le 29 novembre 2015 Auteur Signaler Posté(e) le 29 novembre 2015 Je déconne pour berale @Sakkhho attend un peu je suis entrain d'implémenté le fonction push si la mémoire est inférieur à 25% Il faut juste que j'arrive a additionné et comparer l'heure c'est pas gagner lol sinon tu vas être blinder de push si c'est inférieur a 25 %
Messages recommandés