Fredric Posté(e) le 5 avril 2014 Signaler Posté(e) le 5 avril 2014 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
Moicphil Posté(e) le 5 avril 2014 Signaler Posté(e) le 5 avril 2014 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
Fredric Posté(e) le 5 avril 2014 Auteur Signaler Posté(e) le 5 avril 2014 oui et les capteurs qui suivent les deux premiers ne déclenchent pas la scènes.
Moicphil Posté(e) le 5 avril 2014 Signaler Posté(e) le 5 avril 2014 Et en rajoutant au départ : if (fibaro:countScenes() > 1) then fibaro:abort() end; 1
Shad Posté(e) le 5 avril 2014 Signaler Posté(e) le 5 avril 2014 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 1
Fredric Posté(e) le 5 avril 2014 Auteur Signaler Posté(e) le 5 avril 2014 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)
Fredric Posté(e) le 5 avril 2014 Auteur Signaler Posté(e) le 5 avril 2014 alors, je viens d'essayer la ligne de Phil cela ne fonctionne pas, j'essai le code de Shad
Fredric Posté(e) le 5 avril 2014 Auteur Signaler Posté(e) le 5 avril 2014 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 [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
Fredric Posté(e) le 5 avril 2014 Auteur Signaler Posté(e) le 5 avril 2014 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" 1
Shad Posté(e) le 5 avril 2014 Signaler Posté(e) le 5 avril 2014 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
Fredric Posté(e) le 5 avril 2014 Auteur Signaler Posté(e) le 5 avril 2014 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. j'en ai jamais eu besoin après dans mon métier, alors... ça ta pris 5 min pour faire ce code, ça m'a pris la matinée pour faire m'a "dobe" , tout est dit 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 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
Shad Posté(e) le 5 avril 2014 Signaler Posté(e) le 5 avril 2014 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
Fredric Posté(e) le 5 avril 2014 Auteur Signaler Posté(e) le 5 avril 2014 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 1
Messages recommandés