Aller au contenu

Messages recommandés

Posté(e)

bonjour à  tous,

 

je bloque sur une chose qui va surement sembler évident pour bon nombres d'entre vous mais après avoir essayé plein de formule, je seche.

 

je veux récupérer la valeur de tout mes capteurs et si il sont "normal et armé" alors m'envoyer un push.

 

c'est pour ma scène télécommande: si je presse 1 et qu'aucun capteur soit en alerte (porte ou fenêtre ouverte par exemple) alors l'arme s'enclenche et envoi un push "alarme mise sous tension"

mais si un capteur est en alerte alors ne pas activer l'alarme et envoi d'un push "fenêtre chambre bleu ouverte" par exemple.

cela marche très bien sauf qu'il m'envoi le push "alarme mise sous tension" dans les deux cas.

 

c'est pour cela que je veux récupérer la valeur de tout mes capteurs et si il sont "normal et armé" alors m'envoyer un push.

 

en me relisant, j'ai l'impression d’être claire mais je sais ce que j'ai dans en tète alors j’espère que se sera claire pour vous...

Posté(e)

Bonjour Shad, toujours sur la brèche  ;) ,

 

alors voici mon code, j'ai trouvé une solution, un peu grossière mais tout marche, j'ai honteusement pompé sur la partie du code que tu as fait pour mes volet  :P

--[[ 
 %% properties 
24 sceneActivation 
 %% globals 
--]] 

 local ButtonPressed = fibaro:getValue(24, "sceneActivation")
 local windowscontrolrelay = {14, 47, 32, 124, 97, 111, 114, 115, 116}; 
 
 if ( tonumber(ButtonPressed) == 1) then
  for i =1, #windowscontrolrelay do
        if (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) == 0) then
            fibaro:call(windowscontrolrelay[i], "setArmed", "1");
        end
    end
  if ((tonumber(fibaro:getValue(14, 'value'))) == 1) then
	      --fibaro:call(14, "setArmed", "0");
	      fibaro:call(47, "setArmed", "0");
          fibaro:call(32, "setArmed", "0"); 
          fibaro:call(124, "setArmed", "0");  
          fibaro:call(97, "setArmed", "0");
          fibaro:call(111, "setArmed", "0");  
          fibaro:call(114, "setArmed", "0");
          fibaro:call(115, "setArmed", "0");
          fibaro:call(116, "setArmed", "0");
	 fibaro:call(53, "sendPush", "Le capteur de mouvement est en alerte");
	
    elseif ((tonumber(fibaro:getValue(47, 'value'))) == 1) then
	      fibaro:call(14, "setArmed", "0");
	      --fibaro:call(47, "setArmed", "0");
          fibaro:call(32, "setArmed", "0"); 
          fibaro:call(124, "setArmed", "0");  
          fibaro:call(97, "setArmed", "0");
          fibaro:call(111, "setArmed", "0");  
          fibaro:call(114, "setArmed", "0");
          fibaro:call(115, "setArmed", "0");
          fibaro:call(116, "setArmed", "0");
	 fibaro:call(53, "sendPush", "La fenêtre le la chambre bleu est ouverte");
		
	elseif((tonumber(fibaro:getValue(32, 'value'))) == 1) then
	      fibaro:call(14, "setArmed", "0");
	      fibaro:call(47, "setArmed", "0");
          --fibaro:call(32, "setArmed", "0"); 
          fibaro:call(124, "setArmed", "0");  
          fibaro:call(97, "setArmed", "0");
          fibaro:call(111, "setArmed", "0");  
          fibaro:call(114, "setArmed", "0");
          fibaro:call(115, "setArmed", "0");
          fibaro:call(116, "setArmed", "0");
	 fibaro:call(53, "sendPush", "La porte d entrée est ouverte");
	
	elseif ((tonumber(fibaro:getValue(124, 'value'))) == 1) then
	      fibaro:call(14, "setArmed", "0");
	      fibaro:call(47, "setArmed", "0");
          fibaro:call(32, "setArmed", "0"); 
          --fibaro:call(124, "setArmed", "0");  
          fibaro:call(97, "setArmed", "0");
          fibaro:call(111, "setArmed", "0");  
          fibaro:call(114, "setArmed", "0");
          fibaro:call(115, "setArmed", "0");
          fibaro:call(116, "setArmed", "0");
	 fibaro:call(53, "sendPush", "La fenêtre le la chambre de Marion est ouverte");
	
	elseif ((tonumber(fibaro:getValue(97, 'value'))) == 1) then
	      fibaro:call(14, "setArmed", "0");
	      fibaro:call(47, "setArmed", "0");
          fibaro:call(32, "setArmed", "0"); 
          fibaro:call(124, "setArmed", "0");  
          --fibaro:call(97, "setArmed", "0");
          fibaro:call(111, "setArmed", "0");  
          fibaro:call(114, "setArmed", "0");
          fibaro:call(115, "setArmed", "0");
          fibaro:call(116, "setArmed", "0");
	 fibaro:call(53, "sendPush", "La fenêtre le la chambre des parents est ouverte");
	
	elseif ((tonumber(fibaro:getValue(111, 'value'))) == 1) then
          fibaro:call(14, "setArmed", "0");
	      fibaro:call(47, "setArmed", "0");
          fibaro:call(32, "setArmed", "0"); 
          fibaro:call(124, "setArmed", "0");  
          fibaro:call(97, "setArmed", "0");
          --fibaro:call(111, "setArmed", "0");  
          fibaro:call(114, "setArmed", "0");
          fibaro:call(115, "setArmed", "0");
          fibaro:call(116, "setArmed", "0");
          fibaro:call(53, "sendPush", "La fenêtre du bureau est ouverte");
	
	elseif ((tonumber(fibaro:getValue(114, 'value'))) == 1) then
	      fibaro:call(14, "setArmed", "0");
	      fibaro:call(47, "setArmed", "0");
          fibaro:call(32, "setArmed", "0"); 
          fibaro:call(124, "setArmed", "0");  
          fibaro:call(97, "setArmed", "0");
          fibaro:call(111, "setArmed", "0");  
          --fibaro:call(114, "setArmed", "0");
          fibaro:call(115, "setArmed", "0");
          fibaro:call(116, "setArmed", "0");
	 fibaro:call(53, "sendPush", "La fenêtre du salon est ouverte");
	
	elseif ((tonumber(fibaro:getValue(115, 'value'))) == 1) then
	      fibaro:call(14, "setArmed", "0");
	      fibaro:call(47, "setArmed", "0");
          fibaro:call(32, "setArmed", "0"); 
          fibaro:call(124, "setArmed", "0");  
          fibaro:call(97, "setArmed", "0");
          fibaro:call(111, "setArmed", "0");  
          fibaro:call(114, "setArmed", "0");
          --fibaro:call(115, "setArmed", "0");
          fibaro:call(116, "setArmed", "0");
	 fibaro:call(53, "sendPush", "La porte vitée du salon est ouverte");
	
	elseif ((tonumber(fibaro:getValue(116, 'value'))) == 1) then
	      fibaro:call(14, "setArmed", "0");
	      fibaro:call(47, "setArmed", "0");
          fibaro:call(32, "setArmed", "0"); 
          fibaro:call(124, "setArmed", "0");  
          fibaro:call(97, "setArmed", "0");
          fibaro:call(111, "setArmed", "0");  
          fibaro:call(114, "setArmed", "0");
          fibaro:call(115, "setArmed", "0");
          --fibaro:call(116, "setArmed", "0");
	 fibaro:call(53, "sendPush", "La porte du garage est ouverte");

	
   elseif ((tonumber(fibaro:getValue(14, 'value'))) == 0) and ((tonumber(fibaro:getValue(47, 'value'))) == 0) and ((tonumber(fibaro:getValue(32, 'value'))) == 0) and ((tonumber(fibaro:getValue(124, 'value'))) == 0) and ((tonumber(fibaro:getValue(97, 'value'))) == 0) and ((tonumber(fibaro:getValue(111, 'value'))) == 0) and ((tonumber(fibaro:getValue(114, 'value'))) == 0) and ((tonumber(fibaro:getValue(115, 'value'))) == 0) and ((tonumber(fibaro:getValue(116, 'value'))) == 0) then
         fibaro:call(53, "sendDefinedPushNotification", "4"); 
         --fibaro:call(58, "sendDefinedPushNotification", "4");

  fibaro:call(70, "turnOff") --étein la lumiere de l'entrée qui s'allume avec une autre scene quand il fait nuit et qu'on ouvre la porte
  fibaro:debug("button 1 pressed Alarme Activé") 
  fibaro:sleep(3000);
     end 
 
elseif ( tonumber(ButtonPressed) == 2) then
 	fibaro:call(14, "setArmed", "0");
	fibaro:call(47, "setArmed", "0");
    fibaro:call(32, "setArmed", "0"); 
    fibaro:call(124, "setArmed", "0");  
    fibaro:call(97, "setArmed", "0");
    fibaro:call(111, "setArmed", "0");  
    fibaro:call(114, "setArmed", "0");
    fibaro:call(115, "setArmed", "0");
    fibaro:call(116, "setArmed", "0");
    
    fibaro:call(100, "turnOff");
  fibaro:call(53, "sendDefinedPushNotification", "5");
  fibaro:call(58, "sendDefinedPushNotification", "5");  
  fibaro:debug("button 2 Pressed Alarme Désactivé")
  fibaro:sleep(3000);  

 elseif ( tonumber(ButtonPressed) == 3) then 
 fibaro:debug("MiniMote button 3 pressed")
 fibaro:call(57, "open");
 fibaro:call(57, "setValue2", "1");
 fibaro:call(65, "open");
 fibaro:call(65, "setValue2", "1");
 fibaro:sleep(3000);   
 elseif ( tonumber(ButtonPressed) == 4) then 
 fibaro:debug("MiniMote button 4 pressed")
 fibaro:call(57, "close");
 fibaro:call(57, "setValue2", "0"); 
 fibaro:call(65, "close");
 fibaro:call(65, "setValue2", "0");
 fibaro:sleep(3000);    
 elseif ( tonumber(ButtonPressed) == 5) then 
 fibaro:call(100, "turnOff") 
 fibaro:debug("MiniMote button 5 pressed / Sirene OFF") 
 fibaro:sleep(3000); 
 elseif ( tonumber(ButtonPressed) == 6) then 
 fibaro:call(100, "turnOn"); 
 fibaro:debug("MiniMote button 6 pressed / Sirene ON") 
 fibaro:sleep(3000); 
 elseif ( tonumber(ButtonPressed) == 7) then 
 fibaro:call(107, "turnOn");
 fibaro:debug("MiniMote button 7 pressed")
 fibaro:sleep(3000);   
 elseif ( tonumber(ButtonPressed) == 8) then 
 fibaro:call(107, "turnOff");
 fibaro:debug("MiniMote button 8 pressed")
 fibaro:sleep(3000);   
 else 
 fibaro:debug("No response") 
 end

Posté(e)

Pas tout compris MAIS moi Quand j'active l'alarme et une porte ou fenêtre ouverte, HC2 m'envoie un message push : porte ouverte sdb .... Pas besoin de retour, c deja COMPRIS.

Posté(e)

Ouah le code de fou juste pour armer des capteurs -_-'.

 

Donc si je comprend bien tu veux armé tes capteurs que s'ils sont tous fermé c'est sa ???

Parce que si c'est sa tu te prend grave la tête -_-'.

Attend laisse moi un peu de temps de tout reprendre ;)

Posté(e)

q.philippe: effectivement, quand tu arme avec un device, il te dit si une fenêtre ou autre est en alerte ou ouvert, mais avec la télécommande, c'est le code que tu mets qui prévaut.

 

 

Shad:

oui, je suis d'accord que c'est too much, mais j'ai du mal à  trouver les logiques.

 

mon ancien code était:

local ButtonPressed = fibaro:getValue(24, "sceneActivation") 
 if ((tonumber(fibaro:getValue(14, 'value'))) == 0)
  then
  
 if ( tonumber(ButtonPressed) == 1) then
 
  fibaro:call(14, "setArmed", "1");
  fibaro:call(47, "setArmed", "1");
  fibaro:call(32, "setArmed", "1"); 
  fibaro:call(124, "setArmed", "1");  
  fibaro:call(97, "setArmed", "1");  
  fibaro:call(111, "setArmed", "1");  
  fibaro:call(114, "setArmed", "1");
  fibaro:call(115, "setArmed", "1");
  fibaro:call(116, "setArmed", "1");
    
  fibaro:call(53, "sendDefinedPushNotification", "4"); 
  fibaro:call(58, "sendDefinedPushNotification", "4");
  fibaro:call(70, "turnOff")
  
  fibaro:debug("button 1 pressed Alarme Activé") 
  fibaro:sleep(3000);
    
  elseif ( tonumber(ButtonPressed) == 2) then
 	fibaro:call(14, "setArmed", "0");
	fibaro:call(47, "setArmed", "0");
    fibaro:call(32, "setArmed", "0"); 
    fibaro:call(124, "setArmed", "0");  
    fibaro:call(97, "setArmed", "0");
    fibaro:call(111, "setArmed", "0");  
    fibaro:call(114, "setArmed", "0");
    fibaro:call(115, "setArmed", "0");
    fibaro:call(116, "setArmed", "0");
    
    fibaro:call(100, "turnOff");
  fibaro:call(53, "sendDefinedPushNotification", "5");
  fibaro:call(58, "sendDefinedPushNotification", "5");  
  fibaro:debug("button 2 Pressed Alarme Désactivé")
  fibaro:sleep(3000);  

je mets juste pour le premier bouton de la télécommande.

avec ce code, cela activé l'alarme sur les capteurs mais si on oublie une fenêtre ouverte, elle ne s'active pas et active tout les autre sans rien dire.

donc, je veux être sur que tout les capteurs sont activés avec un push de confirmation (du coup, toutes les fenêtres et autre, fermés)

et si un capteur est resté ouvert, alors aucun s'active en alarme et je reçoit un push avec le ou les capteur qui posent problème.

 

maintenant, je suis sur qu'il y a plus court, je pensé utiliser un VD pour l'activation ou désactivation des capteur par exemple

Posté(e)

Bon tient voici un code de base fait en 10min et je précise non débuggé car pas le temps (je suis entrain de me faire mon système d'ambiance du salon :D et m'occupé de mon fils)

Pour la local placeSensor modifie les chiffres par les pièces genre {"salon", "chambre" ...}

Tu vas avoir des erreurs je te préviens à  l'avance.

Pour te résumer le code la fonction:

- function statutWindows (): vérifie si une fenêtre est ouverte.

- function alertWindows (): envie la notification avec les fenêtres ouvertes

- function armed(): arme les capteurs

 

Donc en résumé quand tu presse le button1:

1) On lance la function statut windows pour verifier si une fenêtre est ouvert.

2) Si fenêtre fermé on lance la fonction armed pour armer les capteur/

3) Si une ou des fenêtres est ouvertes, on lance la fonction alertWindows pour envoyer une notification avec le nom des pièces ou il y a un problème.

 

Mais je te le répète tu vas avoir des erreurs car j'ai pas le temps de vérifier ;)

 

local windowSensor = {14, 47, 32, 124, 97, 111, 114, 115, 116};
local placeSensor = {1, 2, 3, 4, 5, 6, 7, 8, 9};
function statutWindows ()
  local statut = "close";
  for i=1, #windowSensor do
    if (tonumber(fibaro:getValue(windowSensor[i], "value")) > 0) then
      statut = "open";
    end
  end
  return statut;
end

function alertWindows ()
  local alert = nil;
  for i=1, #windowSensor do
    if (alert == nil) then
      alert = "{" .. i;
    elseif (alert ~= nil) then
      alert = alert .. ", " .. i;
    end
  end
  if (alert ~= nil) then
    alert = alert .. "}";
    local place = nil;
    for i=1, #alert do
      place = " " .. placeSensor(alert);
    end
  fibaro:call(53, "sendPush", "Fenetr(s) ouverte(s):" .. place);
  end
end

function armed ()
  for i=1, #windowSensor do
    fibaro:call(windowSensor[i], "setArmed", "1");
  end

if ( tonumber(ButtonPressed) == 1) then
  statut = statutWindows;
  if (statut == "close") then
    armedSensor();
    fibaro:debug("button 1 pressed Alarme Activé")
  elseif (statut == "open") then
    alertWindows(table.getn(windowsSensor))
  end
end
Posté(e)

pour le coup, j'ai pas pu attendre... :)

j'ai aucune erreur mais cela ne fonctionne pas, il n'y a pas d'action avec la télécommande plus aucun bouton fonctionnent.

en fait, rien ne se passe, pas de ligne en erreurs...

Par contre, là , je vois bien la logique, ton code est clair malgré des fonctions que je ne connais pas.

pour le moment, je laisse ma scène qui fonctionne et j'essai de décortiquer ton code, profite de ton fils, ça grandi tellement vite!!!

 

Merci  :60:

Posté(e)

En tout cas sa serait mon premier code sans erreur du premier coup Xd.

Autant dire que j'y crois pas trop mdr

Posté(e)

voila le code en entier, donc, aucune erreur mais aucune réaction non plus et les autres boutons ne fonctionnent plus non plus.

--[[ 
 %% properties 
24 sceneActivation 
 %% globals 
--]] 

 
 local windowSensor = {14}; --, 47, 32, 124, 111, 114, 115, 116};
 local placeSensor = {"Salon"};--,"Chambre Bleu","Entrée","Chambre de Marion","bureau","Salon","Salon","Garage"};

function statutWindows ()
  local statut = "close";
  for i=1, #windowSensor do
    if (tonumber(fibaro:getValue(windowSensor[i], "value")) > 0) then
      statut = "open";
    end
  end
  return statut;
end
 
function alertWindows ()
  local alert = nil;
  for i=1, #windowSensor do
    if (alert == nil) then
      alert = "{" .. i;
    elseif (alert ~= nil) then
      alert = alert .. ", " .. i;
    end
  end
  if (alert ~= nil) then
    alert = alert .. "}";
    local place = nil;
    for i=1, #alert do
      place = " " .. placeSensor(alert);
    end
  fibaro:call(53, "sendPush", "Fenetre(s) ouverte(s):" .. place);
  end
end
 
function armed ()
  for i=1, #windowSensor do
    fibaro:call(windowSensor[i], "setArmed", "1");
  end
 
if ( tonumber(ButtonPressed) == 1) then
  statut = statutWindows;
  if (statut == "close") then
    armedSensor();
    fibaro:debug("button 1 pressed Alarme Activé")
  elseif (statut == "open") then
    alertWindows(table.getn(windowsSensor))
       

 
elseif ( tonumber(ButtonPressed) == 2) then
 	fibaro:call(14, "setArmed", "0");
	fibaro:call(47, "setArmed", "0");
    fibaro:call(32, "setArmed", "0"); 
    fibaro:call(124, "setArmed", "0");  
    fibaro:call(97, "setArmed", "0");
    fibaro:call(111, "setArmed", "0");  
    fibaro:call(114, "setArmed", "0");
    fibaro:call(115, "setArmed", "0");
    fibaro:call(116, "setArmed", "0");
    
    fibaro:call(100, "turnOff");
  fibaro:call(53, "sendDefinedPushNotification", "5");
  fibaro:call(58, "sendDefinedPushNotification", "5");  
  fibaro:debug("button 2 Pressed Alarme Désactivé")
  fibaro:sleep(3000);  

 elseif ( tonumber(ButtonPressed) == 3) then 
 fibaro:debug("MiniMote button 3 pressed")
 fibaro:call(57, "open");
 fibaro:call(57, "setValue2", "1");
 fibaro:call(65, "open");
 fibaro:call(65, "setValue2", "1");
 fibaro:sleep(3000);   
 elseif ( tonumber(ButtonPressed) == 4) then 
 fibaro:debug("MiniMote button 4 pressed")
 fibaro:call(57, "close");
 fibaro:call(57, "setValue2", "0"); 
 fibaro:call(65, "close");
 fibaro:call(65, "setValue2", "0");
 fibaro:sleep(3000);    
 elseif ( tonumber(ButtonPressed) == 5) then 
 fibaro:call(100, "turnOff") 
 fibaro:debug("MiniMote button 5 pressed / Sirene OFF") 
 fibaro:sleep(3000); 
 elseif ( tonumber(ButtonPressed) == 6) then 
 fibaro:call(100, "turnOn"); 
 fibaro:debug("MiniMote button 6 pressed / Sirene ON") 
 fibaro:sleep(3000); 
 elseif ( tonumber(ButtonPressed) == 7) then 
 fibaro:call(107, "turnOn");
 fibaro:debug("MiniMote button 7 pressed")
 fibaro:sleep(3000);   
 elseif ( tonumber(ButtonPressed) == 8) then 
 fibaro:call(107, "turnOff");
 fibaro:debug("MiniMote button 8 pressed")
 fibaro:sleep(3000);   
 else 
 fibaro:debug("No response") 
     end
    end
  end

Posté(e)

 

voila le code en entier, donc, aucune erreur mais aucune réaction non plus et les autres boutons ne fonctionnent plus non plus.

if ( tonumber(ButtonPressed) == 1) then
  statut = statutWindows;
  if (statut == "close") then
    armedSensor();
    fibaro:debug("button 1 pressed Alarme Activé")
  elseif (statut == "open") then
    alertWindows(table.getn(windowsSensor))

Voilà  un beau copié merdé :D

Tu as oublié un end ;)

Posté(e)

 oui, je l'ai enlevé pour essayer, car il passe plus a la suite du code.

--[[ 
 %% properties 
24 sceneActivation 
 %% globals 
--]] 

 
 local windowSensor = {14}; --, 47, 32, 124, 111, 114, 115, 116};
 local placeSensor = {"Salon"};--,"Chambre Bleu","Entrée","Chambre de Marion","bureau","Salon","Salon","Garage"};

function statutWindows ()
  local statut = "close";
  for i=1, #windowSensor do
    if (tonumber(fibaro:getValue(windowSensor[i], "value")) > 0) then
      statut = "open";
    end
  end
  return statut;
end
 
function alertWindows ()
  local alert = nil;
  for i=1, #windowSensor do
    if (alert == nil) then
      alert = "{" .. i;
    elseif (alert ~= nil) then
      alert = alert .. ", " .. i;
    end
  end
  if (alert ~= nil) then
    alert = alert .. "}";
    local place = nil;
    for i=1, #alert do
      place = " " .. placeSensor(alert);
    end
  fibaro:call(53, "sendPush", "Fenetre(s) ouverte(s):" .. place);
  end
end
 
function armed ()
  for i=1, #windowSensor do
    fibaro:call(windowSensor[i], "setArmed", "1");
  end
 
if ( tonumber(ButtonPressed) == 1) then
  statut = statutWindows;
  if (statut == "close") then
    armedSensor();
    fibaro:debug("button 1 pressed Alarme Activé")
  elseif (statut == "open") then
    alertWindows(table.getn(windowsSensor))
    end   

 
elseif ( tonumber(ButtonPressed) == 2) then
    fibaro:call(14, "setArmed", "0");
    fibaro:call(47, "setArmed", "0");
    fibaro:call(32, "setArmed", "0"); 
    fibaro:call(124, "setArmed", "0");  
    fibaro:call(97, "setArmed", "0");
    fibaro:call(111, "setArmed", "0");  
    fibaro:call(114, "setArmed", "0");
    fibaro:call(115, "setArmed", "0");
    fibaro:call(116, "setArmed", "0");
    
    fibaro:call(100, "turnOff");
  fibaro:call(53, "sendDefinedPushNotification", "5");
  fibaro:call(58, "sendDefinedPushNotification", "5");  
  fibaro:debug("button 2 Pressed Alarme Désactivé")
  fibaro:sleep(3000);  

 elseif ( tonumber(ButtonPressed) == 3) then 
 fibaro:debug("MiniMote button 3 pressed")
 fibaro:call(57, "open");
 fibaro:call(57, "setValue2", "1");
 fibaro:call(65, "open");
 fibaro:call(65, "setValue2", "1");
 fibaro:sleep(3000);   
 elseif ( tonumber(ButtonPressed) == 4) then 
 fibaro:debug("MiniMote button 4 pressed")
 fibaro:call(57, "close");
 fibaro:call(57, "setValue2", "0"); 
 fibaro:call(65, "close");
 fibaro:call(65, "setValue2", "0");
 fibaro:sleep(3000);    
 elseif ( tonumber(ButtonPressed) == 5) then 
 fibaro:call(100, "turnOff") 
 fibaro:debug("MiniMote button 5 pressed / Sirene OFF") 
 fibaro:sleep(3000); 
 elseif ( tonumber(ButtonPressed) == 6) then 
 fibaro:call(100, "turnOn"); 
 fibaro:debug("MiniMote button 6 pressed / Sirene ON") 
 fibaro:sleep(3000); 
 elseif ( tonumber(ButtonPressed) == 7) then 
 fibaro:call(107, "turnOn");
 fibaro:debug("MiniMote button 7 pressed")
 fibaro:sleep(3000);   
 elseif ( tonumber(ButtonPressed) == 8) then 
 fibaro:call(107, "turnOff");
 fibaro:debug("MiniMote button 8 pressed")
 fibaro:sleep(3000);   
 else 
 fibaro:debug("No response") 
     end
    end
  

mais pas mieux  :(

Posté(e)

Ok j'ai trouvé, il te manque une petite local je crois bien Xd

local ButtonPressed = fibaro:getValue(24, "sceneActivation")
Posté(e)

:( c'est comme ça que je l'ai mis au départ comme cela donné rien, j'ai copie tout ton code du bouton 1 a la place du mien.

mais aucune réaction, si au moins il faisait une erreur  ;)

--[[ 
 %% properties 
24 sceneActivation 
 %% globals 
--]] 

 local ButtonPressed = fibaro:getValue(24, "sceneActivation")
 local windowSensor = {14 , 47, 32, 124, 111, 114, 115, 116};
 local placeSensor = {"Salon","Chambre Bleu","Entrée","Chambre de Marion","bureau","Salon","Salon","Garage"};

function statutWindows ()
  local statut = "close";
  for i=1, #windowSensor do
    if (tonumber(fibaro:getValue(windowSensor[i], "value")) > 0) then
      statut = "open";
    end
  end
  return statut;
end
 
function alertWindows ()
  local alert = nil;
  for i=1, #windowSensor do
    if (alert == nil) then
      alert = "{" .. i;
    elseif (alert ~= nil) then
      alert = alert .. ", " .. i;
    end
  end
  if (alert ~= nil) then
    alert = alert .. "}";
    local place = nil;
    for i=1, #alert do
      place = " " .. placeSensor(alert);
    end
  fibaro:call(53, "sendPush", "Fenetre(s) ouverte(s):" .. place);
  end
end
 
function armed ()
  for i=1, #windowSensor do
    fibaro:call(windowSensor[i], "setArmed", "1");
  end
 
if ( tonumber(ButtonPressed) == 1) then
  statut = statutWindows;
  if (statut == "close") then
    armedSensor();
    fibaro:debug("button 1 pressed Alarme Activé")
  elseif (statut == "open") then
    alertWindows(table.getn(windowsSensor))
    end   

 
elseif ( tonumber(ButtonPressed) == 2) then
 	fibaro:call(14, "setArmed", "0");
	fibaro:call(47, "setArmed", "0");
    fibaro:call(32, "setArmed", "0"); 
    fibaro:call(124, "setArmed", "0");  
    fibaro:call(97, "setArmed", "0");
    fibaro:call(111, "setArmed", "0");  
    fibaro:call(114, "setArmed", "0");
    fibaro:call(115, "setArmed", "0");
    fibaro:call(116, "setArmed", "0");
    
  fibaro:call(100, "turnOff");
  fibaro:call(53, "sendDefinedPushNotification", "5");
  fibaro:call(58, "sendDefinedPushNotification", "5");  
  fibaro:debug("button 2 Pressed Alarme Désactivé")
  fibaro:sleep(3000);  

 elseif ( tonumber(ButtonPressed) == 3) then 
 fibaro:debug("MiniMote button 3 pressed")
 fibaro:call(57, "open");
 fibaro:call(57, "setValue2", "1");
 fibaro:call(65, "open");
 fibaro:call(65, "setValue2", "1");
 fibaro:sleep(3000);   
 elseif ( tonumber(ButtonPressed) == 4) then 
 fibaro:debug("MiniMote button 4 pressed")
 fibaro:call(57, "close");
 fibaro:call(57, "setValue2", "0"); 
 fibaro:call(65, "close");
 fibaro:call(65, "setValue2", "0");
 fibaro:sleep(3000);    
 elseif ( tonumber(ButtonPressed) == 5) then 
 fibaro:call(100, "turnOff") 
 fibaro:debug("MiniMote button 5 pressed / Sirene OFF") 
 fibaro:sleep(3000); 
 elseif ( tonumber(ButtonPressed) == 6) then 
 fibaro:call(100, "turnOn"); 
 fibaro:debug("MiniMote button 6 pressed / Sirene ON") 
 fibaro:sleep(3000); 
 elseif ( tonumber(ButtonPressed) == 7) then 
 fibaro:call(107, "turnOn");
 fibaro:debug("MiniMote button 7 pressed")
 fibaro:sleep(3000);   
 elseif ( tonumber(ButtonPressed) == 8) then 
 fibaro:call(107, "turnOff");
 fibaro:debug("MiniMote button 8 pressed")
 fibaro:sleep(3000);   
 else 
 fibaro:debug("No response") 
     end
    end

Posté(e)

Bon déjàpour la fonction armed, j'ai oublié un end et ensuite enlève le dernier end de ton script, car il prend le tout faisant partie de la fonction armed.

Posté(e)

Ha voilà  je savais qu'il y a aurait des problèmes Xd.

 

Va falloir que tu mettes des debug pour voir à  quel étape sa bloque.

Posté(e)

je ne suis pas sur que j'ai bien placé les debug mais avec un " fibaro:debug(14)" aprés chaque fonction, il ressort après la pression du bouton 1, donc l'ordre est bien reçu.

 

fibaro:debug(windowSensor); j'ai      " expected 'string const &' got 'table'"      la ça semble plutôt évident....non  :wacko:

Posté(e)

Tu as pas un numéro de ligne??

 

Je pense que le problème vient dans la partie bouton 1.

Remplace:

alertWindows(table.getn(windowsSensor))

par

alertWindows()

 

J'ai oublier d'enlever cette partie

×
×
  • Créer...