Steven Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 Je pense avoir trouvé ... fibaro:killScene() n'existe pas c'est fibaro:killScenes() avec un "s" a la fin ... c'est logique vu qu'on kill qu'une seule scène .... m'ennnnfffffffiiinnnnnn. 1
Steven Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 Voici la version définitif avec la suppression des messages multiple : --[[ %% properties 108 value --]] local delai = 60000 local id_spots = 108 local smartphones = {84} local scenes = {["sceneId"]=330} local id_de_cette_scene = 18 -- !!!! ATTENTION ICI !!!! local allume = tonumber(fibaro:getValue(id_spots, "value")) > 0 if (not allume) then -- si le spot est éteint, on arrête TOUTES les scènes précédément démarrées fibaro:killScenes(id_de_cette_scene) elseif (fibaro:countScenes() <= 1) then setTimeout(function() api.post('/mobile/push', { ["mobileDevices"]=smartphones, ["message"]='Éteindre les spots de la salle à manger allumés depuis 1h30?', ["title"]='Question:', ["category"]='YES_NO', ["data"]=scenes } ) end, delai ) end Chez moi cela ne fonctionne pas avec mon RGB pour la raison suivante : étrangement, lorsque je l'allume, il me déclenche systématiquement 2 instance du scénario en même temps. J'espère que tu n'auras pas ce problème. 1
megabubu Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 (modifié) alors la, ça marche nikel pour les 2 scènes, spots + ruban! sachant que hier, j'avais 2 instances pour le ruban, et la comme par magie, plus qu'une instance et tout fonctionne Par contre, pourrais-je aller plus loin Peut-on faire redémarrer la scène si on appuis sur "non" dans la réponse interactive, car sinon la question n'est plus jamais posé, alors que sur le moment c'est non, mais plus tard ca aurait était "oui" . Merci pour tout, je suis trop content Modifié le 24 février 2017 par megabubu 1
Steven Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 Donc si tu appuie sur OUI, on éteint et donc cela arrête tout ... ça c'est fait. Mais si tu appuies sur NON, tu aimerais donc ... simplement relancer ce même scénario ? Il me semble qui suffirait de faire ainsi : local id_de_cette_scene = 18 -- !!!! ATTENTION ICI !!!! <-- on y met tout en haut local delai = 60000 local id_spots = 108 local smartphones = {84} local scenes = {["sceneId"]=330, ["sceneId"]=id_de_cette_scene} -- <--- on change ici 1
megabubu Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 --[[ %% properties 108 value --]] local id_de_cette_scene = 18 -- !!!! ATTENTION ICI !!!! local delai = 60000 local id_spots = 108 local smartphones = {84} local scenes = {["sceneId"]=330, ["sceneId"]=id_de_cette_scene} local allume = tonumber(fibaro:getValue(id_spots, "value")) > 0 if (not allume) then -- si le spot est éteint, on arrête TOUTES les scènes précédément démarrées fibaro:killScenes(id_de_cette_scene) elseif (fibaro:countScenes() <= 1) then setTimeout(function() api.post('/mobile/push', { ["mobileDevices"]=smartphones, ["message"]='Éteindre les spots de la salle à manger allumés depuis 1h30?', ["title"]='Question:', ["category"]='YES_NO', ["data"]=scenes } ) end, delai ) end en fait ca donnerait bien cela? si je comprends bien, au lieu de seulement lancer la scène interactive, il lance la scène interactive et redémarre la scène si je n'appui pas sur oui ! je commence à comprendre quand même lol. Mais la faille, c'est que si je n'appui pas, ni sur oui, ni sur non, alors la scène redémarre quand même, et je pourrais alors avoir 2 questions identique au bout de 01h30 pour les spots, la ca va encore, mais pour le ruban c'est au bout de 5 min, la je peux avoir alors beaucoup plus, non?
Steven Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 Non, la scène ne se relance pas automatiquement, en fait, tu as une instance qui tourne pendant 1h30 ou 5mn et qui au bout de ce laps de temps, te demande quoi faire : 1. OUI = Eteindre la lumière (sceneID = 330) 2. NON = Relancer ce même scénario (sceneID = xxxx) Si tu ne fait rien, le scénario ne va pas continuer. Tu n'auras donc pas 2 fois le même scénario qui tourne. 1
megabubu Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 Alors, avec la scène ci-dessous, ça ne marche plus, au bout de 20 sec (pour le test), j'ai bien le message "yes" ou no", cependant, quand je réponds "no", rien ne se passe, et quand je réponds "yes", les spots ne s'éteignent pas et la scène se relance. --[[ %% properties 184 value --]] local id_de_cette_scene = 339 -- !!!! ATTENTION ICI !!!! local delai = 20000 local id_spots = 184 local smartphones = {268} local scenes = {["sceneId"]=330, ["sceneId"]=id_de_cette_scene} local allume = tonumber(fibaro:getValue(id_spots, "value")) > 0 if (not allume) then -- si le spot est éteint, on arrête TOUTES les scènes précédément démarrées fibaro:killScenes(id_de_cette_scene) elseif (fibaro:countScenes() <= 1) then setTimeout(function() api.post('/mobile/push', { ["mobileDevices"]=smartphones, ["message"]='Éteindre les spots de la salle à manger allumés depuis 1h30?', ["title"]='Question:', ["category"]='YES_NO', ["data"]=scenes } ) end, delai ) end
Steven Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 En effet, cela ne fonctionne pas ... le OUI déclenche les 2 scénarios et le NON ne fait rien. Avec ce système, il n'y a pas moyen de faire ce que tu demandes. La seule solution serait de faire 2 demandes : 1. "Les spots de la salle à manger sont allumé depuis plus d'1h30, voulez-vous faire quelque chose ?" Si tu fais NON ben plus rien ne se passe 2. "Voulez-vous les éteindre ?" OUI cela les éteints, NON cela va attendre à nouveau 1h30 et relancer le scénario 1.
Steven Posté(e) le 24 février 2017 Signaler Posté(e) le 24 février 2017 Un scénario : local id_de_la_scene_qui_attend = xxxxxxx local id_de_la_scene_qui_eteint = 330 local smartphones = {268} api.post('/mobile/push', { ["mobileDevices"]=smartphones, ["message"]="Voulez-vous les éteindre ?", ["title"]='Question:', ["category"]='YES_NO', ["data"]={["sceneId"]=id_de_la_scene_qui_eteint} } ) fibaro:startScene(id_de_la_scene_qui_attend) Et le deuxième : --[[ %% properties 184 value --]] local id_de_cette_scene = 339 -- !!!! ATTENTION ICI !!!! local id_de_la_scene_question = XXXXXX local delai = 20000 local id_spots = 184 local smartphones = {268} local allume = tonumber(fibaro:getValue(id_spots, "value")) > 0 if (not allume) then -- si le spot est éteint, on arrête TOUTES les scènes précédément démarrées fibaro:killScenes(id_de_cette_scene) elseif (fibaro:countScenes() <= 1) then setTimeout(function() api.post('/mobile/push', { ["mobileDevices"]=smartphones, ["message"]="Les spots de la salle à manger sont allumé depuis plus d'1h30, voulez-vous faire quelque chose ?", ["title"]='Question:', ["category"]='YES_NO', ["data"]={["sceneId"]=id_de_la_scene_question} } ) end, delai ) end 1
Gazous Posté(e) le 25 février 2017 Signaler Posté(e) le 25 février 2017 Fonction très pratique avec une Apple Watch ! Je n'ai pas encore trouvé de cas d'usage mais ça va venir... Merci !
megabubu Posté(e) le 25 février 2017 Signaler Posté(e) le 25 février 2017 @Steven en fait je vais rester sur la scène précédente sans les 2 scènes en série car je trouve moins "waf" à la longue. En tous cas merci pour le temps que tu as passé pour moi :). 1
Alexandru Posté(e) le 12 mars 2017 Signaler Posté(e) le 12 mars 2017 Salut a vous tous Je me dirige vers vous avec ce bout de code, ou je veux l'integrer dans une scene avec notification interactive , en fait si il peut y avoir une seule notification avec tout les points lumineux . Merci pour tout , Bien a vous --[[ %% properties %% globals --]] interrupteur = {8, 10, 12, 14, 21, 24, 26, 35, 60, 80, 167} local startSource = fibaro:getSourceTrigger(); for i = 1, #interrupteur do local interrupteurname = fibaro:getName(interrupteur[i]); local message if (tonumber(fibaro:getValue(interrupteur[i], "value")) > 0) then interrupteurname = string.gsub(interrupteurname," ","_") message = ' '..interrupteurname..' est allumee'; fibaro:debug(message); fibaro:setGlobal('pushnotification', message); fibaro:call(176, "sendPush", message); fibaro:sleep(2000); end end
pepite Posté(e) le 13 mars 2017 Signaler Posté(e) le 13 mars 2017 Bonjour @Alexandru, Je n'ai pas très bien compris ce que tu souhaitais faire. Desolé, on est lundi ;-)
Steven Posté(e) le 13 mars 2017 Signaler Posté(e) le 13 mars 2017 A ce que je comprends : @Alexandru souhaiterais une seule et même scène qui soit capable de : 1. Vérifier quel lampe est allumée (une ou plusieurs) 2. Envoyé une notification pour dire "la/les lampe(s) .....<nom des lampes>... est/sont allumée(s) voulez vous éteindre ?" 3. Si oui lancer une scène capable de la/les éteindre C'est bien cela ? Ou au contraire, c'est une notification par lampe ? Du style : "La lampe du salon est allumée, voulez-vous l'éteindre ?" "Les spots sont allumés, voulez-vous les éteindre ?" ... En fait, je ne sais pas non plus 1
pepite Posté(e) le 13 mars 2017 Signaler Posté(e) le 13 mars 2017 En attente d'explications alors ;-) Excuse nous, Lundi c'est pas simple...
Steven Posté(e) le 13 mars 2017 Signaler Posté(e) le 13 mars 2017 il y a 52 minutes, pepite a dit : Excuse nous, Lundi c'est pas simple... Voir chaotique 1
Alexandru Posté(e) le 13 mars 2017 Signaler Posté(e) le 13 mars 2017 Bonjour messieurs , je m'excuse car je n'ai pas expliqué très clairement , mais @Steven a bien deviner , en fait le bout c'est quand je quitte la maison que je reçois un message " telle lampe est/sont allumée(s) ; voulez vous éteindre ? Je vous remercié encore une fois Bien a vous , Alexandru 1
Steven Posté(e) le 16 mars 2017 Signaler Posté(e) le 16 mars 2017 Alors, une première scène pour tout éteindre (noter son ID pour plus tard) : local interrupteurs = {8, 10, 12, 14, 21, 24, 26, 35, 60, 80, 167} for i = 1, #interrupteurs do fibaro:call(interrupteurs[i], "turnOff") end Et la scène qui contrôle et demande local interrupteurs = {8, 10, 12, 14, 21, 24, 26, 35, 60, 80, 167} local id_de_la_scene_qui_eteint = XXXXXX local message = "" for i = 1, #interrupteurs do local interrupteurname = fibaro:getName(interrupteurs[i]); if (tonumber(fibaro:getValue(interrupteurs[i], "value")) > 0) then interrupteurname = string.gsub(interrupteurname," ","_") if (message ~= "") then message = message .. ", " end message = message .. interrupteurname end end if (message ~= "") then if (message:find(","))then message = message .. " sont allumés, voulez-vous les éteindre ?" else message = message .. " est allumé, voulez-vous l'éteindre ?" end api.post('/mobile/push', { ["mobileDevices"]={176}, ["message"]=message, ["title"]='Question:', ["category"]='YES_NO', ["data"]={["sceneId"]=id_de_la_scene_qui_eteint} } ) end A tester .. (ce que je n'ai pas pu faire ) Courage 3
Alexandru Posté(e) le 16 mars 2017 Signaler Posté(e) le 16 mars 2017 @Steven , je n'ai plus mots , .... Tout fonctionne a merveille , c'est vraiment génial , votre création est exactement comme j'ai rêvé 1
pepite Posté(e) le 17 mars 2017 Signaler Posté(e) le 17 mars 2017 @Steven, le distributeur de rêve ;-) Fini Yoda ;-) 1
MAM78 Posté(e) le 17 mars 2017 Signaler Posté(e) le 17 mars 2017 je sent que je vais pouvoir alimenter mon projet/Tuto de spécifications surveillance de nos habitations. Cela correspond exactement à une partie de ce que je voudrais faire dans mes spécifications lorsque l'on Active l'alarme sur une zoneEnvoyé de mon iPhone en utilisant Tapatalk Pro
nigao Posté(e) le 30 mars 2017 Signaler Posté(e) le 30 mars 2017 (modifié) ios 10.2.1 sur iphone 7 Je reçois bien la notification push... mais pas de Yes / No Quand je clique, ça m'ouvre l'appli fibaro mais rien ne se passe J'ai essayé le push interactif en mode bloc ou la version LUA mais je n'ai jamais rien d'interactif... --[[ %% properties %% events %% globals --]] api.post('/mobile/push', { ["mobileDevices"]={18}, -- ID du telephone ["message"]='bonjour Veux-tu ouvrir les volets', -- La question que l'on veut posser ["title"]='Questions', -- titre de la question ["category"]='YES_NO', -- 'YES_NO' ou 'RUN_CANCEL' ["data"]={["sceneId"]=35} -- ID de la scéne que l'on veut lancer } ); Edit : Oh punaise... Si l'iphone est verrouillé, alors il faut 'appuyer sur la notification push' de l'ecran verrouilé pour ouvrir la question OUI/NON Et attention d'ouvrir le push et pas de deverouiller l'iphone, sinon ça squizz la question. Par contre si le push arrive pendant qu'on joue à clash royale (et oui), alors un appui sur la notification push ouvre l'appli fibaro mais pas la scène. Des utilisateurs en iphone7 ? Modifié le 30 mars 2017 par nigao Ca depend si ecran est verrouilé ou pas
Messages recommandés