Welcome to Domotique-fibaro

 

Inscrivez-vous maintenant pour accéder à toutes nos fonctionnalités. Une fois inscrit et connecté, vous serez en mesure de contribuer à ce site en soumettant votre propre contenu ou en répondant au contenu existant. Vous serez en mesure de personnaliser votre profil, de recevoir des points de réputation comme une récompense pour la soumission de contenu, tout en communiquant avec d'autres membres via votre boîte de réception privée, et bien plus encore! Ce message sera supprimé une fois que vous vous êtes connecté.

 

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

jjacques68

Problème algorithme LUA

Posté(e) (modifié)

Bonjour à tous,

 

J'ai un algorithme casse-tête :

 

Je souhaite dans une scène, qui peut être déclenchée par plusieurs VG, exécuter une fonction.

La fonction à exécuter est différente suivant le nom de la VG qui fait le déclenchement...

 

Voilà ce que j'ai fait, ça marche mais je trouve ça hyper compliqué !!!!! pour ce que c'est...

y a pas moyen de simplifier ??

--[[
%% properties
%% events
%% globals
VG1
VG2
--]]

local Trigger=fibaro:getSourceTrigger()

--variable Objet contenant les fonctions
local Objet = {
  VG1 = function (self)
    print("Fonction pour la VG1")  
  end,

  VG2 = function (self)
    print("Fonction pour la VG2")  
  end,
}

--variable contenant les Trigger et les actions associées
local VGTrigger = {
  ["VG1"] = Objet:VG1(),
  ["VG2"] = Objet:VG2(),
}

--execution de la fonction
pcall(VGTrigger[Trigger.varName])

merci à vous !!!

Modifié par jjacques68
plantage dans le copier/coller
0

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Pas simple en effet!!!

Voici ce que j'utilise pour le même résultat:

 

--[[
%% properties
%% events
%% globals
VG1
VG2
--]]

local Trigger=fibaro:getSourceTrigger()

if Trigger["varName"] == "VG1"
then
print("action pour la VG1")  
end

if Trigger["varName"] == "VG2"
then
print("action pour la VG2")  
end

 

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah ok vu comme ça :) je restais bloqué sur des fonctions je sais pas pourquoi :)


Envoyé de mon iPhone en utilisant Tapatalk Pro

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Le résultat est le même ;)

Mais ta solution fait : WAOUW le developpeur ;-)

0

Partager ce message


Lien à poster
Partager sur d’autres sites

:) oui en effet :) 

1

Partager ce message


Lien à poster
Partager sur d’autres sites