mprinfo Posté(e) le 26 mai 2020 Signaler Posté(e) le 26 mai 2020 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 1
mprinfo Posté(e) le 26 mai 2020 Auteur Signaler Posté(e) le 26 mai 2020 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 2
Lazer Posté(e) le 26 mai 2020 Signaler Posté(e) le 26 mai 2020 Je n'ai pas étudié en détail, mais ça me parait pas mal comme code Bravo et merci du partage
mprinfo Posté(e) le 26 mai 2020 Auteur Signaler Posté(e) le 26 mai 2020 @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 1
mprinfo Posté(e) le 26 mai 2020 Auteur Signaler Posté(e) le 26 mai 2020 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
mprinfo Posté(e) le 26 mai 2020 Auteur Signaler Posté(e) le 26 mai 2020 @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
mprinfo Posté(e) le 26 mai 2020 Auteur Signaler Posté(e) le 26 mai 2020 Nouvelle version du QA Version 0.57 beta : Reboot_V0.57_beta.fqa
Lazer Posté(e) le 26 mai 2020 Signaler Posté(e) le 26 mai 2020 Mais au final pourquoi tu n'as pas mis ces boutons dans le QA Diagnostique ? L'idée de base, c'était que si on voit que la RAM est saturée, alors on reboote. PS : version 57 bien joué
mprinfo Posté(e) le 26 mai 2020 Auteur Signaler Posté(e) le 26 mai 2020 @lazer c'est le butPar 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
mprinfo Posté(e) le 27 novembre 2022 Auteur Signaler Posté(e) le 27 novembre 2022 Nouvelle version de ce QA Suppression du bouton Arret de la box (cette commande n'est plus disponible) Ajout d'un Bouton pour passé en mode recovery Ajout de l'encodage Base64 pour le mot de passe Il faut renseigné les variables User Password doubleClic (délais entre 2 clic) Double_Clic_Version_1.00.fqa 2 1
jojo Posté(e) le 27 novembre 2022 Signaler Posté(e) le 27 novembre 2022 Il y a 3 heures, mprinfo a dit : Suppression du bouton Arret de la box (cette commande n'est plus disponible) L'arrêt n'est en effet plus disponible. Mais il y a un suspend, qui serait dispo maintenant. Je me demande si ce ne serait pas mieux de faire un suspend avant de retirer la prise (pour, par exemple, changer la box de place) ? Et donc rajouter un bouton suspend dans ton code serait top ?
jojo Posté(e) le 27 novembre 2022 Signaler Posté(e) le 27 novembre 2022 @mprinfo, comme ça ne fonctionne pas chez moi, je te mets le log du dbug. Pour le double clic sur reboot [27.11.2022] [13:57:47] [DEBUG] [QUICKAPP837]: onInit [27.11.2022] [13:57:56] [TRACE] [QUICKAPP837]: UIEvent: {"eventType":"onReleased","values":[],"elementName":"Reboot","deviceId":837} [27.11.2022] [13:57:58] [TRACE] [QUICKAPP837]: UIEvent: {"eventType":"onReleased","values":[],"elementName":"Reboot","deviceId":837} [27.11.2022] [13:57:58] [TRACE] [QUICKAPP837]: ------------------------- Redemarrage de la box ---------------------------- [27.11.2022] [13:57:58] [DEBUG] [QUICKAPP837]: ./include/main.lua:58: attempt to perform arithmetic on a boolean value [27.11.2022] [13:57:58] [ERROR] [QUICKAPP837]: QuickApp crashed [27.11.2022] [13:57:58] [ERROR] [QUICKAPP837]: Unknown error occurred: handleJsonRpc [27.11.2022] [13:58:01] [DEBUG] [QUICKAPP837]: onInit quand je fais un double clic sur Recovery : la HC3 rentre bien en mode recovery
mprinfo Posté(e) le 27 novembre 2022 Auteur Signaler Posté(e) le 27 novembre 2022 ligne 60 il y a un tiret qui traine a supprimer 1
jojo Posté(e) le 27 novembre 2022 Signaler Posté(e) le 27 novembre 2022 Merci, ça va tout de suite mieux sans ;-) (tu publies donc la v1,01 vorrigée pour la communauré ?)
mprinfo Posté(e) le 28 novembre 2022 Auteur Signaler Posté(e) le 28 novembre 2022 Oui je vais refaire le poste 1Envoyé de mon BLA-L29 en utilisant Tapatalk 1
Messages recommandés