Aller au contenu

Recommended Posts

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,....

 

Partager ce message


Lien à poster
Partager sur d’autres sites

je comprend pas très bien, tu veux me faire comprendre que le popup s'affiche  meme si le smartphone est en veille 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 
@971jmd, c'est exactement ce que @Steven a proposé ;-), ecrit en plus "court" ;-)Parfait si ca fonctionne, tant mieux ;-)

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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!

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Mets un "Repeat"

et ta ligne true et -1 ne fonctionnera pas comme ceci.

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites
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

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

est-ce-que je me trompe ou pas

j'en ai pas d'utilité pour le moment, mai j'ai bien comprendre :rolleyes: 

-----  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})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

salut a tous

 

 Dans GEA  est-il possible de stoker un valeur dans une variable LOCAL ?

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

merci 

Ouuu c'est pas gagné, bon je prend un efferalgan et étudie tout ça :P

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai étdité mon post précédent pour que tu puisse mieux comprendre les boucles for _,, sinon ......

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@jojo,

 

Je me demande si en passant par des false.true pour tes variables tu gagnerais pas en lisibilité avec moins de IF.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×