pepite Posté(e) le 17 novembre 2016 Signaler Posté(e) le 17 novembre 2016 heuu faut modifier tes parametres das ton json, les valeurs de temat, info... sinon tu vas recevoir le push "coucou..." mais ton Popup sera Message, titre, Desc,....
971jmd Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 je comprend pas très bien, tu veux me faire comprendre que le popup s'affiche meme si le smartphone est en veille
971jmd Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 je pense qu'il y a une confusion entre la méthode de @drboss http://www.domotique-fibaro.fr/topic/1211-support-gea/?do=findComment&comment=143977 et la méthode de @Steven http://www.domotique-fibaro.fr/topic/1211-support-gea/?do=findComment&comment=144007
971jmd Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 enfin j'ai fini par comprendre j'ai tester la méthode de @drboss et elle fonctionne nikel Dans GEA j'ai volontairement mis la notification : "vous avez un Message Popup" pour informer quand le quand le téléphone, tablette... est en arrière plan local param1 = json.encode({ temat = "Message IMPORTANT", info = "A T E N T I O N", desc = "Êtes-vous prêt àfermer les volets roulants, avez-vous vérifié si aucun objet ou personne ne se trouve sous les volets roulants.", typ = "Critical", -- 'Info' - blue (default), 'Success' - green, 'Warning' - yellow, 'Critical' - red bt1_txt = "OUI", -- description d'un bouton 1 bt1_sc = 10, -- le numero de scènes pour exécuter après appuyé sur le bouton 1 bt2_txt = "NON", -- description d'un bouton 2 bt2_sc = 11}) -- le numero de scènes pour exécuter après appuyé sur le bouton 1 local param2 = json.encode({ temat = "Message", info = "B O N J O U R", desc = "Êtes-vous prêt àOUVRIRE les volets roulants.", typ = "Success", -- 'Info' - blue (default), 'Success' - green, 'Warning' - yellow, 'Critical' - red bt1_txt = "OUI", -- description d'un bouton 1 bt1_sc = 10, -- le numero de scènes pour exécuter après appuyé sur le bouton 1 bt2_txt = "NON", -- description d'un bouton 2 bt2_sc = 11}) -- le numero de scènes pour exécuter après appuyé sur le bouton 1 GEA.add({...............}, -1, "vous avez un Message Popup", { {"Global", "Popup", param1}}) GEA.add({...............}, -1, "vous avez un Message Popup", { {"Global", "Popup", param2}}) et la scène POPUP --[[ %% properties %% globals Popup --]] fibaro:debug("Démarré") local message = json.decode(fibaro:getGlobalValue("Popup")) if tonumber(message) ~= 0 then fibaro:debug("Titre:"..message.temat) fibaro:debug("Declaration:"..message.info) fibaro:debug("Date:"..os.date("%I:%M:%S %p | %B %d, %Y")) fibaro:debug("Descrription:"..message.desc) fibaro:debug("Type message:"..message.typ) -- 'Info' - blue (default), 'Success' - green, 'Warning' - yellow, 'Critical' - red fibaro:debug("1 Bouton text:"..message.bt1_txt) fibaro:debug("1 Bouton scen a demare:"..message.bt1_sc) fibaro:debug("2 Bouton text:"..message.bt2_txt) fibaro:debug("2 Bouton scen a demare:"..message.bt2_sc) HomeCenter.PopupService.publish({title=message.temat, subtitle=os.date("%I:%M:%S %p | %B %d, %Y"), contentTitle=message.info, contentBody=message.desc, type=message.typ, buttons = { { caption=message.bt1_txt, sceneId=message.bt1_sc }, { caption=message.bt2_txt, sceneId=message.bt2_sc } } }); fibaro:setGlobal("Popup", "0") fibaro:debug("Envoyé") else -- fibaro:setGlobalValue("Popup", "0") end
pepite Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 @971jmd, c'est exactement ce que @Steven a proposé ;-), ecrit en plus "court" ;-)Parfait si ca fonctionne, tant mieux ;-) 1
magic_281 Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 Bonjour, J'ai 3 questions concernant mon codage dans GEA (je suis en V 5.42) : - je n'arrive pas àmodifier le statut de mes variables : GEA.add(Sunset, -15*60, "", {{"Global", "TimeOfDay", "Day"}}) est ce que ce code est bon ou {"Global", "TimeOfDay", "Day"} ne sert qu'àaller chercher la valeur? - dans la même ligne de code, vous voyez que je voudrais actionner ma variable 1/4h avant le lever de soleil (comme c'est possible de le faire en mode bloc), j'ai l'impression que ce n'est pas possible de la façon dont je l'ai écrit? vous avez une idée de solution pour actionner 1/4 avant le lever de soleil? - enfin j'aimerai pouvoir actionner plusieurs modules de même type simultanément sans avoir àretaper chaque module individuellement, par exemple ouvrir tous les volets de la maison en même temps sur le mode: local VOLETSRDC = { DeviceID["volet_1"], DeviceID["volet_2"], DeviceID["volet_3"], DeviceID["volet_cuisine"] } et GEA.add(estJour, 30, "", {{"Open", VOLETSRDC, 100}}) c'est possible (car làce code ne marche pas)? Merci!
pepite Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 Bonjour @magic_281, Essaie comme ceci plutot Sunset : coucher de soleil, sunrise : lever de soleil. Attention, time est une condition certes, mais qui se met dans les OPTIONS ;-). GEA.add(true, 15*60, "", {{"Time", "Sunrise-15", "Sunrise-15"}, {"Global", "TimeOfDay", "Day"}}) for _,v in ipairs(VOLETSRDC) do GEA.add(estJour, 30, "", {{"Open", v}}) end
magic_281 Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 Aaaahhh.... merci @pepite du coup j'ai fait ca : GEA.add(true, -1, "", {{"Time", "Sunrise-15", "Sunrise-15"}, {"Global", "TimeOfDay", "Day"}}) local estJour = {"Global", "TimeOfDay", "Day"} GEA.add(true, 15*60, "", {{"Time", "Sunset", "Sunset"}, {"Global", "TimeOfDay", "Evening"}}) local estSoiree = {"Global", "TimeOfDay", "Evening"} Je vais tester.. Par contre j'ai toujours pas l'impression qu'il modifie ma variable car j'en ai une plus simple qui ne marche pas : GEA.add(true, 30, "", {{"Time", "09:50", "09:51"}, {"Global", "Ensoleillement", "Soleil"}})
pepite Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 Mets un "Repeat" et ta ligne true et -1 ne fonctionnera pas comme ceci.
Steven Posté(e) le 18 novembre 2016 Auteur Signaler Posté(e) le 18 novembre 2016 Perso, je ferais ainsi : --[[ %% autostart %% properties %% globals TimeOfDay --]] local VOLETSRDC = { DeviceID["volet_1"], DeviceID["volet_2"], DeviceID["volet_3"], DeviceID["volet_cuisine"] } local estJour = {"Global", "TimeOfDay", "Day"} local estSoiree = {"Global", "TimeOfDay", "Evening"} GEA.add(true, 30, "", {{"Time", "Sunrise-15", "Sunrise-15"}, estJour}}) GEA.add(true, 30, "", {{"Time", "Sunset", "Sunset"}, estSoiree}) for _,v in ipairs(VOLETSRDC) do GEA.add(estJour, -1, "", {{"Open", v}}) end Edit : Ne pas oublier que les variables globales doivent être préalablement créées depuis le panneau des variables.
magic_281 Posté(e) le 18 novembre 2016 Signaler Posté(e) le 18 novembre 2016 Merci @Steven, je vais tenter ça aussi.. En tous cas merci àton GEA! je suis en train de faire de la place en virant une bonne partie de mes scénes en bloc.
971jmd Posté(e) le 19 novembre 2016 Signaler Posté(e) le 19 novembre 2016 Merci a vous @pepite et @Steven
971jmd Posté(e) le 19 novembre 2016 Signaler Posté(e) le 19 novembre 2016 Il y a 14 heures, Steven a dit : Perso, je ferais ainsi : --[[ %% autostart %% properties %% globals TimeOfDay --]] local VOLETSRDC = { DeviceID["volet_1"], DeviceID["volet_2"], DeviceID["volet_3"], DeviceID["volet_cuisine"] } local estJour = {"Global", "TimeOfDay", "Day"} local estSoiree = {"Global", "TimeOfDay", "Evening"} GEA.add(true, 30, "", {{"Time", "Sunrise-15", "Sunrise-15"}, estJour}}) GEA.add(true, 30, "", {{"Time", "Sunset", "Sunset"}, estSoiree}) for _,v in ipairs(VOLETSRDC) do GEA.add(estJour, -1, "", {{"Open", v}}) end Edit : Ne pas oublier que les variables globales doivent être préalablement créées depuis le panneau des variables. Salut @Steven dans ton code il manque pas : . . for _,v in ipairs(VOLETSRDC) do GEA.add(estSoiree, -1, "", {{"Close", v}}) end
971jmd Posté(e) le 19 novembre 2016 Signaler Posté(e) le 19 novembre 2016 est-ce-que je me trompe ou pas j'en ai pas d'utilité pour le moment, mai j'ai bien comprendre ----- AU lever du soleil moins 15mm changer la variable TimeOfDay = Day GEA.add(true, 30, "", {{"Time", "Sunrise-15", "Sunrise-15"}, estJour}}) ----- Au coucher du soleil changer la variable TimeOfDay = Evening GEA.add(true, 30, "", {{"Time", "Sunset", "Sunset"}, estSoiree})
971jmd Posté(e) le 21 novembre 2016 Signaler Posté(e) le 21 novembre 2016 salut a tous Dans GEA est-il possible de stoker un valeur dans une variable LOCAL ?
jojo Posté(e) le 21 novembre 2016 Signaler Posté(e) le 21 novembre 2016 oui, bien sûr, mais tu ne pourras l'utiliser que dans l'instence en cours de GEA. Ici, j'initialise la variable LOCALE Ouvrants, qui sera utilisée plus tard GEA.add (true, 1, "", {{"Function", function() Ouvrants = "Non" end}, {"Repeat"}})
971jmd Posté(e) le 21 novembre 2016 Signaler Posté(e) le 21 novembre 2016 salut @jojo j'ai presque compris, a tu des exemple j'ai ce code suivant qui utilise deux variables global, serait il possible de les remplacé par une variable local les deux variables MODEINTERUP MODEDETECTEUR ----MODEINTERUP ----MODEDETECTEUR local tempo = {"Function", function() fibaro:sleep(3000) end} ----Mode Interupteur GEA.add({"Value", id["PLAFONNIER_CUISINE"], 1}, -1, "Mode interupteur actif", {{"Global", "MODEINTERUP", "1"}, {"Global", "MODEDETECTEUR", "0"}}) GEA.add({"Value", id["PLAFONNIER_CUISINE"], 0}, -1, "Mode interupteur inactif", {{"Global", "MODEINTERUP", "0"}, {"Global", "MODEDETECTEUR", "1"}}) ----Mode detecteur GEA.add({{"Value", id["DETTEC_COUL"], 1}, {"Global", "MODEINTERUP", "0"}, {"Global", "MODEDETECTEUR", "1"}}, -1, "", { {"turnOn", id["PLAFONNIER_CUISINE"]}, tempo, {"Global", "MODEINTERUP", "0"}, {"Global", "MODEDETECTEUR", "1"}}) ---- AUTO OFF SOUS MODE DETECTEUR GEA.add({{"Global", "MODEINTERUP", "0"}, {"Global", "MODEDETECTEUR", "1"}}, 30, "", {{"turnOff", id["PLAFONNIER_CUISINE"]}, {"Repeat"}})
jojo Posté(e) le 21 novembre 2016 Signaler Posté(e) le 21 novembre 2016 oui, bien sûr. J'ai très peu de temps maintenant, alors je colle juste ce que j'ai fait -- variables internes -- Ouvrants : Oui ou Non si un ouvrant est ouvert après 22:00 if (Ouvrants == nil) then Ouvrants = "Non" end -- test si un ouvrant est ouvert GEA.add (true, 1, "", {{"Function", function() Ouvrants = "Non" end}, {"Repeat"}}) for _,v in ipairs(groupeOuvrants) do GEA.add (v, 1, "", {{"Function", function() Ouvrants = "Oui" end}, {"Repeat"}}) end ou ceci -- variables internes -- LampesIntTmp : Oui ou Non if (LampesIntTmp == nil) then LampesIntTmp = "Non" end -- Lampes : Oui ou Non if (LampesInt == nil) then LampesInt = "Non" end -- AlarmeNuit : Oui ou Non if (AlarmeNuit == nil) then AlarmeNuit = "Non" end - Alarme de nuit -- test si toutes les lampes intérieures sont éteintes GEA.add (true, 1, "", {{"Function", function() LampesIntTmp = "Non" end}, {"Repeat"}}) for _,v in ipairs(groupeLampesInt) do GEA.add (v, 1, "", {{"Function", function() LampesIntTmp = "Oui" end}, {"Repeat"}}) end GEA.add ({{"Function", function() if LampesIntTmp == "Non" then return true end end}, {"Function", function() if LampesInt == "Oui" then return true end end}}, 1, "", {{"Function", function() LampesInt = "Non" end}}) GEA.add ({{"Function", function() if LampesIntTmp == "Oui" then return true end end}, {"Function", function() if LampesInt == "Non" then return true end end}}, 1, "", {{"Function", function() LampesInt = "Oui" end}}) -- si toutes les lampes éteintes et entre 22:00 et 06:00 depuis 3 min => Alarme_Nuit = Oui GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() if LampesInt == "Non" then return true end end}, {"Function", function() if AlarmeNuit == "Non" then return true end end}}, 3*60, "Alarme nuit activée depuis #duration#. (#date# à #time#)", {{"Inverse"}, {"Time", "22:00", "06:00"}, {"Function", function() AlarmeNuit = "Oui" end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}}) -- si une lampe allumée => Alarme_Nuit = Non GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() if LampesInt == "Oui" then return true end end}, {"Function", function() if AlarmeNuit == "Oui" then return true end end}}, 1*60, "Alarme nuit désactivée. (#date# à #time#)", {{"Inverse"}, {"Function", function() AlarmeNuit = "Non" end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}}) 1
971jmd Posté(e) le 21 novembre 2016 Signaler Posté(e) le 21 novembre 2016 merci Ouuu c'est pas gagné, bon je prend un efferalgan et étudie tout ça
jojo Posté(e) le 21 novembre 2016 Signaler Posté(e) le 21 novembre 2016 j'ai étdité mon post précédent pour que tu puisse mieux comprendre les boucles for _,, sinon ......
971jmd Posté(e) le 22 novembre 2016 Signaler Posté(e) le 22 novembre 2016 j'essaye de comprendre et je vais tenter d'expliqué, pas évident il n’y a plus de numéros de ligne ça c'est le groupe des ouvrant local groupeOuvrants = { ---EXTERIEUR id["VL_PRINCIPAL"], id["VL_BAR"] , } la variable " Ouvrants" -- variables internes if (Ouvrants == nil) then Ouvrants = "Non" end la je pêche un peut, le code vérifie oui ou non indéfiniment, il surveille. mai je comprend pas quoi, il surveille quel valeur ? -- test si un ouvrant est ouvert GEA.add (true, 1, "", {{"Function", function() Ouvrants = "Non" end}, {"Repeat"}}) for _,v in ipairs(groupeOuvrants) do GEA.add (v, 1, "", {{"Function", function() Ouvrants = "Oui" end}, {"Repeat"}}) end Bon la ce que je comprend est que si oui action ou si non action GEA.add ({"Function", function() if Ouvrants == "Non" then return true end end}, 30, "non #duration#. (#date# à #time#)", { {"Inverse"}}) GEA.add ({"Function", function() if Ouvrants == "oui" then return true end end}, 30, "oui #duration#. (#date# à #time#)", { {"Inverse"}})
pepite Posté(e) le 22 novembre 2016 Signaler Posté(e) le 22 novembre 2016 @jojo, Je me demande si en passant par des false.true pour tes variables tu gagnerais pas en lisibilité avec moins de IF. 1
pepite Posté(e) le 22 novembre 2016 Signaler Posté(e) le 22 novembre 2016 je pensais à qelque chose comme ceci, qui sur le fond n'est pas tres différent. @jojo, c'est un test pour ma culture de non DEV ;-) si les experts passent par la pour me corriger c'est sympa ;-) Merci master @Steven Je me suis basé sur cela : {“Function”, function() return true or false, value end} local Ouvrants = false if (Ouvrants == nil) then Ouvrants = false end for _,v in ipairs(groupeOuvrants) do GEA.add (v, 1, "", {{"Function", function() Ouvrants = true end}, {"Repeat"}}) end et cela : local LampesInt = false local LampesIntTmp = false local AlarmeNuit = false if (LampesIntTmp == nil) then LampesIntTmp = false end -- Lampes : Oui ou Non if (LampesInt == nil) then LampesInt = false end -- AlarmeNuit : Oui ou Non if (AlarmeNuit == nil) then AlarmeNuit = false end -- Alarme de nuit -- test si toutes les lampes intérieures sont éteintes --GEA.add (true, 1, "", {{"Function", function() LampesIntTmp = "Non" end}, {"Repeat"}}) for _,v in ipairs(groupeLampesInt) do GEA.add (v, 1, "", {{"Function", function() LampesIntTmp = true end}, {"Repeat"}}) end --GEA.add ({{"Function", function() if LampesIntTmp == "Non" then return true end end}, {"Function", function() if LampesInt == "Oui" then return true end end}}, 1, "", {{"Function", function() LampesInt = "Non" end}}) GEA.add({{"Function", function() return LampesIntTmp end}, {"Function", function() return LampesInt end}}, 1, {{"Inverse"}, {"Function", function() LampesInt = false end}}) --GEA.add ({{"Function", function() if LampesIntTmp == "Oui" then return true end end}, {"Function", function() if LampesInt == "Non" then return true end end}}, 1, "", {{"Function", function() LampesInt = "Oui" end}}) GEA.add({{"Function", function() return LampesInt end}, {"Function", function() return LampesIntTmp end}}, 1, {{"Inverse"}, {"Function", function() LampesInt = true end}}) -- si toutes les lampes éteintes et entre 22:00 et 06:00 depuis 3 min => Alarme_Nuit = Oui --GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() if LampesInt == "Non" then return true end end}, {"Function", function() if AlarmeNuit == "Non" then return true end end}}, 3*60, "Alarme nuit activée depuis #duration#. (#date# à #time#)", {{"Inverse"}, {"Time", "22:00", "06:00"}, {"Function", function() AlarmeNuit = "Oui" end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}}) GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() return LampesInt, false end}, {"Function", function() return AlarmeNuit, false end}}, 3*60, "Alarme nuit activée depuis #duration#. (#date# à #time#)", {{"Inverse"}, {"Time", "22:00", "06:00"}, {"Function", function() AlarmeNuit = true end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}}) -- si une lampe allumée => Alarme_Nuit = Non --GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() if LampesInt == "Oui" then return true end end}, {"Function", function() if AlarmeNuit == "Oui" then return true end end}}, 1*60, "Alarme nuit désactivée. (#date# à #time#)", {{"Inverse"}, {"Function", function() AlarmeNuit = "Non" end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}}) GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() return LampesInt end}, {"Function", function() return AlarmeNuit end}}, 1*60, "Alarme nuit désactivée. (#date# à #time#)", {{"Inverse"}, {"Function", function() AlarmeNuit = false end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}})
Messages recommandés