971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 (modifié) HAAAAAA voila voila ok il fallait l'appeler j'apprend des choses merci encore Si je chouette rajouter un rafraîchissement tout les 30S setInterval(function() self:onInit() end, 30) Où dois-je le placer ? Faudrait-il créer un bouton rafraîchissement ? j'imagine que 30s ne s'écrit pas comme ça setInterval(function() self:onInit() end,30) mai comme ça setInterval(function() self:onInit() end,30*1000) Modifié 15 novembre 2021 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites
Fredmas 193 Signaler ce message Posté(e) 15 novembre 2021 (modifié) Non et il n’y a pas d’intérêt d’appeler ton onInit dans ce type de boucle selon moi. je m’en doutais qu’on en arriverait là. Rappelle-toi dès mes premières réponses j’avais précisé que si c’était pour moi je ne le ferais pas comme ça. Mais plutôt en mode check régulier (boucle) pour éviter des longs setTimeout de 2 ou 4 heures par exemple. Mais ce n’est pas grave, chaque question en amène une autre et nous permet de bien comprendre les possibilités et notre besoin. Donc pour en revenir à ta dernière question, je t’invite à bien repenser à ton besoin. Puis : 1. Soit tu continues comme tu es parti et tu ajoutes un simple nouveau setTimeout (court d’un point de vue temps puisque tu as l’air de souhaiter 30s), principalement pour rafraîchir ta variable clima et ton updateView qui te servira uniquement de check visuel (d’une valeur isolée dans le temps) en regardant ton QA dans ton app. Je ne vois pas bien à quoi ça te servira mais ça ne me regarde pas. Et dans ce cas tu y es presque. Ça sera évidemment un QA qui ressemble davantage à un VD, mais à court terme ça a l’air de répondre à ton besoin et c’est ce qui compte (des boutons pour piloter ta clim avec des timers et ta valeur conso ponctuelle). Ca peut te permettre d’apprendre les QA et ensuite tu auras tout le temps de le faire évoluer ou d’en faire un nouveau partant d’une page blanche. 2. Soit tu reprends tout depuis le début dès maintenant pour faire un QA plus abouti qui boucle régulièrement, façon GEA par exemple. Ce n’est pas énormément plus compliqué (quoique tout dépend où tu places les limites du besoin à définir et coder, comme récupérer des températures pour prise de décision automatique par exemple), mais ça peut changer tout ce qu’on s’est dit depuis ce week-end et le raisonnement tenu jusque-là. A toi de voir La force je ne sais pas, mais que le QA soit avec toi Modifié 15 novembre 2021 par Fredmas Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 (modifié) oui que le QA soit avec moi. Oui comme tu as pu le comprendre, je suis toujours brouillon mai l'idée c'est d'apprendre... J'accepte toutes les critiques Mais j'ai toujours du mal à comprendre comment fonctionne une fonction. https://manuals.fibaro.com/home-center-3-quick-apps/ J'essaye avec le manuel mais malheureusement pour moi je suis pas très mouvais en anglais donc voila Si je pouvais trouver quelqu'un ou entreprise pour me donner des cours Modifié 15 novembre 2021 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 (modifié) Toujours faut comprendre comment cela fonctionne: J'ai fait un bouton de rafraîchissement et cela ne fonctionne pas, pourtant le bouton est censé appeler conso1 ??? c'est dur là je comment avoir mal aux yeux local idclim = 353 local clima = tostring(fibaro.getValue(idclim, "power")) function QuickApp:conso1() self:debug(clima) self:updateView("power1", "text", "Climatiseur N°1 - "..clima.." W") end --- BOUTON RAF function QuickApp:Raf1() self:debug("onInit") self:conso1() end Modifié 15 novembre 2021 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites
Fredmas 193 Signaler ce message Posté(e) 15 novembre 2021 Il y a 2 heures, 971jmd a dit : oui que le QA soit avec moi. Oui comme tu as pu le comprendre, je suis toujours brouillon mai l'idée c'est d'apprendre... J'accepte toutes les critiques Il y a 2 heures, 971jmd a dit : Mais j'ai toujours du mal à comprendre comment fonctionne une fonction. https://manuals.fibaro.com/home-center-3-quick-apps/ J'essaye avec le manuel mais malheureusement pour moi je suis pas très mouvais en anglais Ca va venir à force d'avancer, questionner et comprendre le fonctionnement Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 actuellement j'ai tout effacé et je reprends petit à petit Partager ce message Lien à poster Partager sur d’autres sites
Fredmas 193 Signaler ce message Posté(e) 15 novembre 2021 Il y a 1 heure, 971jmd a dit : J'ai fait un bouton de rafraîchissement et cela ne fonctionne pas, pourtant le bouton est censé appeler conso1 ??? c'est dur là je comment avoir mal aux yeux Je pense que ton code est un extrait que tu ne montres pas tout. Question : es-tu bien sûr de ton appel API "power" ? Par exemple, puisque tu as tout effacé, pour être sûr que ton appel API fonctionne, quand tu mets uniquement ce code : function QuickApp:onInit() self:debug("onInit") idclim = 353 print(fibaro.getValue(idclim, "power")) end Quand tu sauvegardes, dans la console tu vois bien la valeur de "power" ? Et dans ce cas, ensuite tu peux enchainer ce test ci-dessous avec ton Button dont ID est Raf1 et ton Label dont ID est power1 (je viens de le tester sans ton "power" et il fonctionne) : function QuickApp:onInit() self:debug("onInit") idclim = 353 clima = 0 end function QuickApp:Raf1() clima = tostring(fibaro.getValue(idclim, "power")) self:debug(clima) self:updateView("power1", "text", "Climatiseur N°1 - "..clima.." W") end Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 ça fonctionne Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 (modifié) si je comprend bien, tu place les variables dans la fonction onInit qui remet à zéro à chaque démarrage clima = 0 function QuickApp:onInit() self:debug("onInit") idclim = 353 clima = 0 end Modifié 15 novembre 2021 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 voilà où j'en suis Je commence à comprendre pas mal de choses function QuickApp:onInit() self:debug("onInit") idclim = 353 idclim2 = 93 clima = 0 clima2 = 0 end function QuickApp:Raf1() clima = tostring(fibaro.getValue(idclim, "energy")) self:debug(clima) self:updateView("power1", "text", "Climatiseur N°1 - "..clima.." W") clima2 = tostring(fibaro.getValue(idclim2, "power")) self:debug(clima2) self:updateView("power2", "text", "Climatiseur N°1 - "..clima2.." W") end Partager ce message Lien à poster Partager sur d’autres sites
Fredmas 193 Signaler ce message Posté(e) 15 novembre 2021 il y a 7 minutes, 971jmd a dit : si je comprend bien, tu place les variables dans la fonction onInit qui remet à zéro à chaque démarrage clima = 0 function QuickApp:onInit() self:debug("onInit") idclim = 353 clima = 0 end J'ai simplement fait comme ça pour faire plus basique et simple. Tu gèreras tout seul plus tard la partie local, etc. Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 mai au final ça revient la même chose Partager ce message Lien à poster Partager sur d’autres sites
Fredmas 193 Signaler ce message Posté(e) 15 novembre 2021 (modifié) il y a 7 minutes, 971jmd a dit : voilà où j'en suis Je commence à comprendre pas mal de choses Et d'ailleurs juste histoire de compléter la discussion, si tu n'as aucun besoin de réutiliser cela ailleurs, tu devrais pouvoir écrire plus simplement : function QuickApp:onInit() self:debug("onInit") idclim = 353 idclim2 = 93 end function QuickApp:Raf1() self:updateView("power1", "text", "Climatiseur N°1 - "..fibaro.getValue(idclim, "energy").." W") self:updateView("power2", "text", "Climatiseur N°1 - "..fibaro.getValue(idclim2, "power").." W") end ` Mais bon, toi comme moi, nous n'en sommes pas encore au stade de l'optimisation mais de la compréhension et du fonctionnel Modifié 15 novembre 2021 par Fredmas Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 oui effectivement tu me l'avais déjà expliqué Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 Je viens de me rendre compte d'un gros problème bizarre avec les copier coller function QuickApp:onInit() self:debug("onInit") idclim = 353 idclim2 = 93 timeoutClim1 = 0 end si je tape timeoutClim1 pas de problème mai si je le copie et Colle problème le QA ne passe plus zero capoute Partager ce message Lien à poster Partager sur d’autres sites
Fredmas 193 Signaler ce message Posté(e) 15 novembre 2021 (modifié) Bon ben tu n'as plus qu'à taper pour te faire les doigts alors... Sinon tu copies colles d'abord dans un bloc note (ou TextEdit avec ton MacBook M1 veinard...) pour virer tout format de texte, puis tu colles dans ton navigateur Fibaro Modifié 15 novembre 2021 par Fredmas Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 pouuuu j'avais déjà essayé avec TextEdit et toujours pareil Partager ce message Lien à poster Partager sur d’autres sites
Fredmas 193 Signaler ce message Posté(e) 15 novembre 2021 Bon ben il te reste tes petits doigts... Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 voici le code erreur debug : syntax error near '<\194>' Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 Non là si je dois toi taper la main il me faudrait un écran de 100" J'ai jamais arrêté mes yeux explose Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 (modifié) Modifié 15 novembre 2021 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 tu c'est quoi je suis arrivé il fonctionne, tu avais raison de me dire que la QA soit avec moi Il me reste juste une petite chose que je n'arrive pas à faire c'est rafraîchir le bouton de rafraîchissement Partager ce message Lien à poster Partager sur d’autres sites
Fredmas 193 Signaler ce message Posté(e) 15 novembre 2021 Rafraichir le bouton de rafraichissement. Que veux-tu dire ? Que ça se fasse tout seul à intervalle régulier ? Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 (modifié) soit à intervalle régulier ou ce qui serait pas mal au changement d'état de la consommation supérieur ou différent de 0 if consommation >! 0 then ..... Modifié 15 novembre 2021 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 15 novembre 2021 (modifié) j'ai essayer un truc comme ça pour tester , bon ne rigole pas function azerty() myVariable = fibaro:getValue(idclim, 'power') if (myVariable >= '1') then self:debug("conso ok") end Modifié 15 novembre 2021 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites