CASINOS Posté(e) le 1 mai 2014 Signaler Posté(e) le 1 mai 2014 Bonjour Je débute et ais des problème en LUA avec les signes La fonction ci-dessous fonctionne parfaitement si je ne prends que la première valeur mais je n'arrive pas a cumuler les conditions if sans message d'erreur avec les signes en trop ou manquants Merci par avance pour votre aide --[[ %% properties 54 value 83 value 82 value %% globals --]] if ( ( tonumber(fibaro:getValue(54, "value")) > 0 ) then message2 = ("Bonjour Lumiere cuisine est allume . . .|") and ( tonumber(fibaro:getValue(83, "value")) > 0 ) then message = ("Bonjour Lumiere du mur est allume . . .|") and ( tonumber(fibaro:getValue(82, "value")) > 0 ) then message3 = (" Lumiere chambre est allume . . .|") ) message4 = message.."et "..message2.."et "..message3.." fibaro:setGlobal("SonosTTSBUREAU", "lng=fr|dr=auto|vol=65|txt="..message4..". . .|"); fibaro:sleep(60*1000) end end end
Shad Posté(e) le 1 mai 2014 Signaler Posté(e) le 1 mai 2014 Regarde ici http://www.domotique-fibaro.fr/index.php/topic/194-lua-le%C3%A7on-2-%E2%80%93-association-de-modules/#entry1147 Si tu comprend pas dis le moi.
CASINOS Posté(e) le 1 mai 2014 Auteur Signaler Posté(e) le 1 mai 2014 Merci Ca m'a aider a mieux comprendre ci-dessous si cela peux servir a certain mon code final (chaque "value" étant des contact de porte --[[ %% properties 28 value 31 value 50 value 47 value 21 value 25 value %% globals --]] if ( tonumber(fibaro:getValue(25, "value")) > 0 ) then fibaro:setGlobal("EtatFenetreChambr",'Fenetre chambre .....!'); -- 25 l'ID fenetre chambre message1 = fibaro:getGlobalValue("EtatFenetreChambr") else message1 = ("") end if ( tonumber(fibaro:getValue(21, "value")) > 0 ) then fibaro:setGlobal("EtatFenetreBureau",'Fenetre bureau .....!'); -- 21 l'ID fenetre bureau message2 = fibaro:getGlobalValue("EtatFenetreBureau") else message2 = ("") end if ( tonumber(fibaro:getValue(28, "value")) > 0 ) or ( tonumber(fibaro:getValue(31, "value")) > 0 ) then fibaro:setGlobal("EtatFenetreCuisin",'Fenetre cuisine .....!'); -- 50 l'ID fenetre salon gauche message4 = fibaro:getGlobalValue("EtatFenetreCuisin") else message4 = ("") end if ( tonumber(fibaro:getValue(50, "value")) > 0 ) or ( tonumber(fibaro:getValue(47, "value")) > 0 ) then fibaro:setGlobal("EtatFenetreSalon",'Fenetre salon .....!'); -- 50 l'ID fenetre salon gauche message6 = fibaro:getGlobalValue("EtatFenetreSalon") else message6 = ("") end fibaro:setGlobal("SonosTTSBUREAU", "lng=fr|dr=auto|vol=65|txt="..message4..""..message6..""..message2..""..message1..". . .|"); fibaro:sleep(5*1000)
Steven Posté(e) le 10 mai 2014 Signaler Posté(e) le 10 mai 2014 En propre et optimisé cela donne --[[ %% properties 28 value 31 value 50 value 47 value 21 value 25 value %% globals --]] local message = "" -- 25 l'ID fenetre chambre if ( tonumber(fibaro:getValue(25, "value")) > 0 ) then message = message .. "Fenetre chambre .....!" end -- 21 l'ID fenetre bureau if ( tonumber(fibaro:getValue(21, "value")) > 0 ) then message = message .. "Fenetre bureau .....!" end -- 28 l'ID ....... if ( tonumber(fibaro:getValue(28, "value")) > 0 ) or ( tonumber(fibaro:getValue(31, "value")) > 0 ) then message = message .. "Fenetre cuisine .....!" end -- 50 l'ID fenetre salon gauche if ( tonumber(fibaro:getValue(50, "value")) > 0 ) or ( tonumber(fibaro:getValue(47, "value")) > 0 ) then message = message .. "Fenetre salon .....!" end fibaro:setGlobal("SonosTTSBUREAU", "lng=fr|dr=auto|vol=65|txt="..message..". . .|")
CASINOS Posté(e) le 11 mai 2014 Auteur Signaler Posté(e) le 11 mai 2014 effectivement : clair, simple et concis Bravo
Messages recommandés