Aller au contenu

Appel de function d'une QuickApp dans une autre


Olinet

Messages recommandés

Il est simple d'appeler une function d'une QuickApp dans une autre, mais impossible de passer lui passer une valeur.

 

Exemple:

Dans une première QuickApp avec par exemple l'ID=100

 

function QuickApp:getTempAir()
    X = 2
  return  x
end

 

Dans une seconde QuickApp je veux recevoir le résultat

   

function QuickApp:Test()
   Y = fibaro.call(100,  "getTempAir") 
   print(Y) 
end

 

Dans cette exemple Y est toujours égal à nil

 

je ne comprends, pourtant aucune erreur de syntaxe

 

Merci de votre aide :-)

 

 

Lien vers le commentaire
Partager sur d’autres sites

Correctif : quand on appelle une fonction d'un QuickApp dans une autre, il est POSSIBLE de lui passer une valeur.
Ce n'est qui n'est PAS possible, c'est de récupérer une valeur de retour.

Du coup... pas sûr de bien comprendre ton besoin ?

Lien vers le commentaire
Partager sur d’autres sites

J'ai une première QuickApp qui a tous les paramètres d'une station météo stockés sous forme de différentes variables locales dans cette même QuickApp, dont la température.

 

J'aimerai connaitre cette Température et l'utiliser dans une seconde Quickapp

Lien vers le commentaire
Partager sur d’autres sites

tu as deux solutions :

1/ dans la première QA, tu stocke le résultat dans une variable, et dans le second tu lis la valeur de cette variable.

2/ La première QA appelle la seconde en passant les paramètres qu'il faut (c'est du push et pas du pull de la 2 depuis la 1)

Lien vers le commentaire
Partager sur d’autres sites

La façon la plus "propre" de faire ça, c'est en utilisant les fonctions natives de la HC3.
A savoir un QA parent avec des enfants, chaque enfant est du bon type (temperature sensor, humidity, wind, multilevel, etc....) pour porter chaque valeur dans sa propriété "value" avec la bonne unité dans "unit".
Comme ça tu as une intégration native dans l'interface Web et surtout dans l'application mobile, et enfin, tu peux utiliser les QA enfants comme des modules normaux dans tes différents scénarios, QA, etc...
En LUA, il n'y alors plus qu'à utiliser le hub.getValue() classique pour récupérer les valeurs dont tu as besoin.

 

PS : hub remplacer fibaro dans les versions récentes de firmware, mais les 2 sont valides.

  • Thanks 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...