mprinfo Posté(e) le 13 mai 2015 Signaler Posté(e) le 13 mai 2015 Cette scène n'est pas de moi mais le résultat d'un travail en groupe avec quelques membres du forum Elle permet l'envoi de notification vers un ou plusieurs téléphones lorsqu'une porte est fermé ou ouverte Il faut juste entrer le numéro d'ID des détecteurs suivi de value dans l'entête de la scène Il faut aussi renseigner les ID du ou des téléphones Elle prévient lorsque la box vient de redémarrer. --[[ %% autostart %% properties 69 value 53 value 73 value --]] -- ================================================ -- PREPARATION DU CODE, ON CREER LES FONCTIONS QUE -- NOUS ALLONS DEVOIR APPELER PAR LA SUITE -- Dans notre cas, il y a au moins 2 fonctions : -- une pour l'envoi du message -- une pour obtenir les informations du module et son état -- -- Une fonction est un morceau de code que nous pouvons appeler -- plusieurs fois. Elle peux recevoir des paramètres. -- Une fonction peux exister sans pour autant être utilisée -- ================================================ -- ================================================ -- Envoi un message sur un ou plusieurs portables -- ---------------------------------------------------------------------------------- -- Parmètre : -- idPortables : numéro d'un portable ou tableau de plusieurs portable -- message : message à envoyer -- Exemple : -- sendPush(23, "Envoi d'un message simple") -- sendPush({23,25,27}, "Envoi a plusieurs destinataires") -- ================================================ function sendPush(idPortables, message) if (type(idPortables) == "table") then -- Si nous avons plusieurs numéros dans un tableau {} for i = 1, #idPortables do -- On envoi le message sur tout les portables fibaro:call(idPortables[i], "sendPush", message) end fibaro:debug(string.format("Pushs envoyés : %s", message)) elseif (type(idPortables) == "number") then -- Si nous avons un seul numéro de portable fibaro:call(idPortables, "sendPush", message) fibaro:debug(string.format("Push envoyé : %s", message)) else fibaro:debug(string.format("Erreur : le numéro %s n'est pas valable", idPortables)) end end -- ================================================ -- Retourne les information sur un device -- ---------------------------------------------------------------------------------- -- Parmètre : -- deviceId : l'dientifiant du device -- Exemple : -- local message = getDeviceInfo(69) -- ================================================ function getDeviceInfo(deviceId) local etat = "ouverte" if (fibaro:getValue(deviceId, 'value' ) == "0") then etat = "ferme" end return string.format("La %s est %s.", fibaro:getName(deviceId), etat) end -- ================================================ -- FIN DE LA PREPARATION DU CODE -- ================================================ -- ================================================ -- DEBUT DU CODE PRINCIPAL -- ================================================ -- Déclaration du/des numéros de portables local idportables = 181 -- local idportables = {23, 24, 25} -- Le déclencheur de cette scène, va nous permettre de savoir qui et -- comment cette scène a été démarrée local SourceTrigger = fibaro:getSourceTrigger() if (SourceTrigger['type'] == 'property') then -- si la scène a été démarrée par un "device", on va récupérer -- les informations du device local message = getDeviceInfo(SourceTrigger['deviceID']) -- puis l'envoyer sur les portables sendPush(idportables, message) elseif (SourceTrigger['type'] == 'other') then -- Si la scène a été démarrée manuellement sendPush(idportables, string.format("La scène a été lancée le %s a %s", os.date("%d/%m/%Y"), os.date("%R"))) elseif (SourceTrigger['type'] == 'autostart') then -- Si la scène a été démarrée par une sauvegarde de cette scène -- ou le redémarrage de la box sendPush(portables, string.format("La box a démarré le %s a %s", os.date("%d/%m/%Y"), os.date("%R"))) end 3
Steph11 Posté(e) le 13 mai 2015 Signaler Posté(e) le 13 mai 2015 Et bien !!! Tu n'arrêtes pas avec tes programmes ! Au grand bonheur de tous ! un grand merci à toi et à ceux qui on participé !
mprinfo Posté(e) le 13 mai 2015 Auteur Signaler Posté(e) le 13 mai 2015 C'est une scène qui etait dans le bistrot un travail de plusieurs membres du forum
jojo Posté(e) le 13 mai 2015 Signaler Posté(e) le 13 mai 2015 super tout ça, on apprend beaucoup sur LUA. Mais perso je suis fainéant, et j'utilise GEA : -- notification dès que la porte est ouverte GEA.add(id["Porteâ€],-1,"La porte est ouverte") -- notification si la porte est ouverte depuis 5 min GEA.add(id["Porteâ€],5*60,"La porte est ouverte depuis #duration#") -- notification à la fermeture de la porte GEA.add(id["Porteâ€],-1,"La porte est fermée",{"Inverse"}) N.B. mprinfo : ce n'est PAS pour casser ta baraque, mais il y a plusieurs façons de faire : les fainéants comme moi les fan du LUA comme toi, mais grâce à eux on apprend beaucoup et ils génèrent des idées 1
mprinfo Posté(e) le 13 mai 2015 Auteur Signaler Posté(e) le 13 mai 2015 Jojo je sais que tu es un fan de lua tu utilises gea pour certaines choses et tu te prends comme moi la tête a faire des scripts et dieux sais que c'est bon lorsque cela fonctionne après des heures a s'arracher les cheveux lol
jojo Posté(e) le 13 mai 2015 Signaler Posté(e) le 13 mai 2015 en effet, quand je peux le faire simplement avec GEA, je le fait avec GEA. Quand cela devient plus touchy, c'est du pur LUA (modification avec 1 click de mes heating panels en fonction du mode de chauffe de la maison et des vacances : cela me fait penser que je devrais le partager) 1
cybersquat Posté(e) le 14 mai 2015 Signaler Posté(e) le 14 mai 2015 (modifié) Merci du partage, a tester de suite ^^ @mprinfo j'ai installé la scène et j'ai cela dans le débug [DEBUG] 14:28:57: Erreur : le numéro nil n'est pas valable Modifié le 14 mai 2015 par cybersquat
q.philippe Posté(e) le 15 juillet 2015 Signaler Posté(e) le 15 juillet 2015 Bonjour Je voudrais créer une scène qui se déclenche que sur un cumul de module en 'alerte' et revenu 'Normal' dans un intervalle de 5 min , en gros , seulement si le garage vient de s'ouvrir (et donc refermer ensuite), et que 'presence-voiture= de 0 à 1 ET que la Porte du garage en 'ALERTE' et que Mode 'Soir' ou 'Nuit' ALORS , le NABAZTAG me dit 'Bonsoir',,, (((( si c'est jour, dit Bonjour' bien sure !!!))) tout cela dans un intervalle de 5 min env le temps de rentrer la voiture , Hu
spirituAlK Posté(e) le 8 octobre 2015 Signaler Posté(e) le 8 octobre 2015 Bonjour, je voudrais utilisée cette scène pour vérifie si mes capteurs de port sont bien fermer avant d'activé mon alarme et ainsi m'envoyer un message push pour m'avertir si telle ou telle porte/fenêtre est ouverte avant l'activation de l'alarme. malheureusement je ne capte pas tout le code, certaine fonction me sont inconnues
pepite Posté(e) le 9 octobre 2015 Signaler Posté(e) le 9 octobre 2015 Salut, Qu'est-ce que tu ne comprends pas ?
spirituAlK Posté(e) le 9 octobre 2015 Signaler Posté(e) le 9 octobre 2015 un peu tt ! j'essaie par mes propres me moyen mais je n'arrive pas à m'envoyer un message push du genre: j'ai un module virtuel avec un bouton qui dans l'ideal test mes capteurs de porte avant d'armer l'alarme ! Comment personnaliser le push comme tu l'as fait ici sendPush(idportables, string.format("La scène a été lancée le %s a %s", os.date("%d/%m/%Y"), os.date("%R")))
pepite Posté(e) le 9 octobre 2015 Signaler Posté(e) le 9 octobre 2015 Je n'ai rien fait, tout revient à @mrprinfo Pour personnaliser le push, tu modifies la variable avec l'id de ton tel qui doit recevoir le push -- Déclaration du/des numéros de portables local idportables = 181Puis tu modifies ce qu'il y a ecrit entre les apostrophes, après le string.format
spirituAlK Posté(e) le 9 octobre 2015 Signaler Posté(e) le 9 octobre 2015 Bon j'ai essayer cette aprem midi mais rien ne se passe quand la porte est ouverte ou fermer quand je démarre la scène manuellement le seul message push que je reçois est: la scène a démarré à tel heure. :'(
pepite Posté(e) le 14 octobre 2015 Signaler Posté(e) le 14 octobre 2015 Bonjour, Désolé pour la réponse tardive, As tu bien déclaré dans ton entete les ID de tes portes ?
vjoubin Posté(e) le 14 novembre 2015 Signaler Posté(e) le 14 novembre 2015 bonjour à tous, cette scene fonctionne parfaitement, et en continu je n'arrive pas à la désactiver le seul moyen est de décocher "scene active" dans ses paramètres mon but étant de pouvoir l'activer ou la désactiver par une requette http lors de la mise en route de mon alarme quelqu'un a t il une suggestion??
Moicphil Posté(e) le 14 novembre 2015 Signaler Posté(e) le 14 novembre 2015 Salut Via l'api tu peux effectuer une requête pour lancer ou stopper une scene HC2:GET("/api/sceneControl?id=XX&action=start") --Renseigner l'Id de la scène à commander
vjoubin Posté(e) le 14 novembre 2015 Signaler Posté(e) le 14 novembre 2015 merci pour ta reponse, j ai créé un vd avec cette ligne, le probleme est que meme en appuyant sur stop dans la scene je continue de recevoir les notifications
jojo Posté(e) le 14 novembre 2015 Signaler Posté(e) le 14 novembre 2015 en fait avec les requêtes http, tu pourras démarrer ou stoper une scène, mais pas l'activer ou la déactiver
mprinfo Posté(e) le 3 janvier 2016 Auteur Signaler Posté(e) le 3 janvier 2016 Up Envoyé de mon SM-G900F en utilisant Tapatalk
Messages recommandés