speedoxx007 Posté(e) le 24 septembre 2016 Signaler Posté(e) le 24 septembre 2016 Hello J'aimerai enclencher et déclencher une zone d'alarme p.ex le Rez, quand on dort au 1er étage. J'ai une télécommande Nodon Octan et j'ai 2 doors Sensor et 1 Motion Sensore à armer et désarmer. Comment je peu faire en LUA ou Scène Bloc? Merci pour vos aides. Salutations Speedoxx007
MaxBlack Posté(e) le 24 septembre 2016 Signaler Posté(e) le 24 septembre 2016 Salut speedoxx007, Pas en état de rentrer dans les détails mais regarde le code ci dessous correspondant a mon installation. Un récepteur 4 canaux CAMES raccordé sur 2 FGS221 pour récupérer les actions des télécommandes. --[[ %% autostart %% properties 53 value 51 value 45 value %% globals --]] --SETTING local idA = 53 --Commande Portail G local idB = 55 --Portail G local idC = 51 --Commande Portail D local idD = 49 --Portail D local idE = 45 --Commande Alarme local idF = 47 --Voyant Alarme local idSms = 72 --Tempo local t1 = 2500 --tempo mini pour appui long --Alarme local sensors_garage = {57,127}; local sensors_garage_maison = {57,127,62,30}; --SCRIPT -- vérification que la scène n'est pas déjà en cours if (fibaro:countScenes() == 1) then -->fin du script --Commande Portail G if (tonumber(fibaro:getValue(idA, "value")) > 0 ) then fibaro:debug("Appui court : Commande Portail G") if fibaro:getGlobalValue("Alarme") == "OFF" then fibaro:call(idB, "turnOn") fibaro:debug("Portail G") end fibaro:sleep (1500) fibaro:call(idA, "turnOff") fibaro:call(idB, "turnOff") fibaro:sleep (1500) fibaro:abort() end --Commande Portail D if (tonumber(fibaro:getValue(idC, "value")) > 0 ) then fibaro:debug("Appui court : Commande Portail D") if fibaro:getGlobalValue("Alarme") == "OFF" then fibaro:call(idD, "turnOn") fibaro:debug("Portail D") end fibaro:sleep (1500) fibaro:call(idD, "turnOff") fibaro:call(idC, "turnOff") fibaro:sleep (1500) fibaro:abort() end --Commande Alarme if (tonumber(fibaro:getValue(idE, "value")) > 0 ) then fibaro:sleep (t1) if (tonumber(fibaro:getValue(idE, "value")) > 0 ) then --Appui long Commande Alarme if (fibaro:getGlobal("Alarme") == "OFF") then --Vérification aucun détecteur en alarme for i, v in ipairs (sensors_garage) do if ( tonumber(fibaro:getValue(tonumber(v), "value")) ~= 0 ) then -- Armement impossible --envoi sms fibaro:setGlobal("Sms", "Armement%20impossible") fibaro:call(idSms, "pressButton", "3") --envoi msg à all fibaro:debug("Armement impossible") fibaro:abort() end end --Armer zone garage for i, v in ipairs (sensors_garage) do fibaro:call(tonumber(v), "setArmed", "1"); end fibaro:debug("Détecteur garage armé") else --Vérification aucun détecteur en alarme for i, v in ipairs (sensors_garage_maison) do -- sensors_garage_maison if ( tonumber(fibaro:getValue(tonumber(v), "value")) ~= 0 ) then -- Armement impossible --envoi sms fibaro:setGlobal("Sms", "Armement%20impossible") fibaro:call(idSms, "pressButton", "3") --envoi msg à all fibaro:debug("Armement impossible") fibaro:abort() end end --Armer zone garage + maison for i, v in ipairs (sensors_garage_maison) do -- sensors_garage_maison fibaro:call(tonumber(v), "setArmed", "1"); end fibaro:debug("Détecteurs garage & maison armés") end else --Appui court Commande Alarme --Désarmer les détecteurs fibaro:debug("Appui court Commande Alarme") for i, v in ipairs (sensors_garage_maison) do fibaro:call(tonumber(v), "setArmed", "0"); end fibaro:debug("Détecteurs désarmés") end fibaro:call(idE, "turnOff") end --> vérification que la scène n'est pas déjà en cours end Tu dois pouvoir récupérer ce qui t’intéresse. Chez moi : appui court : désarme tous les détecteurs appui long : arme le garage appui long : arme garage + maison si garage déjà armé
speedoxx007 Posté(e) le 25 septembre 2016 Auteur Signaler Posté(e) le 25 septembre 2016 Merci pour le code, mais je suis encore un débutant dans les Codes LUA...
MaxBlack Posté(e) le 25 septembre 2016 Signaler Posté(e) le 25 septembre 2016 Ok, Moi aussi j'ai débuté il y a un an. Tu récupère des exemples de code et il faut les adapter a tes besoins. Ci-dessous le code que tu as peut être besoin en plus concernant les télécommandes nodon. Par contre, il faut rajouter les lignes concernant l'armement, dé-armement des 2 doors Sensor.... je ne les connais pas. Mon code fonctionne pour les motions sensors. Il faut également mettre le paramètre 3 (scène activation) à 1 de la télécommande nodon --[[ %% properties 137 sceneActivation %% globals --]] -- 137 correspond a l'id de ma télécommande --SETTING local sensors_rdc = {57,127}; --id des motion sensor --SCRIPT -- vérification que la scène n'est pas déjà en cours if (fibaro:countScenes() == 1) then -->fin du script local actions = { -- O [10] = function() fibaro:debug("appui simple B1") --Vérification aucun détecteur en alarme for i, v in ipairs (sensors_garage) do if ( tonumber(fibaro:getValue(tonumber(v), "value")) ~= 0 ) then -- Armement impossible fibaro:debug("Armement impossible") fibaro:abort() end end --Armer zone rdc for i, v in ipairs (sensors_rdc) do fibaro:call(tonumber(v), "setArmed", "1"); end --Rajouter ici le code pour armer les 2 doors Sensor fibaro:debug("Détecteur rdc armé") end, [11] = function() fibaro:debug("appui long relaché B1") end, [12] = function() fibaro:debug("appui long B1") end, [13] = function() fibaro:debug("double click B1")end, -- + [20] = function() fibaro:debug("appui simple B2") end, [21] = function() fibaro:debug("appui long relaché B2") end, [22] = function() fibaro:debug("appui long B2") end, [23] = function() fibaro:debug("double click B2") end, -- 0 [30] = function() fibaro:debug("appui simple B3") --Désarmer les détecteurs for i, v in ipairs (sensors_rdc) do fibaro:call(tonumber(v), "setArmed", "0"); end --Rajouter ici le code pour armer les 2 doors Sensor fibaro:debug("Détecteurs rdc désarmés") end, [31] = function() fibaro:debug("appui long relaché B3") end, [32] = function() fibaro:debug("appui long B3") end, [33] = function() fibaro:debug("double click B3") end, -- - [40] = function() fibaro:debug("appui simple B4") end, [41] = function() fibaro:debug("appui long relaché B4") end, [42] = function() fibaro:debug("appui long B4") end, [43] = function() fibaro:debug("double click B4") end, } local action = tonumber(fibaro:getValue(137, "sceneActivation")) actions[action]()
Messages recommandés