Aller au contenu

mprinfo

Membres confirmés
  • Compteur de contenus

    14 407
  • Inscription

  • Dernière visite

  • Jours gagnés

    253

Tout ce qui a été posté par mprinfo

  1. mprinfo

    Bon anniversaire multiples

    C'est l'anniversaire des hc3 [emoji23] Joyeux anniversaire à vous 2 Envoyé de mon BLA-L29 en utilisant Tapatalk
  2. Je fais 1 passage toutes les 60s Tu veux que je post le code ? j'avais fais la capture juste après avoir sauvegardé -- Generic device type have no default actions to handle -- Module Virtuel "hc2 - Diagnostics" par razowski -- lien : https://www.domotique-fibaro.fr/topic/3719-module-virtuel-hc2-diagnostics/ -- HC3-V2.00 - 24/05/2020 -- QA pour Home Center 3 (ne fonction pas sur HC2 ou HCL) réalisé par mprinfo -- www.domotique-fibaro.fr -- Lien Topic : https://www.domotique-fibaro.fr/topic/14346-quick-app-diagnostics-hc3/ function QuickApp:onInit() self:debug("onInit") --__TAG = "QA"..plugin.mainDeviceId.."_Diagnostics HC3" self:updateView("Version", "text", "Version : HC3-V2.00 - www.domotique-fibaro.fr") if self:getVariable("Rafraichissement") == nil then self:setVariable("Rafraichissement", "60") end self.refresh = tonumber(self:getVariable("Rafraichissement")) self.DoubleClic = 0 -- variable double lic self.NomBouton = {"0", "0"} -- variables double click self:loop(self.refresh) -- Boucle principale end ---------------------------------------------------------------------------------------------- --- Boucle loop ---------------------------------------------------------------------------------------------- function QuickApp:loop(refresh) self:trace("Le QA Diagnostics a été mise a jour : Prochane mise a jours dans ",refresh,"mn--") self:diagnostics() --fibaro.setTimeout(refresh * 60 * 1000, function() self:loop(refresh) --end) end ---------------------------------------------------------------------------------------------- -- bouton "button" avec double clic ---------------------------------------------------------------------------------------------- -- Bouton Reboot function QuickApp:RebootClic() local message1clic = "Ré-appuyer pour confirmer" -- Message de confirmation local messageBouton = "Redemarrage HC3" -- Message bouton default local duree = 2 -- la durée max entre 2 clique (en seconde) local NomBouton = "Reboot" -- ID du bouton qui doit avoir un double clic local time = os.time() if ( self:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) ) == true then -- Si double clic self:updateView(NomBouton, "text", messageBouton) ----------------------------------------- -- code exécuté suite a un double click ----------------------------------------- self:startReboot(NomBouton, messageBouton) self:updateView(NomBouton, "text", "Votre HC3 va Redemarrée....") self.message = string.format("Redemarrage : %s", os.date("%d/%m/%Y à %Hh %Mmn %Ss")) self:updateView("label1", "text", self.message) print("-----------------------------------Reboot") self:Reboot() end end -- Bouton Arret function QuickApp:ArretClick() local message1clic = "Ré-appuyer pour confirmer" -- Message de confirmation local messageBouton = "Arret HC3" -- Message bouton default local duree = 2 -- la durée max entre 2 clique (en seconde) local NomBouton = "Arret" -- ID du bouton qui doit avoir un double clic local time = os.time() if ( self:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) ) == true then -- Si double clic self:updateView(NomBouton, "text", messageBouton) ----------------------------------------- -- code exécuté suite a un double click ----------------------------------------- self:updateView(NomBouton, "text", "Votre HC3 va S'arrêtée....") self.message = string.format("Arret : %s", os.date("%d/%m/%Y à %Hh %Mmn %Ss")) self:updateView("label1", "text", self.message) print("-----------------------------------Arret") self:Arret() end end ---------------------------------------------------------------------------------------------- -- confirmation d un double click ---------------------------------------------------------------------------------------------- function QuickApp:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) if NomBouton ~= self.NomBouton[1] then self:updateView(self.NomBouton[1], "text", self.NomBouton[2]) self.NomBouton = {NomBouton, messageBouton} self:updateView(NomBouton, "text", message1clic) fibaro.setTimeout(duree*1000, function() self:updateView(NomBouton, "text", messageBouton) end) self.DoubleClic = os.time() return false end if time > self.DoubleClic + duree then self.DoubleClic = os.time() self:updateView(NomBouton, "text", message1clic) fibaro.setTimeout(duree*1000, function() self:updateView(NomBouton, "text", messageBouton) self.DoubleClic = 0 end) return false end self.DoubleClic = 0 return true end ---------------------------------------------------------------------------------------------- -- arrondi 2 chiffres apres la virgule ---------------------------------------------------------------------------------------------- function QuickApp:round(num) local a = math.floor(num*100 + 0.5)/ 100 return a,string.format("%.2f",a) end ---------------------------------------------------------------------------------------------- -- creation de la table avec les donnees des CPU ---------------------------------------------------------------------------------------------- function QuickApp:GetTableCPU() local reponse, status = api.get("/diagnostics") -- print (json.encode(reponse)) if tonumber(status) == 200 then local TableCPU ={} for i = 0, 3 do TableCPU[i] = { ["cpu_user"] = tonumber(reponse.cpuLoad[i+1].user), ["cpu_nice"] = tonumber(reponse.cpuLoad[i+1].nice), ["cpu_system"] = tonumber(reponse.cpuLoad[i+1].system), ["cpu_idle"] = tonumber(reponse.cpuLoad[i+1].idle) } TableCPU[i]["cpu_TOTAL"] = (TableCPU[i].cpu_user + TableCPU[i].cpu_nice + TableCPU[i].cpu_system + TableCPU[i].cpu_idle) end --print (json.encode(TableCPU)) return(TableCPU) end end ----------------------------------- -- Reboot HC3 ----------------------------------- function QuickApp:Reboot() local http = net.HTTPClient({ timeout = 2000 }) local payload = {recovery=false} return http:request("http://localhost/api/service/reboot",{ options={ headers = { ["content-type"] = "application/json;charset=UTF-8", ["Authorization"] = "Basic YWRtaW46YWRtaW4=", ["X-Fibaro-Version"] = "2" }, method = "POST", data = json.encode(payload) } }) end----------------------------------- -- Mise en veille HC3 ----------------------------------- function QuickApp:Veille() end ----------------------------------- -- Arret HC3 ----------------------------------- function QuickApp:Arret() local http = net.HTTPClient({ timeout = 2000 }) return http:request("http://localhost/api/service/shutdown",{ options={ headers = { ["X-Fibaro-Version"] = "2" }, method = "POST", } }) end ---------------------------------------------------------------------------------------------- -- fonction principale ---------------------------------------------------------------------------------------------- function QuickApp:diagnostics() local data, status = api.get("/settings/info") local Version = data.softVersion local Serial = data.serialNumber local heure = os.date("%R") local date = os.date("%d/%m/%Y") local Message = string.format("Diagnostics : %s Firmware : %s ", Serial, Version) self:updateView("Titre", "text", Message) local Message = string.format("Mise a jour le %s à %s ", date, heure) self:updateView("update", "text", Message) local result, status = api.get("/diagnostics") --print(json.encode(result)) if tonumber(status) == 200 then --------------------------------------------------------------- --Utilisation de la RAM---------------------------------------- --------------------------------------------------------------- local ramused = tonumber(result.memory.free) local ramfree = 100 - ramused; ramused = ramused .. " %"; ramfree = ramfree .. " %"; self:updateView("vlRAM0", "text", "Utilisé : " .. ramused) self:updateView("vlRAM1", "text", "Disponible : " .. ramfree) --------------------------------------------------------------- --Partition système-------------------------------------------- --------------------------------------------------------------- local sused = tonumber(result.storage.internal[1].used) local sfree = 100 - sused; sused = self:round(sused) sfree = self:round(sfree) sused = sused .. " %"; sfree = sfree .. " %"; self:updateView("vlSystem0", "text", "Utilisé : " .. sused) self:updateView("vlSystem1", "text", "Disponible : " .. sfree) --------------------------------------------------------------- --Charge CPU--------------------------------------------------- --------------------------------------------------------------- if TablePREV_CPU == nil then TablePREV_CPU = self:GetTableCPU() end fibaro.sleep(self.refresh*1000) local TableCPU = self:GetTableCPU() ---------------------- -- affichage CPU ---------------------- for i = 0, 3 do local CPU_TOTAL = TableCPU[i]["cpu_TOTAL"]-TablePREV_CPU[i]["cpu_TOTAL"] local CPU_idle = TableCPU[i]["cpu_idle"] - TablePREV_CPU[i]["cpu_idle"] local CPU_Pourcentage = (CPU_TOTAL-CPU_idle)/CPU_TOTAL*100 CPU_Pourcentage = self:round(CPU_Pourcentage) CPU_Pourcentage = CPU_Pourcentage .. " %" self:updateView("vlCPU"..i, "text", CPU_Pourcentage) end TablePREV_CPU = TableCPU else self:debug("Try again "..status) end end
  3. Alors j'ai repris le calcul de celui de la hc2 Par contre je compare par défaut sur 60s au lieu de 1s Je sais pas si c'est la bonne méthode ? Envoyé de mon BLA-L29 en utilisant Tapatalk
  4. @Moicphil c'est bon j’ai partagé tu peux mettre le pouce vers le haut @lazer mission accomplie
  5. Quick App - Diagnostics HC3 version 2.10 Module Virtuel "hc2 - Diagnostics" par @razowski lien : https://www.domotique-fibaro.fr/topic/3719-module-virtuel-hc2-diagnostics/ QA pour Home Center 3 (ne fonction pas sur HC2 ou HCL) r éalisé par mprinfo Suppression du bouton Arret de la box (cette commande n'est plus disponible) Ajout d'un Bouton pour passer en mode recovery Ajout de l'encodage Base64 pour le mot de passe Ajout de 3 Childs le child CPU indique la moyen des 4 Cores du CPU Quick App - Diagnostics HC3 - V2.10 - 27/11/2022 Lien : HC3_Diagnostics_V2.10.fqa 
  6. Quick App - Recommandation Commentaires Entête Bonjour a tous, Voici ce que je recommande de mette en entête dans votre QA Type de QA La version du QA Le lien du topic du QA Si le QA est une adaptation d'un VD cité l'auteur ou les auteurs Exemple : -- Generic device type have no default actions to handle -- Version 0.54 Beta double click par MPRINFO -- lien Topic : https://www.domotique-fibaro.fr/topic/14343-quick-app-reboot-via-double-clic/?tab=comments#comment-226796 -- Generic device type have no default actions to handle -- Retourne OUI si le jour courant et J+1 est un jour chômé (WE ou férié) -- Adapté de http://gurau-audibert.hd.free.fr/josdblog/2014/01/lua-vacances-jours-chomes-et-jours-feries/ -- Pour la HC2 par Hansolo -- V1 26/06/2014 Initié par HANSOLO -- V2 27/06/2014 Amélioré par STEVEN, gestion des JS SUISSE et calcul J et J+1 -- V3.01 10/05/2020 QA pour Home Center 3 (ne fonction pas sur HC2 ou HCL) réalisé par mprinfo -- V4.01 25/05/2020 QA pour Home Center 3 (ne fonction pas sur HC2 ou HCL) réalisé par mprinfo -- lien Topic : https://www.domotique-fibaro.fr/topic/14288-quick-app-jour-f%C3%A9ri%C3%A9/
  7. MDR [emoji106][emoji1787] Envoyé de mon BLA-L29 en utilisant Tapatalk
  8. @krikroff alors cela donne quoi au niveau du suivi Envoyé de mon BLA-L29 en utilisant Tapatalk
  9. Salut bienvenue sur le forum Je pense que certaines personnes on déjà réalisé cela. Donc oui tu vas avoir la ou les solutions ici Envoyé de mon BLA-L29 en utilisant Tapatalk
  10. D'où l'intérêt d'avoir des hc2 en prod et une HC3 en test Ma hc3 a 2 ou 3 modules pour tester et encore je ne les utilises pas Il n'y aurait pas de zwave implémenter ça ne serait pas bien grave Le jeu a la mode sur hc3 c'est le QA Et pour les plus motivés on peut leurs faire faire des enfants cool [emoji23] Si j'ai acheté aussi tôt une HC3 c'est pour jouer avec et apprendre comment cela fonctionne. Pour le moment pas question de la passer en prod elle est trop jeune. Avec Fibaro il faut être prudent ça commence toujours très bien. C'est après que ça ce dégrade. La v3 était très bien et la V4 une catastrophe plusieurs années pour l'avoir stable Envoyé de mon BLA-L29 en utilisant Tapatalk
  11. @lazer c'est le but Par contre je voulez partager le code pour le double clic d'où ce QA pour montrer la méthode Envoyé de mon BLA-L29 en utilisant Tapatalk
  12. mprinfo

    Imperihome

    C'est vrai que alsahome ça sonne bien Envoyé de mon BLA-L29 en utilisant Tapatalk
  13. Le bêta testeur c'est le neveu [emoji16] Envoyé de mon BLA-L29 en utilisant Tapatalk
  14. Nouvelle version du QA Version 0.57 beta : Reboot_V0.57_beta.fqa
  15. @krikroff j'ai modifier le body car j'ai pris du poids ----------------------------------- -- Reboot HC3 ----------------------------------- function QuickApp:Reboot() local http = net.HTTPClient({ timeout = 2000 }) local payload = {recovery=false} return http:request("http://localhost/api/service/reboot",{ options={ headers = { ["content-type"] = "application/json;charset=UTF-8", ["Authorization"] = "Basic YWRtaW46YWRtaW4=", ["X-Fibaro-Version"] = "2" }, method = "POST", data = json.encode(payload) } }) end ----------------------------------- -- Arret HC3 ----------------------------------- function QuickApp:Arret() local http = net.HTTPClient({ timeout = 2000 }) return http:request("http://localhost/api/service/shutdown",{ options={ headers = { ["X-Fibaro-Version"] = "2" }, method = "POST", } }) end
  16. a priori c’est bon pour autant de bouton que l'on veut -- Generic device type have no default actions to handle -- Version 0.54 Beta double click par MPRINFO -- https://www.domotique-fibaro.fr/topic/14343-quick-app-reboot-via-double-clic/?tab=comments#comment-226796 function QuickApp:onInit() self:debug("onInit") self.DoubleClic = 0 self.NomBouton = {"0", "0"} self:updateView("label2", "text", "Redemarrage Double Clic Version 0.57 Beta") self:updateView("button", "text", "Redemarrage HC3") end ----------------------------------- -- bouton "button" avec double clic ----------------------------------- function QuickApp:RebootClic() local message1clic = "Ré-appuyer pour confirmer" -- Message de confirmation local messageBouton = "Redemarrage HC3" -- Message bouton default local duree = 10 -- la durée max entre 2 clique (en seconde) local NomBouton = "Reboot" -- ID du bouton qui doit avoir un double clic local time = os.time() if ( self:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) ) == true then -- Si double clic self:updateView(NomBouton, "text", messageBouton) -- votre ICI self:startReboot(NomBouton, messageBouton) end end function QuickApp:ArretClick() local message1clic = "Ré-appuyer pour confirmer" -- Message de confirmation local messageBouton = "Arret HC3" -- Message bouton default local duree = 10 -- la durée max entre 2 clique (en seconde) local NomBouton = "Arret" -- ID du bouton qui doit avoir un double clic local time = os.time() if ( self:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) ) == true then -- Si double clic self:updateView(NomBouton, "text", messageBouton) -- votre ICI self:startArret(NomBouton, messageBouton) end end ----------------------------------- -- confirmation d un double click ----------------------------------- function QuickApp:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) if NomBouton ~= self.NomBouton[1] then self:updateView(self.NomBouton[1], "text", self.NomBouton[2]) self.NomBouton = {NomBouton, messageBouton} self:updateView(NomBouton, "text", message1clic) fibaro.setTimeout(duree*1000, function() self:updateView(NomBouton, "text", messageBouton) end) self.DoubleClic = os.time() return false end if time > self.DoubleClic + duree then print("---------------------------------") print("---------------------------------NomBouton : ", NomBouton) self.DoubleClic = os.time() self:updateView(NomBouton, "text", message1clic) fibaro.setTimeout(duree*1000, function() self:updateView(NomBouton, "text", messageBouton) self.DoubleClic = 0 end) return false end self.DoubleClic = 0 return true end ----------------------------------------------------------------- -- code exécuté suite a un double click ----------------------------------------------------------------- function QuickApp:startArret(NomBouton, messageBouton) self.message = string.format("Arret : %s", os.date("%d/%m/%Y à %Hh %Mmn %Ss")) self:updateView("label1", "text", self.message) print("-----------------------------------Arret") end function QuickApp:startReboot(NomBouton, messageBouton) --self:updateView(NomBouton, "text", "Votre HC3 va Redemarrée....") self.message = string.format("Redemarrage : %s", os.date("%d/%m/%Y à %Hh %Mmn %Ss")) self:updateView("label1", "text", self.message) print("-----------------------------------Reboot") end
  17. @lazer juste un petit soucis avec l' affichage lorsque l'on change de bouton alors que l'autre bouton est en attente plus de set variable maintenant que j'ai un peu prêt compris la portée du self.variable
  18. Voici le code double clic pour plusieurs boutons Exemple avec 2 boutons function QuickApp:onInit() self:debug("onInit") self.DoubleClic = 0 self.NomBouton = " " self:updateView("label2", "text", "Redemarrage Double Clic Version 0.55 Beta") self:updateView("button", "text", "Redemarrage HC3") end ----------------------------------- -- bouton "button" avec double clic ----------------------------------- function QuickApp:RebootClic() local message1clic = "Ré-appuyer pour confirmer" -- Message de confirmation local messageBouton = "Redemarrage HC3" -- Message bouton default local duree = 2 -- la durée max entre 2 clique (en seconde) local NomBouton = "Reboot" -- ID du bouton qui doit avoir un double clic local time = os.time() if ( self:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) ) == true then -- Si double clic self:startReboot(NomBouton, messageBouton) end end function QuickApp:ArretClick() local message1clic = "Ré-appuyer pour confirmer" -- Message de confirmation local messageBouton = "Arret HC3" -- Message bouton default local duree = 2 -- la durée max entre 2 clique (en seconde) local NomBouton = "Arret" -- ID du bouton qui doit avoir un double clic local time = os.time() if ( self:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) ) == true then -- Si double clic self:startArret(NomBouton, messageBouton) end end ----------------------------------- -- confirmation d un double click ----------------------------------- function QuickApp:confirmDoubleClick(message1clic, messageBouton, duree, time, NomBouton) if NomBouton ~= self.NomBouton or time > self.DoubleClic + duree then self.NomBouton = NomBouton self.DoubleClic = os.time() self:updateView(NomBouton, "text", message1clic) fibaro.setTimeout(duree*1000, function() self:updateView(NomBouton, "text", messageBouton) self.DoubleClic = 0 end) return false end self:updateView(NomBouton, "text", " ") self.DoubleClic = 0 return true end ----------------------------------------------------------------- -- code exécuté suite a un double click ----------------------------------------------------------------- function QuickApp:startArret(NomBouton, messageBouton) self:updateView(NomBouton, "text", "Votre HC3 va Redemarrée....") self.message = string.format("double click a : %s", os.date("%d/%m/%Y à %Hh %Mmn %Ss")) self:updateView("label1", "text", self.message) self:updateView(NomBouton, "text", messageBouton) print("-----------------------------------Arret") end function QuickApp:startReboot(NomBouton, messageBouton) self:updateView(NomBouton, "text", "Votre HC3 va Redemarrée....") self.message = string.format("double click a : %s", os.date("%d/%m/%Y à %Hh %Mmn %Ss")) self:updateView("label1", "text", self.message) self:updateView(NomBouton, "text", messageBouton) print("-----------------------------------Reboot") end
  19. Quick App - Reboot via Double Clic Permet de redémarrer la HC3 a partir d'un double clic local duree = 3 -- la durée max entre 2 clique (en seconde) Version 1.00 : Double_Clic_Version_1.00.fqa
  20. Moi j'avais compris ni HC2, ni HC3 dans ce que j'avais lu
  21. Ça on le savait déjà [emoji16] Envoyé de mon BLA-L29 en utilisant Tapatalk
  22. @jjacques68 attention la fonction reboot n'est pas appeler car c'est un test pas envi de faire un reboot a chaque test
  23. C'est bon j'ai touvé, je n'avais jamais fais attention à cela
  24. avant la couleur etait automatique pour le code lua en plus ce que je colle est en couleur -- Generic device type have no default actions to handle -- double click par MPRINFO -- https://www.domotique-fibaro.fr function QuickApp:onInit() self:debug("onInit") self.DoubleClic = os.time() end function QuickApp:Reboot() self:DoubleClick() local http = net.HTTPClient({ timeout = 2000 }) local payload = {recovery=false} return http:request("http://localhost/api/service/reboot",{ options={ headers = { ["content-type"] = "application/json;charset=UTF-8", ["Authorization"] = "Basic YWRtaW46YWRtaW4=", ["X-Fibaro-Version"] = "2" }, method = "POST", data = json.encode(payload) } }) end function QuickApp:buttonclick() self:DoubleClick() end function QuickApp:confirmDoubleClick(msg, duree, time, NomBouton) if time < self.DoubleClic + duree then self:updateView(NomBouton, "text", " ") self.DoubleClic = self.DoubleClic - duree*60*1000 return true else self.DoubleClic = os.time() self:updateView(NomBouton, "text", msg) fibaro.setTimeout(duree*1000, function() self:updateView(NomBouton, "text", " ") end) return false end end function QuickApp:DoubleClick() local message = "Ré-appuyer pour confirmer" -- le message de confirmation local duree = 5 -- la durée max entre 2 clique (en seconde) local NomBouton = "button" -- ID du bouton qui doit avoir un double clic local time = os.time() if ( self:confirmDoubleClick(message, duree, time, NomBouton) ) == true then self:updateView("label1", "text", "Double clic") self:start() end end punaise j avais jamais vu on peut choisir le type de code
  25. @lazer j’ai mis en couleur je ne comprend pas trop ta réponse je mets toujours le code en couleur pour les scripts
×
×
  • Créer...