Fredric Posté(e) le 22 mars 2014 Signaler Posté(e) le 22 mars 2014 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...
Fredric Posté(e) le 22 mars 2014 Auteur Signaler Posté(e) le 22 mars 2014 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 --[[ %% 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
Fredric Posté(e) le 22 mars 2014 Auteur Signaler Posté(e) le 22 mars 2014 mais je ne sais quand même pas récupérer la valeur d'un capteur "normal et armé"
q.philippe Posté(e) le 22 mars 2014 Signaler Posté(e) le 22 mars 2014 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.
Shad Posté(e) le 22 mars 2014 Signaler Posté(e) le 22 mars 2014 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
Fredric Posté(e) le 22 mars 2014 Auteur Signaler Posté(e) le 22 mars 2014 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
Shad Posté(e) le 22 mars 2014 Signaler Posté(e) le 22 mars 2014 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 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
Fredric Posté(e) le 22 mars 2014 Auteur Signaler Posté(e) le 22 mars 2014 super, je me mets au travail dés que possible, j'ai des invités (j'vais peut-être les mettre dehors... )
Fredric Posté(e) le 22 mars 2014 Auteur Signaler Posté(e) le 22 mars 2014 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
Shad Posté(e) le 22 mars 2014 Signaler Posté(e) le 22 mars 2014 Attend, le code remplace toute tes lignes du bouton 1. Il faut pas enlever le reste
Fredric Posté(e) le 22 mars 2014 Auteur Signaler Posté(e) le 22 mars 2014 Oui, biensur lol J'avais bien compris ;-) Je le posterai en complet dés que je peux.
Shad Posté(e) le 22 mars 2014 Signaler Posté(e) le 22 mars 2014 En tout cas sa serait mon premier code sans erreur du premier coup Xd. Autant dire que j'y crois pas trop mdr
Fredric Posté(e) le 23 mars 2014 Auteur Signaler Posté(e) le 23 mars 2014 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
Shad Posté(e) le 23 mars 2014 Signaler Posté(e) le 23 mars 2014 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é Tu as oublié un end
Fredric Posté(e) le 23 mars 2014 Auteur Signaler Posté(e) le 23 mars 2014 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
Shad Posté(e) le 23 mars 2014 Signaler Posté(e) le 23 mars 2014 Ok j'ai trouvé, il te manque une petite local je crois bien Xd local ButtonPressed = fibaro:getValue(24, "sceneActivation")
Fredric Posté(e) le 23 mars 2014 Auteur Signaler Posté(e) le 23 mars 2014 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
Shad Posté(e) le 23 mars 2014 Signaler Posté(e) le 23 mars 2014 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.
Fredric Posté(e) le 23 mars 2014 Auteur Signaler Posté(e) le 23 mars 2014 ya du mieux, les autres boutons fonctionnent maintenant, pas le bouton un et aucune erreur, je sens que ça vient
Fredric Posté(e) le 23 mars 2014 Auteur Signaler Posté(e) le 23 mars 2014 cela peut venir des nom que j'ai mis dans la local placeSensor, ou ils servent juste indiquer le retour?
Shad Posté(e) le 23 mars 2014 Signaler Posté(e) le 23 mars 2014 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.
Fredric Posté(e) le 23 mars 2014 Auteur Signaler Posté(e) le 23 mars 2014 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
Shad Posté(e) le 23 mars 2014 Signaler Posté(e) le 23 mars 2014 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
Fredric Posté(e) le 23 mars 2014 Auteur Signaler Posté(e) le 23 mars 2014 pas mieux... et l'erreur [ERROR] 14:58:43: line :debug (arg 2), expected 'string const &' got 'table
Messages recommandés