Lazer Posté(e) le 25 mai 2020 Auteur Signaler Posté(e) le 25 mai 2020 @mprinfo j'ai un autre challenge pour toi : implémenter la sécurité du reboot en réintroduisant le double-clic du bouton. Ça devrait être faisable sans souci grâce à une variable interne du QA.
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 Je vous connais par cœur les gars j'ai juste tendu la perche
J3R3M Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 à l’instant, Lazer a dit : J'allais la faire Aurais-tu osé les diffuser portés ? J'ai vraiment réfléchi à la question... Enfin, surtout sur le modèle adulte, à vrai dire Le plus complexe a été de trouver un body, qui-plus-est classique
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 à l’instant, Lazer a dit : @mprinfo j'ai un autre challenge pour toi : implémenter la sécurité du reboot en réintroduisant le double-clic du bouton. Ça devrait être faisable sans souci grâce à une variable interne du QA. @lazer le reboot ne fonctionne pas chez moi seul l’arrêt fonctionne
Lazer Posté(e) le 25 mai 2020 Auteur Signaler Posté(e) le 25 mai 2020 bah Krikri t'a donné une piste, tu as essayé ? Je considère que ce n'est pas un problème et que tu vas passer immédiatement à la suite, d'où le nouveau challenge (encore plus valable pour le bouton Shutdown d'ailleurs, bien plus dangereux que le reboot) De mon coté j'ai repris le QA Netatmo partagé sur le market Fibaro, je récupère plus d'infos, et notamment la valeur des batteries des modules Enfin on pourra surveiller ça depuis la HC3, et visualiser dans Domocharts. Ce n'est pas trop tôt....
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 @lazer j'y comprends rien net.HTTPClient() je le met ou le code de krikri dans le net.HTTPClient() D'ou ma question de body Pour le double clic je ne sais ou on trouve cela c'est @steven qui avait donné le code
Lazer Posté(e) le 25 mai 2020 Auteur Signaler Posté(e) le 25 mai 2020 Steven n'a rien donné du tout vu qu'il n'a pas de HC3 Et surtout tu peux oublier l'astuce de l'époque qui ne fonctionne plus depuis longtemps. Si je te lances un challenge, c'est pour que tu cherches un peu sinon c'est trop facile. Idem pour le client http, il est identique à ce qu'on a dans les scènes depuis la v4 de la HC2, donc il y a pas mal d'exemple sur le forum
Krikroff Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 @lazer j'y comprends rien net.HTTPClient() je le met ou le code de krikri dans le net.HTTPClient() D'ou ma question de body Pour le double clic je ne sais ou on trouve cela c'est@steven qui avait donné le codeJe vais mettre à jour Envoyé de mon iPhone en utilisant Tapatalk
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 @krikroff le problème c'est que je sais pas faire les appels socket etc.... par contre pour le double clic c'est simple avec les VG des QA d'ailleurs sur HC2 avec VG c'est faisable vu que tu as la date de modification
Lazer Posté(e) le 25 mai 2020 Auteur Signaler Posté(e) le 25 mai 2020 @mprinfo qui ne sait pas utiliser Google Cadeau : (je me demande bien pourquoi il a été archivé ce sujet là.... ) Et puis la doc officielle Fibaro : https://manuals.fibaro.com/home-center-3-quick-apps/
Krikroff Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 Tu peux déclarer le body sous la méthode Du coup puisque tu as la doc maintenant je te laisse faire , tu seras incollable ensuite Envoyé de mon iPhone en utilisant Tapatalk
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 @lazer j'ai déjà lu tout cela mais j'ai beaucoup de mal a comprendre
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 @lazer ou a @Krikroff echange code double clic contre code reboot j'ai trouvé pour le double clic voici un bout du code function QuickApp:DoubleClick() local message = "Ré-appuyer pour confirmer" -- le message de confirmation local duree = 3 -- la durée max entre 2 clique (en seconde) local time = os.time() if ( self:confirm(message, duree, time) ) then print("Confirmé") -- votre code ici en cas de confirmation else print("Annulé") -- votre code ici en cas d'annulation end end
jjacques68 Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 pour le reboot j'utilise ça moi : fibaro.homeCenter.systemService.reboot() et ça marche très bien !!
jjacques68 Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 Il y a 2 heures, Krikroff a dit : Aujourd'hui c'est ultra simplifié mais logiquement cela devrait rapidement évolué, apparence, composants additionnels ... il y aura des checkBox ? des Combo ?
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 Il y a 3 heures, Lazer a dit : @mprinfo j'ai un autre challenge pour toi : implémenter la sécurité du reboot en réintroduisant le double-clic du bouton. Ça devrait être faisable sans souci grâce à une variable interne du QA.
Krikroff Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 Il y a 2 heures, mprinfo a dit : @krikroff le problème c'est que je sais pas faire les appels socket etc.... par contre pour le double clic c'est simple avec les VG des QA d'ailleurs sur HC2 avec VG c'est faisable vu que tu as la date de modification Ceci devrait fonctionner, à mon avis il faut passer l'auth lorsque ça passe par l' API 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) } }) 1
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 @Krikroff merci comme promis voici le code pour le double clic -- Generic device type have no default actions to handle -- double click par MPRINFO -- https://www.domotique-fibaro.fr function QuickApp:onInit() self:debug("onInit") end function QuickApp:buttonclick() self:DoubleClick() end function QuickApp:confirmDoubleClick(msg, duree, time) if self:getVariable("DoubleClic") == "" or self:getVariable("DoubleClic") < 10000 then self:setVariable("DoubleClic", os.time()) end local DernierClic = tonumber(self:getVariable("DoubleClic")) if time < DernierClic + duree then self:updateView("label", "text", " ") return true else self:setVariable("DoubleClic", os.time()) self:updateView("label", "text", msg) fibaro.setTimeout(duree*1000, function() self:updateView("label", "text", " ") end) return false end end function QuickApp:DoubleClick() local message = "Ré-appuyer pour confirmer" -- le message de confirmation local duree = 3 -- la durée max entre 2 clique (en seconde) local time = os.time() if ( self:confirmDoubleClick(message, duree, time) ) == true then self:updateView("label1", "text", "Double clic") self:start() end end ----------------------------------------------------------------- -- code exécuté suite a un double click ----------------------------------------------------------------- function QuickApp:start() --exemple self.message = string.format("double click a : %s", os.date("%d/%m/%Y à %Hh %Mmn %Ss")) self:updateView("label1", "text", self.message) end
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 @krikroff c'est ok pour le reboot super merci ce qui ma mis en erreur c'est @lazer qui a posté un code QA je pensais qu'il avait testé
Lazer Posté(e) le 25 mai 2020 Auteur Signaler Posté(e) le 25 mai 2020 Mouais, désolé mais je suis pas fan... ce n'est pas comme ça que j'aurais fait. Pourquoi utiliser setvariable() ? C'est moche, ça fait des écritures inutiles dans la DB, l'utilisateur va le voir en regardant les propriétés du QA, etc... Y'a tellement plus simple et plus rapide, il suffit d'utiliser une variable interne, self.doubleClic = os.time() et c'est réglé. Tu t'es compliqué la vie. 1
mprinfo Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 @lazer j'ai un peux de mal avec self.variableA priori la portée est comme une variable local Envoyé de mon BLA-L29 en utilisant Tapatalk
Lazer Posté(e) le 25 mai 2020 Auteur Signaler Posté(e) le 25 mai 2020 non plutôt comme une variable globale. Enfin pas tout à fait, pour être précis la portée est celle de tout l'objet instancié. Donc accessible depuis n'importe quelle fonction de ta classe QuickApp dans ton cas.
jjacques68 Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 on va simplifier en disant "global" au QA
Lazer Posté(e) le 25 mai 2020 Auteur Signaler Posté(e) le 25 mai 2020 Non je ne suis pas d'accord Si tu joues avec les Child Devices (ce que je n'arrête pas de faire avec IPX800 et Netatmo) tu verras que c'est totalement faux et peu induire en erreur. En parlant de Netatmo, ma version modifiée avec plus de valeurs météos remontées depuis l'API officielle, et surtout le statut des batteries des modules. Ce qui m'a permis de jouer avec l'injection d'interfaces dans les devices, merci @tinman sur le forum officiel : https://forum.fibaro.com/topic/49113-hc3-quickapps-coding-tips-and-tricks/?do=findComment&comment=202936 Regardez les petites icônes de jauge de batterie : Donc c'est intégré proprement, nativement dans l'interface, avec les notifications par email et remonté dans DomoCharts, comme si c'était un module Z-Wave natif : Fantastique les QuickApps, j'adore Vite vite vite la suite Je vais tenter de mettre les modules en "dead" (nœud mort) quand ils sont injoignables par la station ou en batterie HS
jjacques68 Posté(e) le 25 mai 2020 Signaler Posté(e) le 25 mai 2020 il y a 8 minutes, Lazer a dit : Si tu joues avec les Child Devices ah oui exacte ! tout à fait ! j'y pensais pas à eux, en effet !! sorry... là où je me suis fais plaisir avec les Child, c'est pour les plantes vertes (info venant de Jeedom) et le wake on lan/shutdown des PC !! en effet, une fois qu'on pigé le truc, c'est un vrai bonheur !!
Messages recommandés