c'est quoi le "ok" que tu passes comme argument aux fonctions ?
il n'y en a pas l'utilité !!
fait les enlever !
pour le print de la fonction résultat :
print(resultat())
et bien par exemple, j'ai une scène qui est déclenchée lors du passage à TRUE de tous mes FGMS;(j'ai tous les FGMS dans les conditions)
Si par exemple 2 FGMS passent à TRUE "simultanément", selon l'option de la scène :
- soit la première instance n'aura pas le temps de se terminer, et la deuxième instance se déroulera correctement.
- soit la première instance se termine, mais la deuxième ne sera pas exécutée
hello !
on en a déjà parlé, il me semble.
sur le HC3 il n'y a plus la notion d'instance de scène.
On peut grâce aux options de la scène, définir si la prochaine exécution annule et remplace la précédente, ou pas.
EDIT : dans ce dernier cas, la prochaine exécution sera tout simplement ignorée.
je rencontre certain cas bien précis où j'aurai bien aimé avoir la possibilité d'avoir plusieurs instances simultanément...
n'y a - t - il pas un moyen de pouvoir le faire ?
ou peut être d'une autre façon ?
Une autre approche ?
bien à vous !
le "do" fait partie de la fonction while.
c'est : while condition is true do. c'est comme ça.
ben dans la boucle while, tu places :
while i <= 50 do -- tant que i reste inférieur ou égal à 50
i = i + 1 -- on incrémente i
print(i)
if i >= 20 then
print("attention vous avez dépassées la barre de 20%")
break
end
end
j'ai mis volontairement 50 pour la condition du while, sinon ça sert à rien.
le "break" permet de sortir de la boucle, donc de ne pas continuer d'incrémenter
je pense que le module démarre la scène à chaque changement de sa valeur.
1,2,3...,48,49,50...
donc donc dans ce cas, pas besoin de boucle while true do. ça se prend les pieds dans le tapis...
Surtout que sur la HC2, tu peux avoir plusieurs instance de scène qui se lancent simultanément...
Ton second bout de code est ce qu'il faut faire.
Oui la division/multiplication est prioritaire sur les addition/soustraction Rappel de bon vieux cours d'école [emoji6] Envoyé de mon iPhone en utilisant Tapatalk Pro
y a le bon vieux manuel de fibaro :
https://manuals.fibaro.com/content/other/FIBARO_System_Lua_API.pdf
sinon parcourir le forum...
et passer beaucoup, beaucoup de temps à essayer... ça vaut le coup...
la fonction getValue ne renvoie une donnée de type "string" (chaîne de caractère) ?
essaye avec ça :
local a = tonumber(fibaro:getValue(33, "value")) -- valeur de la lampe salon
local b = tonumber(fibaro:getValue(452, "value")) ---valeur de la lampe ch enfant
local c = tonumber(fibaro:getValue(255, "value")) ---valeur de la lampe bureau
tonumber() converti les "string" en numérique...
"return", te permet de renvoyer une valeur.
dans l'exemple, on renvoie true ou false.
Qui peut être exploiter par la suite du programme.
Ce n'est pas obligatoire dans cette exemple.
ça peut être très utile pour des fonctions qui font des calculs.
tu passes les paramètres en argument et tu récupère le résultat.
exemple :
function Somme(a, b)
print("a = ", a)
print("b = ", b)
return (a + b)
end
print("Return = ", Somme(1, 2))
function functionA()
local a = fibaro:getValue(33, "value") -- valeur de la lampe salon
local b = fibaro:getValue(250, "value") ---valeur de la lampe ch enfant
local c = fibaro:getValue(255, "value") ---valeur de la lampe bureau
local MonRetour = false
if (b < a) and (c < a) then
MonRetour = true
else
MonRetour = false
end
return MonRetour
end
if functionA() == true then
--action 1 à faire
else
--action 2 à faire
end
un truc comme ça ?
il est possible de mettre les actions directement dans la fonction.
et du coup plus besoin de traiter le retour de la fonction...