Aller au contenu

Fredmas

Membres confirmés
  • Compteur de contenus

    906
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Fredmas

  1. Fredmas

    Questions de débutant en Quick Apps sur HC3

    Bon ben il te reste tes petits doigts...
  2. Fredmas

    Questions de débutant en Quick Apps sur HC3

    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
  3. Merci @Lazer Tu partages par simple plaisir d'offrir, ou tu as déjà craqué pour en commander un ?
  4. Fredmas

    Questions de débutant en Quick Apps sur HC3

    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
  5. Fredmas

    Questions de débutant en Quick Apps sur HC3

    J'ai simplement fait comme ça pour faire plus basique et simple. Tu gèreras tout seul plus tard la partie local, etc.
  6. Fredmas

    Questions de débutant en Quick Apps sur HC3

    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
  7. Fredmas

    Questions de débutant en Quick Apps sur HC3

    Ca va venir à force d'avancer, questionner et comprendre le fonctionnement
  8. Fredmas

    Questions de débutant en Quick Apps sur HC3

    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
  9. Fredmas

    Questions de débutant en Quick Apps sur HC3

    Ho purée tous les problèmes d'un coup Alors pour revenir à ton histoire de RESET, j'ai t'ai mis un code ce matin, voir plus haut dans ce fil. Pour ton updateView, tu confirmes ce que je pense. Ta variable CLIMA ne va se mettre à jour qu'au démarrage de ton QA, mais c'est tout. Si tu veux la mettre à jour automatiquement ou à la demande, il faut mettre une autre ligne de code ailleurs, bouton, boucle, etc. Ton updateView fait partie d'une fonction que tu n'appelles pas via un bouton, une autre fonction, ou une boucle. Soit tu fais un bouton qui appelle "conso1()" quand tu le souhaites. Tout dépend ton besoin. Soit tu appelles cette fonction "conso1()" ailleurs dans ton code. Soit tu fais autrement. De plus tu as 2 fonctions onInit() dans ton QA et il te manque des fin de code comme un END dans une fonction. Mais peut-être est-ce du au copier/coller. Quand tu lances ton QA (par exemple après sa sauvegarde), ta box lit ton code puis exécute la fonction onInit, mais c'est tout. Donc elle n'exécute pas ta fonction conso1() et donc ton updateView n'est pas mis à jour. Pour t'en rendre compte, et cela ne servira à rien d'autre tu peux essayer de : REMPLACER CA : local clim = 120 local clima = tostring(fibaro.getValue(clim, "power")) function QuickApp:conso1() self:debug(clima) self:updateView("power1", "text", "Climatiseur N°1 - "..clima. local clim = 128 function QuickApp:conso1() QuickApp.clima = (fibaro.getValue(clim, "power")) self:debug(self.clima) self:updateView("power2", "text", "Climatiseur N°2 - " ..self.clima.. " W") end function QuickApp:onInit() self:debug("onInit") end function QuickApp:onInit() self:debug("onInit") timeoutClim1 = 0 timeoutClim2 = 0 duration = 0 end PAR CA : local clim = 120 local clima = tostring(fibaro.getValue(clim, "power")) function QuickApp:conso1() self:debug(clima) self:updateView("power1", "text", "Climatiseur N°1 - "..clima.." W") end function QuickApp:onInit() self:debug("onInit") timeoutClim1 = 0 timeoutClim2 = 0 duration = 0 self:conso1() end Et avec l'appel de la fonction conso1 dans le onInit, tu verras qu'au lancement de ton QA (après la sauvegarde par exemple) ton label "power1" devrait se mettre à jour. Bon ce code ne répondra pas à ton besoin, mais devrait te montrer le fonctionnement. Une fois que ça fonctionne, tu pourras commencer à déplacer les bouts de codes pour que cela fasse ce que tu veux quand tu veux, automatiquement ou avec un bouton de mise à jour.
  10. Fredmas

    mon installation HC3

    Effectivement, chouette présentation détaillée Chose que je n'ai jamais pris le temps de faire d'ailleurs Ca donne des idées et permet de se projeter en comparant les difficultés de chacun liées aux différentes maisons et installations
  11. Fredmas

    Questions de débutant en Quick Apps sur HC3

    OK dans ce cas, et ne le prends pas mal stp car je ne connais pas ton niveau, es-tu conscient avec le code ci-dessus : - que la variable clima qui a l'air d'etre à la racine du QA ne sera mise à jour qu'au lancement du QA, pas une nouvelle fois plus tard ? - que ton updateView est écrit à l'intérieur d'une fonction, et donc il ne se mettra à jour que si tu appelles cette fonction via ton code ou via un bouton ? Mais pas tout seul. Ce deuxième point expliquerait pourquoi tu ne vois pas non plus le debug...
  12. Fredmas

    Questions de débutant en Quick Apps sur HC3

    Avec cette syntaxe : local clim = 120 local clima = tostring(fibaro.getValue(clim, "power")) function QuickApp:conso1() self:debug(clima) self:updateView("label122", "text", "Climatiseur N°1 - "..clima.." W") end Ton self:debug(clima) s'affiche comme tu veux dans la console ? Question bête mais tu es sur de ton ID "label122" ?
  13. Fredmas

    Hello

    Bonjour, et bienvenu sur ce très bon forum Bonne ambiance, grosse expertise pour certains, et partage du savoir pour la plupart  Au plaisir de te lire 
  14. Fredmas

    Questions de débutant en Quick Apps sur HC3

    Commence plus simple pour tester : local clim = 120 local clima = tostring(fibaro.getValue(clim, "power")) function QuickApp:conso1() self:debug(clima) self:updateView("label122", "text", "Climatiseur N°1 - "..clima.." W") end
  15. Fredmas

    Questions de débutant en Quick Apps sur HC3

    Comme ça par exemple : function QuickApp:onInit() self:debug("onInit") timeoutClim1 = 0 duration = 0 end function QuickApp:H2_S1_C1() duration = 10*1000 test1(self) end function QuickApp:H4_S1_C1() duration = 20*1000 test1(self) end function QuickApp:RESET_S1_C1() duration = 0 test1(self) end function QuickApp:ON24_S1_C1() fibaro.call(85, "turnOn") end function QuickApp:OFF_S1_C1() fibaro.call(85, "turnOff") end function test1(self) self:ON24_S1_C1() if timeoutClim1 > 0 then clearTimeout(timeoutClim1) timeoutClim1 = 0 end if duration > 0 then timeoutClim1 = setTimeout(function() self:OFF_S1_C1() end, duration) end end
  16. Fredmas

    Questions de débutant en Quick Apps sur HC3

    Oui Quel est l’objectif de ton bouton reset ? D’arrêter le ou les timer en cours et donc de passer à off non ?
  17. Fredmas

    Questions de débutant en Quick Apps sur HC3

    Normal, tu as gardé une seule variable timeoutClim pour les deux Essaie avec ça en remplaçant tes ID de lampes : function QuickApp:onInit() self:debug("onInit") timeoutClim1 = 0 timeoutClim2 = 0 duration = 0 end function QuickApp:buttonClim2() duration = 10*1000 test1(self) test2(self) end function QuickApp:buttonClim4() duration = 20*1000 test1(self) test2(self) end function QuickApp:ON24_S1_C1() fibaro.call(85, "turnOn") end function QuickApp:OFF_S1_C1() fibaro.call(85, "turnOff") end function QuickApp:ON24_S1_C2() fibaro.call(87, "turnOn") end function QuickApp:OFF_S1_C2() fibaro.call(87, "turnOff") end function test1(self) self:ON24_S1_C1() if timeoutClim1 > 0 then clearTimeout(timeoutClim1) timeoutClim1 = 0 end timeoutClim1 = setTimeout(function() self:OFF_S1_C1() end, duration) end function test2(self) self:ON24_S1_C2() if timeoutClim2 > 0 then clearTimeout(timeoutClim2) timeoutClim2 = 0 end timeoutClim2 = setTimeout(function() self:OFF_S1_C2() end, duration) end
  18. Fredmas

    salut

    Sans tomber dans la critique facile, malgré tout c'est tout de même ultra court comme présentation, alors simplement à mon tour, "salut", par politesse. Au risque de me tromper, ça donne l'impression de : "bon ben la présentation c'est fait, alors ne m'embêtez pas et laissez-moi poser mes questions pour qu'on m'aide rapidement... https://www.domotique-fibaro.fr/topic/55-bienvenue-sur-domotique-fibarofr/
  19. Fredmas

    Récupérer valeur dans un API

    Cool ça fonctionne alors Après comme je l'ai déjà dit, partant de zéro cette année concernant les QA (et le LUA d’ailleurs) j’apprends grâce à notre forum et mes plus grands formateurs techniques sont @Lazer et @jang alors j'ai peu de mérite. Mais j'essaie d'aider autant que je peux, quand je le peux
  20. Fredmas

    Récupérer valeur dans un API

    Oui normalement. Tu me diras, car je suis dans l'impro
  21. Fredmas

    Récupérer valeur dans un API

    Donc au final ça peut donner tout simplement ça sans tes variables : local clim = 375 function QuickApp:onInit() self:updateView("label1", "text", "version "..fibaro.getValue(clim, "firmwareUpdate").updateVersion) end
  22. Fredmas

    Récupérer valeur dans un API

    QuickApp.var2 = tostring(fibaro.getValue(clim, "firmwareUpdate")) QuickApp.var2 = var1.updateVersion A mon avis là il y a une erreur entre les var2 et var1. Ca devrait plutôt être : QuickApp.var1 = fibaro.getValue(clim, "firmwareUpdate") -- met la table "firmwareUpdate dans var1 QuickApp.var2 = tostring(var1.updateVersion) -- met la valeur "updateVersion" de la table var1 dans var2 Au passage, je pense que le tostring est inutile puisque les valeurs ont l'air d'être string dans la table, mais au moins on dira que tu es sûr... Sinon si tu écris ça : QuickApp.var2 = tostring(fibaro.getValue(clim, "firmwareUpdate").updateVersion) Ca devrait fonctionner également il me semble. Avec la même remarque précédente à propos du tostring...
  23. Fredmas

    Récupérer valeur dans un API

  24. Fredmas

    Récupérer valeur dans un API

    Un truc comme ça : var1 = fibaro.getValue(clim, "firmwareUpdate") var2 = var1.updateVersion print(var2) Ca donne quoi ?
  25. Fredmas

    Récupérer valeur dans un API

    Quand tu fais ça : QuickApp.clima2 = tostring(fibaro.getValue(clim, "deviceIcon")) Tu reçois bien : "70"
×