971jmd Posté(e) le 15 février 2015 Signaler Posté(e) le 15 février 2015 bonjour a tous je cherche à faire varier une lampe ID10 par rapport a la position d'un volet roulant. code LUA --[[ %% properties 145 value 10 value %% globals --]] local ID1 = 145 local value2 = fibaro:getValue(ID1, 'value'); ---affiche information sur la valeur ID10 local A = fibaro:getValue(ID1, 'value'); fibaro:debug('Volet du bar ouvert ' .. A .. " %" ) ---Si variable (value2) sup à 10 augmentée la lampe ID10 de 10% if (tonumber(value2) >= 10) then fibaro:call(10, 'setValue', '10') ---Si variable (value2) sup à 20 augmentée la lampe ID10 de 20% if (tonumber(value2) >= 20) then fibaro:call(10, 'setValue', '20') ---Si variable (value2) sup à 30 augmentée la lampe ID10 de 30% if (tonumber(value2) >= 30) then fibaro:call(10, 'setValue', '30') ---Si variable (value2) sup à 40 augmentée la lampe ID10 de 40% if (tonumber(value2) >= 40) then fibaro:call(10, 'setValue', '40') ---Si variable (value2) sup à 50 augmentée la lampe ID10 de 50% if (tonumber(value2) >= 50) then fibaro:call(10, 'setValue', '50') ---- etc end
jojo Posté(e) le 15 février 2015 Signaler Posté(e) le 15 février 2015 Quelle est la question ? ne faudrait-il pas mettre un end après chaque if ? au lieu de 1 pour "tous" àla fin ?
trainkill666 Posté(e) le 15 février 2015 Signaler Posté(e) le 15 février 2015 un version un peu simplifiée, mais non testée car je n'ai pas de volet électrique : --[[ %% properties 145 value 10 value %% globals --]] local ID1 = 145 local value2 = fibaro:getValue(ID1, 'value'); ---affiche information sur la valeur ID10 fibaro:debug('Volet du bar ouvert ' .. value2 .. " %" ) fibaro:call(10, 'setValue', math.floor(value2)) 1
jojo Posté(e) le 15 février 2015 Signaler Posté(e) le 15 février 2015 effectivement, c'est beaucoup plus rationnel étant donné que tu veux allumer ta lampe au même niveau que tes volets sont fermés => beaucoup plus efficace car pas de tests
Berale64 Posté(e) le 15 février 2015 Signaler Posté(e) le 15 février 2015 Dans la première version mettre "elseif" Et devant math.floor peut être un tostring.
971jmd Posté(e) le 15 février 2015 Auteur Signaler Posté(e) le 15 février 2015 je n,ai pas de soucie avec le début du code --[[ %% properties 145 value 10 value %% globals --]] local ID1 = 145 local value2 = fibaro:getValue(ID1, 'value'); ---affiche information sur la valeur ID10 local A = fibaro:getValue(ID1, 'value'); fibaro:debug('Volet du bar ouvert ' .. A .. " %" )
trainkill666 Posté(e) le 15 février 2015 Signaler Posté(e) le 15 février 2015 @Berale 24 : oui, c mieux avec le tostring --[[ %% properties 145 value 10 value %% globals --]] local ID1 = 145 local value2 = tostring(math.floor(fibaro:getValue(ID1, 'value'))); ---affiche information sur la valeur ID10 fibaro:debug('Volet du bar ouvert ' .. value2 .. " %" ) fibaro:call(10, 'setValue', value2)
971jmd Posté(e) le 15 février 2015 Auteur Signaler Posté(e) le 15 février 2015 oui ça fonctionne, mai j'ai oublier de vous précisé que je souhaite que la lampe vari automatiquement quand le volet fonctionne . la lampe doit récupéré la valeur du volet en temps réelle
971jmd Posté(e) le 15 février 2015 Auteur Signaler Posté(e) le 15 février 2015 Faudrait savoir si le module FGS222 envoie en temps réel sa potion, comme un encodeur. et comment récupérer cette valeur
trainkill666 Posté(e) le 15 février 2015 Signaler Posté(e) le 15 février 2015 Si je ne me trompe pas l'ID de ton volet est 145, tu as déclaré cet ID dans --[[ %% properties 145 value A chaque modification de "value" du volet (si c'est bien "value qui détermine la position du volet), la scène sera lancée. Donc à chaque fois que le volet change de position ta lumière prendra la bonne valeur. C'est du temps réel . Ce lien explique en partie le principe il me semble : http://domotique-home.fr/fonction-fibarogetsourcetrigger/ Pour le FGS222, je n'en ai pas donc je ne sais pas pour le réglage à effectuer afin d'avoir un retour.
971jmd Posté(e) le 16 février 2015 Auteur Signaler Posté(e) le 16 février 2015 merci encore pour votre aide j'ai réaliser le teste et le résultat sur ID145 : [DEBUG] 07:24:40: Autre cas mai j'ai pas tout à fait compris la fonction fibaro:getSourceTrigger si je comprend bien le FGRM222 n'envois pas de valeur en temps réelle
trainkill666 Posté(e) le 16 février 2015 Signaler Posté(e) le 16 février 2015 Je pense surtout que j'explique mal car je suis débutant tout comme toi . Voici un extrait d'une page web de http://blog.domadoo.fr/2014/02/26/creation-de-scenarios-blocs-graphiques-et-lua-avec-le-home-center-2/ ----------------------------------------------------------- - Déclenchement automatique d’un module :Si vous mettez en place une commande d’un module, celle-ci sera réalisée manuellement (c’est vous qui devrez activer le scénario pour que vos modules réalisent les actions définies). Pour mettre en place un déclenchement automatique en fonction d’un événement, vous devez ajouter dans l’entête le numéro ID de votre module servant de déclencheur (Trigger) suivi de « Value ». Par exemple, vous souhaitez que le chauffage de votre salon soit déclenché automatiquement si vous ouvrez la fenêtre… pour éviter des dépenses inutiles. Le module commandant votre chauffage a un numéro ID de 53, le module détecteur d’ouverture de fenêtre a un numéro ID de 86. Vous devez tout d’abord créer votre entête sans oublier d’ajouter le numéro ID du détecteur suivi de « Value » : –[[%% properties 86 Value %% globals--]] ----------------------------------------------------------- ou ce lien : http://tutoriels.domotique-store.fr/content/76/133/fr/lua-sur-hc2-declencher-des-scenes-avec-les-boutons-s1_s2-relies-aux-micro_modules-fibaro-fgd211-et-fgrm222.html Pour le paramètrage, je n'ai pas ce module donc je ne peux pas t'aider plus : http://tutoriels.domotique-store.fr/content/10/107/fr/parametres-du-micro_module-fibaro-fgrm_221-_-fgrm_222.html 1
pepite Posté(e) le 16 février 2015 Signaler Posté(e) le 16 février 2015 le 145 value dans les properties signifie que : - la HC2 "surveille" si le "145" est en fonctionnement ou non. Des qu'il fonctionne, cela va declencher ton call SI NON : il ne se passe rien. En fait le 145 value est le DECLENCHEUR de la scene, pour toi cela declenche la variation de la lampe
trainkill666 Posté(e) le 16 février 2015 Signaler Posté(e) le 16 février 2015 Oui c'est ça Pour être plus précis il "surveille" chaque changement d'état. A chaque changement, la scène se lance, ce qui fait varier l'intensité de la lampe selon la position envoyé par le module volet (si celui-ci est bien paramétré). Tu peux également lancer une scène comme l'exemple dans un des liens que je t'ai donné (http://tutoriels.dom...et-fgrm222.html) en appuyant sur l'un des interrupteurs du volet en mettant : --[[ %% properties 146 sceneActivation %% globals --]] 146 étant l'ID de l'interrupteur, c'est un exemple car je ne le connais pas. Mais pour ça il faut régler le paramètre 50 du module pour activer la fonction. J'avoue avoir un mauvais retour car mon FGS211 (un ancêtre du tien) a toujours été capricieux avec la HC2. Je l'ai retiré car je n'avais pas de retour d'état, alors qu'il fonctionnais correctement avec ma Zipabox.
Messages recommandés