Aller au contenu
Fredric

Action Suite À Alerte

Recommended Posts

J'ai fait une  scène pour avoir des actions et notifications personnalisé pour chaque capteur. donc, dés l'ouverture ou la mise en alerte un capteur, une série d'action ce met en route.

si je fais X scène comme celle-ci, une par capteur, pas de problème, cela fonctionne.

 

Mais pour un soucis de clarté et pour toutes les raisons que vous connaissez bien, je voulais rassembler ces X scènes en une.

 

Dés que mets plus d'un capteur et que un des capteur est en alerte, cela ne s'arrête pas, les messages et autres continus à  être envoyé et cela, même si je désactive le ou les capteurs.

 

Ou est mon erreur?, car c'est sur, c'est moi qui me plante....

 

scène qui marche seul:

--[[
%% properties
111 value
111 armed
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
 if   (tonumber(fibaro:getValue(111, "value")) > 0 and tonumber(fibaro:getValue(111, "armed")) > 0)  --Bureau
 or
 (startSource["type"] == "other")
 
 then  
	fibaro:call(153, "pressButton", "11"); --Pushover
	fibaro:call(53, "sendDefinedPushNotification", "14");
	fibaro:call(2, "sendDefinedEmailNotification", "14");
	fibaro:call(58, "sendDefinedPushNotification", "14");
	fibaro:call(62, "sendDefinedPushNotification", "14");
	--fibaro:call(100, "turnOn");         --activation sirène
	fibaro:call(139, "pressButton", "6"); --Message Sarah
	fibaro:call(74, "sendPhotoToUser", "2"); --capture garage
	fibaro:call(162, "pressButton", "1"); --enregistrement video on
	fibaro:sleep(300000);                 --enregistrement de 5 min
	fibaro:call(162, "pressButton", "2"); --stop enregistrement
	fibaro:sleep(3000);                   --Pause 3 second
	fibaro:call(28, "turnOn");            --Allume la lumiere de la Salle de BAIN
	fibaro:sleep(177000);				  --Pause 3 min
	fibaro:call(28, "turnOff");           --Eteint la lumiere de la salle de bain
end

là ...ça marche plus  :(

--[[
%% properties
111 value
111 arme
157 value
157 armed
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
 if   (tonumber(fibaro:getValue(111, "value")) > 0 and tonumber(fibaro:getValue(111, "armed")) > 0)  --Bureau
 or
 (startSource["type"] == "other")
 
 then  
	fibaro:call(153, "pressButton", "11"); --Pushover
	fibaro:call(53, "sendDefinedPushNotification", "14");
	fibaro:call(2, "sendDefinedEmailNotification", "14");
	fibaro:call(58, "sendDefinedPushNotification", "14");
	fibaro:call(62, "sendDefinedPushNotification", "14");
	--fibaro:call(100, "turnOn");         --activation sirène
	fibaro:call(139, "pressButton", "6"); --Message Sarah
	fibaro:call(74, "sendPhotoToUser", "2"); --capture garage
	fibaro:call(162, "pressButton", "1"); --enregistrement video on
	fibaro:sleep(300000);                 --enregistrement de 5 min
	fibaro:call(162, "pressButton", "2"); --stop enregistrement
	fibaro:sleep(3000);                   --Pause 3 second
	fibaro:call(28, "turnOn");            --Allume la lumiere de la Salle de BAIN
	fibaro:sleep(177000);				  --Pause 3 min
	fibaro:call(28, "turnOff");           --Eteint la lumiere de la salle de bain
	
elseif   (tonumber(fibaro:getValue(157, "value")) > 0 and tonumber(fibaro:getValue(157, "armed")) > 0)  --Fenetre Cuisine
 or
 (startSource["type"] == "other")
 
then
	fibaro:call(153, "pressButton", "6"); --Pushover
	fibaro:call(53, "sendPush", "Attention: La fenêtre de la cuisine est ouverte");
	fibaro:call(2, "sendEmail", "Attention: La fenêtre de la cuisine est ouverte");
	fibaro:call(58, "sendPush", "Attention: La fenêtre de la cuisine est ouverte");
	fibaro:call(62, "sendPush", "Attention: La fenêtre de la cuisine est ouverte");
	--fibaro:call(100, "turnOn");
	fibaro:call(139, "pressButton", "10"); --Message Sarah
	fibaro:call(72, "turnOn");            --allume lumiere salon
	fibaro:call(132, "turnOn");           --allume lumiere cuisine
	fibaro:call(73, "sendPhotoToUser", "25"); --Capture ADVANCE
	fibaro:sleep(3000);
	fibaro:call(69, "sendPhotoToUser", "25"); --capture ROVIO
	fibaro:sleep(120000);
	fibaro:call(72, "turnOff");           --eteint lumiere salon
	fibaro:call(132, "turnOff");          --eteint lumiere cuisine
	
end

Partager ce message


Lien à poster
Partager sur d’autres sites

As tu essayé en enlevant le "elseif" ?

--[[
%% properties
111 value
111 arme
157 value
157 armed
%% globals
--]]

local startSource = fibaro:getSourceTrigger();

 if   (tonumber(fibaro:getValue(111, "value")) > 0 and tonumber(fibaro:getValue(111, "armed")) > 0)  --Bureau
 or
 (startSource["type"] == "other")
 then  
	fibaro:call(153, "pressButton", "11"); --Pushover
	fibaro:call(53, "sendDefinedPushNotification", "14");
	fibaro:call(2, "sendDefinedEmailNotification", "14");
	fibaro:call(58, "sendDefinedPushNotification", "14");
	fibaro:call(62, "sendDefinedPushNotification", "14");
	--fibaro:call(100, "turnOn");         --activation sirène
	fibaro:call(139, "pressButton", "6"); --Message Sarah
	fibaro:call(74, "sendPhotoToUser", "2"); --capture garage
	fibaro:call(162, "pressButton", "1"); --enregistrement video on
	fibaro:sleep(300000);                 --enregistrement de 5 min
	fibaro:call(162, "pressButton", "2"); --stop enregistrement
	fibaro:sleep(3000);                   --Pause 3 second
	fibaro:call(28, "turnOn");            --Allume la lumiere de la Salle de BAIN
	fibaro:sleep(177000);				  --Pause 3 min
	fibaro:call(28, "turnOff");           --Eteint la lumiere de la salle de bain
end	

if   (tonumber(fibaro:getValue(157, "value")) > 0 and tonumber(fibaro:getValue(157, "armed")) > 0)  --Fenetre Cuisine
 or
 (startSource["type"] == "other") 
then
	fibaro:call(153, "pressButton", "6"); --Pushover
	fibaro:call(53, "sendPush", "Attention: La fenêtre de la cuisine est ouverte");
	fibaro:call(2, "sendEmail", "Attention: La fenêtre de la cuisine est ouverte");
	fibaro:call(58, "sendPush", "Attention: La fenêtre de la cuisine est ouverte");
	fibaro:call(62, "sendPush", "Attention: La fenêtre de la cuisine est ouverte");
	--fibaro:call(100, "turnOn");
	fibaro:call(139, "pressButton", "10"); --Message Sarah
	fibaro:call(72, "turnOn");            --allume lumiere salon
	fibaro:call(132, "turnOn");           --allume lumiere cuisine
	fibaro:call(73, "sendPhotoToUser", "25"); --Capture ADVANCE
	fibaro:sleep(3000);
	fibaro:call(69, "sendPhotoToUser", "25"); --capture ROVIO
	fibaro:sleep(120000);
	fibaro:call(72, "turnOff");           --eteint lumiere salon
	fibaro:call(132, "turnOff");          --eteint lumiere cuisine	
end

Partager ce message


Lien à poster
Partager sur d’autres sites

oui et les capteurs qui suivent les deux premiers ne déclenchent pas la scènes.

Partager ce message


Lien à poster
Partager sur d’autres sites

Et en rajoutant au départ : 

if (fibaro:countScenes() > 1) then fibaro:abort() end;
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Déjà  je suis étonné que sa première scène fonctionne sans problème sa devrait marcher en boucle.

Tiens j'ai pas testé mais essaye un truc comme sa

--[[
%% properties
111 value
111 armed
157 value
157 armed
%% globals
--]]

local sensor1 = 111;
local sensor2 = 157;

-- Function Notification
function fNotif (pnotif, value)
  idUsers = {"2", "53", "58", "62"};
  if (pnotif == "defined") then
    for i=1, #idUsers do
      fibaro:call(idUsers[i], "sendDefinedPushNotification", value);
  elseif (pnotif == "custom") then
    for i=1, #idUsers do
      fibaro:call(idUsers[i], "sendPush", value);
  end
end  
 
local startSource = fibaro:getSourceTrigger();
-- Bureau
if ((startSource['deviceID']==tostring(sensor1)) and (tonumber(fibaro:getValue(111, "value")) > 0) and (tonumber(fibaro:getValue(111, "armed")) > 0)) then
  fibaro:call(153, "pressButton", "11"); --Pushover
  fNotif(defined, 14);
  --fibaro:call(100, "turnOn"); --activation sirène
  fibaro:call(139, "pressButton", "6"); --Message Sarah
  fibaro:call(74, "sendPhotoToUser", "2"); --capture garage
  fibaro:call(162, "pressButton", "1"); --enregistrement video on
  fibaro:sleep(300000); --enregistrement de 5 min
  fibaro:call(162, "pressButton", "2"); --stop enregistrement
  fibaro:sleep(3000); --Pause 3 second
  fibaro:call(28, "turnOn"); --Allume la lumiere de la Salle de BAIN
  fibaro:sleep(177000);    --Pause 3 min
  fibaro:call(28, "turnOff"); --Eteint la lumiere de la salle de bain

-- Fenetre Cuisine
elseif ((startSource['deviceID']==tostring(sensor2)) and (tonumber(fibaro:getValue(157, "value")) > 0) and (tonumber(fibaro:getValue(157, "armed")) > 0)) then
  fibaro:call(153, "pressButton", "6"); --Pushover
  fNotif(custom, Attention: La fenêtre de la cuisine est ouverte);
  --fibaro:call(100, "turnOn");
  fibaro:call(139, "pressButton", "10"); --Message Sarah
  fibaro:call(72, "turnOn"); --allume lumiere salon
  fibaro:call(132, "turnOn"); --allume lumiere cuisine
  fibaro:call(73, "sendPhotoToUser", "25"); --Capture ADVANCE
  fibaro:sleep(3000);
  fibaro:call(69, "sendPhotoToUser", "25"); --capture ROVIO
  fibaro:sleep(120000);
  fibaro:call(72, "turnOff"); --eteint lumiere salon
  fibaro:call(132, "turnOff"); --eteint lumiere cuisine
end
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

je vais essayer de suite, j'ai essayé autre chose qui ressemble àça mais cela ne fonctionné pas, je test avec ton idée.

  if   (tonumber(fibaro:getValue(111, "value")) == 0 and tonumber(fibaro:getValue(111, "armed")) == 0) then
fibaro:killScenes(64)
	

Partager ce message


Lien à poster
Partager sur d’autres sites

alors, je viens d'essayer la ligne de Phil cela ne fonctionne pas, j'essai le code de Shad  ;)  

Partager ce message


Lien à poster
Partager sur d’autres sites

j'avais cette erreur, j'ai rajouté un end ligne 19  

[ERROR] 17:00:25: line 19: 'end' expected (to close 'for' at line 17) near 'elseif'

maintnent j'ai cette erreur, mais là , je trouve pas  :huh:
[ERROR] 17:01:50: line 46: function arguments expected near 'fen'
 
 
ok, j'ai trouvé pour cette erreur, il manqué les guillemet.
 
plus de message d'erreur de débug mais la scène ne se éclanche pas 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci à  vous deux  ;)

ça à  l'air de fonctionner comme ça:

--[[
%% properties
111 value
111 armed
157 value
157 armed
%% globals
--]]
 
local sensor1 = 111;
local sensor2 = 157;
 
-- Function Notification
function fNotif (pnotif, value)
  idUsers = {"2", "53", "58", "62"};
  if (pnotif == "defined") then
    for i=1, #idUsers do
      fibaro:call(idUsers[i], "sendDefinedPushNotification", value);
  end
    elseif (pnotif == "custom") then
    for i=1, #idUsers do
      fibaro:call(idUsers[i], "sendPush", value);
end
 end
    
end  
local startSource = fibaro:getSourceTrigger();
-- Bureau
if ((startSource['deviceID']==tostring(sensor1)) and (tonumber(fibaro:getValue(111, "value")) > 0) and (tonumber(fibaro:getValue(111, "armed")) > 0)) then
  fibaro:call(153, "pressButton", "11"); --Pushover
  fNotif(defined, 14);
  --fibaro:call(100, "turnOn"); --activation sirène
  fibaro:call(139, "pressButton", "6"); --Message Sarah
  fibaro:call(74, "sendPhotoToUser", "2"); --capture garage
  fibaro:call(162, "pressButton", "1"); --enregistrement video on
  fibaro:sleep(300000); --enregistrement de 5 min
  fibaro:call(162, "pressButton", "2"); --stop enregistrement
  fibaro:sleep(3000); --Pause 3 second
  fibaro:call(28, "turnOn"); --Allume la lumiere de la Salle de BAIN
  fibaro:sleep(177000);    --Pause 3 min
  fibaro:call(28, "turnOff"); --Eteint la lumiere de la salle de bain
 
-- Fenetre Cuisine
elseif ((startSource['deviceID']==tostring(sensor2)) and (tonumber(fibaro:getValue(157, "value")) > 0) and (tonumber(fibaro:getValue(157, "armed")) > 0)) then
  fibaro:call(153, "pressButton", "6"); --Pushover
  fNotif(custom, "Attention: La fenêtre de la cuisine est ouverte");
  --fibaro:call(100, "turnOn");
  fibaro:call(139, "pressButton", "10"); --Message Sarah
  fibaro:call(72, "turnOn"); --allume lumiere salon
  fibaro:call(132, "turnOn"); --allume lumiere cuisine
  fibaro:call(73, "sendPhotoToUser", "25"); --Capture ADVANCE
  fibaro:sleep(3000);
  fibaro:call(69, "sendPhotoToUser", "25"); --capture ROVIO
  fibaro:sleep(120000);
  fibaro:call(72, "turnOff"); --eteint lumiere salon
  fibaro:call(132, "turnOff"); --eteint lumiere cuisine
end
      

je rajoute mes autres capteurs et je test en complet.

encore une fois, Shad, un code à  toi dans ma box, je vais finir par l'appeler "la Shad Box"  :lol:

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

mdr, mais si tu fonctionne comme sa pour tout tes capteurs, tu devrais faire une fonction pour la procédure a faire.

Ce sera plus facile pour évoluer tout ce petit mode, et moins de place ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

disons que pour moi, le code c'est loin, et j'étais même pas trop bon à  l’époque, heureusement que ce n’était pas primordial pour les examens. :mellow:

j'en ai jamais eu besoin après dans mon métier, alors... :rolleyes:

ça ta pris 5 min pour faire ce code, ça m'a pris la matinée pour faire m'a "dobe"  :P, tout est dit :wacko:

mais j'essais quand même avant de demander de l'aide,depuis 10h ce matin jusqu’à  15h, j'avais un peu envie de taper sur ma box  :13:

 

je vais quand même te poser deux questions pour essayer de comprendre, si tu veux bien, biensà»r  ;)

 pourquoi la local sensor?

local sensor1 =

je comprends pas cette ligne, je connais pas surtout.

((startSource['deviceID']==tostring(sensor1)) 

c'est une super idée la fonction fNotif  :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

Cette local te permet de gérer directement tes id des devices sans avoir àles cherché dans ton script.

Et la ligne que tu ne comprend pas est quand la porte s'ouvre ou ce ferme ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vais pas poster le code en entier, c’est pas utile, il suffit de rajouter les capteurs et les fonctions que l'on veut les un derrière les autres.

--[[
%% properties
47 value
47 armed
111 value
111 armed
157 value
157 armed
%% globals
--]]
 
local sensor1 = 111;
local sensor2 = 157;
local sensor3 = 47;

        
-- Function Notification
function fNotif (pnotif, value)
  idUsers = {"2", "53", "58", "62"};
  if (pnotif == "defined") then
    for i=1, #idUsers do
      fibaro:call(idUsers[i], "sendDefinedPushNotification", value);
  end
    elseif (pnotif == "custom") then
    for i=1, #idUsers do
      fibaro:call(idUsers[i], "sendPush", value);
    end
 end
    
end  
local startSource = fibaro:getSourceTrigger();
-- Bureau
if ((startSource['deviceID']==tostring(sensor1)) and (tonumber(fibaro:getValue(111, "value")) > 0) and (tonumber(fibaro:getValue(111, "armed")) > 0)) then
  fibaro:call(153, "pressButton", "11"); --Pushover
  fNotif(defined, 14);
  fibaro:call(100, "turnOn"); --activation sirène
  fibaro:call(139, "pressButton", "6"); --Message Sarah
  fibaro:call(74, "sendPhotoToUser", "2"); --capture garage
  fibaro:call(162, "pressButton", "1"); --enregistrement video on
  fibaro:sleep(300000); --enregistrement de 5 min
  fibaro:call(162, "pressButton", "2"); --stop enregistrement
  fibaro:sleep(3000); --Pause 3 second
  fibaro:call(28, "turnOn"); --Allume la lumiere de la Salle de BAIN
  fibaro:sleep(177000);    --Pause 3 min
  fibaro:call(28, "turnOff"); --Eteint la lumiere de la salle de bain
 
 
-- Fenetre Cuisine
elseif ((startSource['deviceID']==tostring(sensor2)) and (tonumber(fibaro:getValue(157, "value")) > 0) and (tonumber(fibaro:getValue(157, "armed")) > 0)) then
  fibaro:call(153, "pressButton", "6"); --Pushover
  fNotif(custom, "Attention: La fenêtre de la cuisine est ouverte");
  fibaro:call(100, "turnOn");
  fibaro:call(139, "pressButton", "10"); --Message Sarah
  fibaro:call(72, "turnOn"); --allume lumiere salon
  fibaro:call(132, "turnOn"); --allume lumiere cuisine
  fibaro:call(73, "sendPhotoToUser", "25"); --Capture ADVANCE
  fibaro:sleep(3000);
  fibaro:call(69, "sendPhotoToUser", "25"); --capture ROVIO
  fibaro:sleep(120000);
  fibaro:call(72, "turnOff"); --eteint lumiere salon
  fibaro:call(132, "turnOff"); --eteint lumiere cuisine

  --Chambre Bleu
elseif ((startSource['deviceID']==tostring(sensor3)) and (tonumber(fibaro:getValue(47, "value")) > 0) and (tonumber(fibaro:getValue(47, "armed")) > 0)) then 
    fNotif(defined, 2);
	fibaro:call(153, "pressButton", "8"); --Pushover
	fibaro:call(100, "turnOn"); --Sirene on
	fibaro:call(139, "pressButton", "5"); --Message Sarah
	fibaro:call(74, "sendPhotoToUser", "2"); --capture garage
	fibaro:call(162, "pressButton", "1"); --enregistrement video on
	fibaro:sleep(300000);                 --enregistrement de 5 min
	fibaro:call(162, "pressButton", "2"); --stop enregistrement
	fibaro:sleep(3000);                   --Pause 3 second
	fibaro:call(28, "turnOn");            --Allume la lumiere de la Salle de BAIN
	fibaro:sleep(177000);				  --Pause 3 min
	fibaro:call(28, "turnOff");           --Eteint la lumiere de la salle de bain
 
end 

Pour moi, ça fonctionne, encore merci à  super Shad  ;)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×