Aller au contenu

Messages recommandés

Posté(e)

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

 

Posté(e)

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

 

Posté(e)

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!

Posté(e)

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

 

Posté(e)

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

 

Posté(e)

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.

Posté(e)
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

 

 

Posté(e)

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

 

Posté(e)

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

 

Posté(e)

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

 

Posté(e)

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
Posté(e)

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

 

Posté(e)

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

 

×
×
  • Créer...