-
Compteur de contenus
9 579 -
Inscription
-
Dernière visite
-
Jours gagnés
59
Tout ce qui a été posté par pepite
-
je commente pour suivre le post ;-) merciiii
-
le cote filaire est qd meme plus stable ;-)
-
ah oui, tres bonne remarque !! Faut certainement rajouter une variable pour que cela ne fasse qu'une fois, ou faire un test de la position du volet avant de le bouger. De cette facon, lorsque les 2 volets sont à la meme position, plus de soucis. Teste ce code et je vois la recup de la position du volet. J'ai pris 5 mins pour remodifier en rajoutant le test de la valeur du volet avant de le bouger ;-) Ca devrait le faire, en tout cas on s'approche de ton beosin --[[ %% properties 40 value 46 value %% globals --]] --- User Settings ------- local Volets = {40, 46} -- volets local Tempo = 10 -- Temporisation en secs, attente fin de course du volet déclencheur ---------------------------------- -- Limitation à 1 instance ------ if (fibaro:countScenes() > 1) then fibaro:abort() end ------------------------------- -- Declaration Variables ---- local source = fibaro:getSourceTrigger() local declencheur = source["deviceID"] local PositionVR ----- Declaration Fonctions ----------- function GetTrigger() for i = 1, #Volets do if (declencheur == Volets[i]) then PositionVR = fibaro:getValue(Volets[i], "value") fibaro:debug("Position du VR déclencheur : " ..PositionVR) return PositionVR end end end function CallVR() for i = 1, #Volets do if (declencheur ~= Volets[i]) then local Valeur = fibaro:getValue(Volets[i], "value") if (Valeur ~= PositionVR) then fibaro:call(Volets[i], "setValue", PositionVR) fibaro:debug("Volet Roulant modifié : " ..Volets[i].. " mis à la position - " ..PositionVR) end end end end ----------------------------------- --=========================== --- Execution Programme ----== --=========================== --- Recuperation du Trigger dans le debug ---- fibaro:debug("ID du Déclencheur : " ..declencheur) -- Attente fin de course du volet déclencheur puis Synchro autre volet setTimeout( function() GetTrigger() CallVR() end, Tempo*1000)
-
Salut @Tomy34 Merci à D-GK et jojo ;-) Ceci devrait fonctionner, à tester J'ai commenté un peu le code --[[ %% properties 40 value 46 value %% globals --]] --- User Settings ------- local Volets = {40, 46} -- volets local Tempo = 10 -- Temporisation en secs, attente fin de course du volet déclencheur ---------------------------------- -- Limitation à 1 instance ------ if (fibaro:countScenes() > 1) then fibaro:abort() end ------------------------------- -- Declaration Variables ---- local source = fibaro:getSourceTrigger() local declencheur = source["deviceID"] local PositionVR ----- Declaration Fonctions ----------- function GetTrigger() for i = 1, #Volets do if (declencheur == Volets[i]) then PositionVR = fibaro:getValue(Volets[i], "value") fibaro:debug("Position du VR déclencheur : " ..PositionVR) return PositionVR end end end function CallVR() for i = 1, #Volets do if (declencheur ~= Volets[i]) then fibaro:call(Volets[i], "setValue", PositionVR) fibaro:debug("Volet Roulant modifié : " ..Volets[i].. " mis à la position - " ..PositionVR) end end end ----------------------------------- --=========================== --- Execution Programme ----== --=========================== --- Recuperation du Trigger dans le debug ---- fibaro:debug("ID du Déclencheur : " ..declencheur) -- Attente fin de course du volet déclencheur puis Synchro autre volet setTimeout( function() GetTrigger() CallVR() end, Tempo*1000)
-
je dirais meme inc%+
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bonjour, Je dirais oui, et ta fonction dans ta ligne GEA est bien écrite. J'ai juste un doute, GEA est une scene et le "Net.FHttp" est pour les modules virtuels, pour les scenes plutôt net.HTTPClient()
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Test X4Vr De Gce Avec/sans Ipx
pepite a répondu à un(e) sujet de pepite dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
ah ui tiens nous au courant, ca m'interesse ;-) @Did a raison, oui c'est plus cher que les FGRM mais tu as encore l'IPX si tu peux encore tirer des cables ;-) Sinon, me souviens plus, il ne fait pas 24 V pour les Velux ? -
Bonjour messieurs, Exact @D-GK, tu as raison, la variable toto declarée que dans la fonction n'est connue que par la fonction @jojo, ton avis est toujours bon à prendre pour moi, mais oui D-GK m'a fait avancer ;-) J'ai ca en test en ce moment, ca a l'air pas mal, ce n'est pas pour moi c'est pour un membre du forum ;-) mais petite progression pour moi en mode fonction ;-) -- Limitation à 1 seule instance en cours ----- if (fibaro:countScenes() > 1) then fibaro:abort() end t = {46, 39} local source = fibaro:getSourceTrigger() local declencheur = source["deviceID"] local toto function GetTrigger() for i = 1, #t do if (declencheur == t[i]) then fibaro:debug("Trigger : " ..declencheur) toto = fibaro:getValue(40, "value") return toto end end end function GetValue() for i = 1, #t do if (declencheur ~= t[i]) then --fibaro:call(t[i], "setValue", toto) fibaro:setGlobal("FreeSms", toto) end end end GetTrigger() GetValue() fibaro:debug("toto : "..toto)
-
Sans la boucle je ne sais pas, mais ca me parait plus lourd a ecrire pour x valeurs d'un tableau. La fonction GetValue connaitra "toto" grace au return, sauf si je me trompe hihi
-
Excellente idee DGK Comme ceci ca vous semble correct ? local source = fibaro:getSourceTrigger() local declencheur = source["deviceID"] function GetTrigger() for i,v in ipairs(t) do if (declencheur == t[i]) then fibaro:debug("Trigger : " ..declencheur) local toto = fibaro:getValue(declencheur, "value") end return toto end end end function GetValue() for i,v in ipairs(t) do if (declencheur ~= t[i]) then fibaro:call(t[i], "setValue", toto) end end end
-
Juste enorme, mais c'est pas gagné la sortie ;-) Mais si seulement, adieu les batteries ;-)
-
Bonjour, Dans une scene, cela doit etre cela plutot : net.HTTPClient()
-
Suis pas inquiet, ca fait partie de ma progression LUA et la je seche ;-) et google n'est pas trop mon ami sur ce coup ;-) merci @jojo
-
Bonjour messieurs et mesdames, J'ai peut-etre pas posté au bon endroit hier alors un petit mess pour vous idre bonjour et aller jeter un oeil par là ;-) http://www.domotique-fibaro.fr/index.php/topic/8195-help-lua-table/#entry124802 Bonne journée à tous
-
Ai besoin de vous, je buggue, je ne sais pas faire. Dans l'entete %%properties a value b value Soit une table t = {a, b, c, y} Je recup le trigger local source = fibaro:getSourceTrigger() local declencheur = source["deviceID"] Dans une fonction, je compare le declencheur avec un element de la table function GetValue() for i,v in ipairs(t) do if (declencheur == t[i]) then local toto = fibaro:getValue(t[i], "value") fibaro:call(t[b] ou t[c] ou t[x], "setValue", toto) end end Si t["a"] est le declencheur, comment appeler dans le "call" les 3 autres, cad t["b"], t["c"] et t["y"] ? Je sais l'ecrire avec les IF sans etre dans une boucle, mais je voudrais l'ecrire un peu plus "pro" pour permettre de mettre autant de valeur que l'on veut dans la table L'idée est pour des volets, si 1 des volets change de valeur, synchroniser les autres à la meme valeur ;-)
-
moi je ne sais pas ;-)
-
ca depend peu-etre du firmware et ce n'est pas implémenté, ce qui expliquerait que cela n'apparaisse pas sur l'interface de la HC2 ? C'est quand même bizarre
-
oui j'ai bien vu. As tu essaye de change un autre booléen, comme armed ou dead ou fibaroalarm, par curiosité ;-)
-
oui, mais je ne comprends pas pourquoi le booléen ne se modifierait pas ?
-
Salut, Ca vient peut-etre de ta scene, partage ;-)
-
Salut, bizarre, mais il te manque un debug ou tu ne l'as pas mis volontairement ? Tu peux comparer avec le VD de @jojo pour le code, voire tester avec son VD. Tiens nous au courant http://www.domotique-fibaro.fr/index.php/topic/3839-modification-des-propri%C3%A9t%C3%A9s-dun-device/
-
En onduleur eaton 5P 850i. Eaton, du très bon ;-) Des news de ton retour ?
-
disparu..en mode sous-marin pour ne pas qu'on peste ;-)
-
j'ai pas compris ce que tu as fait avec ta tablette archos cathy ?
-
La scene ne se declenche que sur un changement de valeur de 40 ou 46, ce qui evite de la faire tourner tout le temps, ce qui explique les "id value" dans l'entete Donc pour que la scene parte et que le debug existe, il faut appuyer sur le bouton d'1 des volets ;-) cela signifie : -- si la scene se declenche par un changement de value, c'est a dire une propriete alors ...