Aller au contenu

Questions de débutant en Quick Apps sur HC3


Messages recommandés

Posté(e) (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é par 971jmd
Posté(e) (modifié)

Non et il n’y a pas d’intérêt d’appeler ton onInit dans ce type de boucle selon moi.

 

:D 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 :P

La force je ne sais pas, mais que le QA soit avec toi :D

Modifié par Fredmas
Posté(e) (modifié)

:D 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 :D

 

donc voila 

 

Si je pouvais trouver quelqu'un ou entreprise pour me donner des cours 

 

 

Modifié par 971jmd
Posté(e) (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é par 971jmd
Posté(e)
Il y a 2 heures, 971jmd a dit :

:D 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

;):60:

 

 

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 :D

Ca va venir à force d'avancer, questionner et comprendre le fonctionnement  ;)

 

Posté(e)
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

 

 

Posté(e) (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é par 971jmd
Posté(e)

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

 

Posté(e)
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. ;)

Posté(e) (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 :D

Modifié par Fredmas
Posté(e)

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 
 
 
Posté(e) (modifié)

Bon ben tu n'as plus qu'à taper pour te faire les doigts alors... :2:

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é par Fredmas
Posté(e)

tu c'est quoi je suis arrivé il fonctionne, tu avais raison de me dire que la QA soit avec moi :D

 

Il me reste juste une petite chose que je n'arrive pas à faire c'est rafraîchir le bouton de rafraîchissement 

 

 

 

Posté(e)

:60:

 

Rafraichir le bouton de rafraichissement. Que veux-tu dire ? Que ça se fasse tout seul à intervalle régulier ?

Posté(e) (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é par 971jmd
Posté(e) (modifié)

j'ai essayer un truc comme ça pour tester ,

 

bon ne rigole pas :D

 

 

function azerty()
myVariable = fibaro:getValue(idclim, 'power'
if (myVariable >= '1')  then self:debug("conso ok"
 
end
Modifié par 971jmd
×
×
  • Créer...