Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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é
Posté(e)

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]()


×
×
  • Créer...