Aller au contenu

Support Gea


Steven

Recommended Posts

bonjour Steven

 

pour des raisons que j'ignore, les scènes activation ne fonctionne plus et  revoient un message d'erreur dans la v5 GEA  :(

[ERROR] 22:33:59: line 366: attempt to index field '?' (a nil value)

pour info quand je copie le code scène activation dans la version GEA 4.11 toute fonction très bien. :60:

Lien vers le commentaire
Partager sur d’autres sites

Mon code fonctionne bien, mais j'aurai souhaité utiliser ma dernière variable "20" pour bloquer la détection.

 

  ---------------------- CH AMELIA ET SALLE DE BAIN --------------------
  
  local pause = {"Function", function() fibaro:sleep(3000) end}  

 GEA.add( id["DETECTEUR"],  -1, "on", {{"turnOn",id["chamelia"]}, pause, 
                                    {"turnOn",id["sbamaelia"]}, 
                                    {"Time", "17:00", "06:00"}})
  
-------- Eteindre les lampes selon les 4 variables Temps -------------- 
   
local lampetimer1 = GEA.add( true ,  5*60, "5mm", {{"turnOff", id["chamelia"]}, {"turnOff",id["sbamaelia"]}, {"If",{{"Global", "temps", "5"}}}}) 
local lampetimer2 = GEA.add( true ,  10*60, "10mm", {{"turnOff", id["chamelia"]}, {"turnOff",id["sbamaelia"]}, {"If",{{"Global", "temps", "10"}}}}) 
local lampetimer3 = GEA.add( true ,  15*60, "15mm", {{"turnOff", id["chamelia"]}, {"turnOff",id["sbamaelia"]}, {"If",{{"Global", "temps", "15"}}}}) 
local lampetimer4 = GEA.add( true ,  -1, "manu",   {{"turnOff", id["chamelia"]}, {"turnOff",id["sbamaelia"]}, {"If",{{"Global", "temps", "20"}}}}) 

  
GEA.add( id["DETECTEUR"], -1, "restart pour 1mm", {{"RestartTask", lampetimer1}, {"If",{{"Global", "temps", "5"}}}})
GEA.add( id["DETECTEUR"], -1, "restart pour 3mm", {{"RestartTask", lampetimer2}, {"If",{{"Global", "temps", "10"}}}})
GEA.add( id["DETECTEUR"], -1, "restart pour 5mm", {{"RestartTask", lampetimer3}, {"If",{{"Global", "temps", "15"}}}})

GEA.add( id["DETECTEUR"], -1, "Manuel",           {{"RestartTask", lampetimer4}, {"If",{{"Global", "temps", "20"}}}})

 
Lien vers le commentaire
Partager sur d’autres sites


Bon, j'abandonne...

comment est-ce possible que la ligne GEA "Demande de fermeture inutile" puisse s'executer alors que la commande gea était vraie...

Si je demande une fermeture, et que la variable globale Porte_Garage est à  Not_Closed, la porte se ferme, mais la ligne suivante qui elle a la condition  Porte_Garage = Closed s'execue aussi !!!


local estClosed = {"Global", "Porte_Garage", "Closed"}
local estNot_Closed = {"Global", "Porte_Garage", "Not_Closed"}

  -- Si demande d'ouverture et porte fermée, then push, ouvre porte et reset global à  en_attente
  GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estClosed}, -1, "Demande Ouverture Porte Garage GEA à  #time#", {{"turnOn",id["REMOTE_GARAGE"]}})

  -- Si demande de fermeture et porte non fermée (position inconnue), then push, ferme porte
  GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, estNot_Closed}, -1, "Demande Fermeture Porte Garage GEA à  #time#", {{"turnOn",id["REMOTE_GARAGE"]}})

  -- Si demande de fermeture et porte fermée, then reset global à  en_attente
  GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, estClosed}, -1, "Demande Fermeture Inutile", {{"Global", "Porte_Gar_Action", "En_Attente"}})


  

Lien vers le commentaire
Partager sur d’autres sites

en fait ceci

 

GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, estNot_Closed}, -1, "Demande Fermeture Porte Garage GEA à  #time#", {{"turnOn",id["REMOTE_GARAGE"]}})
  
ou ceci, pour GEA c'est la même chose, il execute...  :huh:
 
GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, estClosed}, -1, "Demande Fermeture Porte Garage GEA à  #time#", {{"turnOn",id["REMOTE_GARAGE"]}})
Lien vers le commentaire
Partager sur d’autres sites

et dans le debug, il execute les tâches alors que l'une devrait forcément exclure l'autre.

est-ce possible que les IF (même comportement avec des IF, j'ai essayé) et conditions soient cassés en V5 ??

je suis en 3.591

 

HEEEEEEEEELLLLPP ;-)

[DEBUG] 02:28:09: GEA Version 5.00 : en exécution...

[DEBUG] 02:28:19: [ Porte_Gar_Action=Demande_Ouverture ] Add Global : ajout de la tache pour lancement instantané (ID:8) [turnOn,69] [If..]
[DEBUG] 02:28:19: [ Porte_Gar_Action=Demande_Fermeture ] Add Global : ajout de la tache pour lancement instantané (ID:9) [turnOn,69] [If..]
[DEBUG] 02:28:19: [ Porte_Gar_Action=Demande_Fermeture ] Add Global : ajout de la tache pour lancement instantané (ID:10) [Global,Porte_Gar_Action,En_Attente] [If..]

[DEBUG] 02:28:19: GEA Version 5.00 : en exécution...

[DEBUG] 02:28:19: [ Porte_Gar_Action=Demande_Fermeture ] sendActions : traitement des actions (ID:9) [turnOn,69] [If..]
[DEBUG] 02:28:19: [ Porte_Gar_Action=Demande_Fermeture ] sendActions : !ACTION! : turnOn (ID:9) [turnOn,69] [If..]
[DEBUG] 02:28:19: [ Porte_Gar_Action=Demande_Fermeture ] sendActions : !ACTION! : sendPush Demande Fermeture Porte Garage GEA à  02:28:19 (ID:9) [turnOn,69] [If..]

[DEBUG] 02:28:19: [ Porte_Gar_Action=Demande_Fermeture ] sendActions : traitement des actions (ID:10) [Global,Porte_Gar_Action,En_Attente] [If..]
[DEBUG] 02:28:20: [ Porte_Gar_Action=Demande_Fermeture ] sendActions : !ACTION! : setGlobal Porte_Gar_Action,En_Attente (ID:10) [Global,Porte_Gar_Action,En_Attente] [If..]

[DEBUG] 02:28:20: [ Porte_Gar_Action=Demande_Ouverture ] Add Global : ajout de la tache pour lancement instantané (ID:8) [turnOn,69] [If..]

[DEBUG] 02:28:20: [ Porte_Gar_Action=Demande_Fermeture ] Add Global : ajout de la tache pour lancement instantané (ID:9) [turnOn,69] [If..]

[DEBUG] 02:28:20: [ Porte_Gar_Action=Demande_Fermeture ] sendActions : !ACTION! : sendPush Demande Fermeture Inutile (ID:10) [Global,Porte_Gar_Action,En_Attente] [If..]
[DEBUG] 02:28:20: [ Porte_Gar_Action=Demande_Fermeture ] Add Global : ajout de la tache pour lancement instantané (ID:10) [Global,Porte_Gar_Action,En_Attente] [If..]
Lien vers le commentaire
Partager sur d’autres sites

Hello,

Est ce que tu peux essayer d'abord sans les variables pour voir si c'est lié à  ca ou pas ? je vois pas spécialement d'erreur et chez moi les conditions on a l'air de fonctionner ok

 

GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, {"Global", "Porte_Garage", "Closed"}}, -1, "Demande Fermeture Porte Garage GEA à  #time#", {{"turnOn",id["REMOTE_GARAGE"]}})
GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, {"Global", "Porte_Garage", "Not_Closed"}}, -1, "Demande Fermeture Porte Garage GEA à  #time#", {{"turnOn",id["REMOTE_GARAGE"]}})
Lien vers le commentaire
Partager sur d’autres sites

J'avais d'abord essayé sans, comme ça ne marchait pas j'ai mis les variables mais même comportement... Je viens de réessayer, idem :-/

Je suis en 3.591 et gea 5 et toi ?

Sent From my Vic20

Lien vers le commentaire
Partager sur d’autres sites

@Steven

 

Salut,

 

J'ai trouvé deux bugs dans le code de la V5 concernant "Global".

if (type(entry[GEA.keys["PARAMS"]][i]) == "table" and string.lower(entry[GEA.keys["PARAMS"]][i][1]) == "global" and #entry[GEA.keys["PARAMS"]][i] > 2) thenlocal value = string.match(entry[GEA.keys["PARAMS"]][i][3], "(%d+)")
if (GEA.match(entry[GEA.keys["PARAMS"]][i][3], "inc+")) then
local number = tonumber(fibaro:getGlobalValue(entry[GEA.keys["PARAMS"]][i][2]))
if (type(value) ~= nil) then fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number + value) else fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number + 1) end
elseif (GEA.match(entry[GEA.keys["PARAMS"]][i][3], "dec-")) then
local number = tonumber(fibaro:getGlobalValue(entry[GEA.keys["PARAMS"]][i][2]))
fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number - 1)
if (type(value) ~= nil) then fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number - value) else fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number - 1) end
else
fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], GEA.getMessage(entry,entry[GEA.keys["PARAMS"]][i][3]))
end
GEA.log("sendActions", entry, "!ACTION! : setGlobal " .. entry[GEA.keys["PARAMS"]][i][2] ..",".. GEA.getMessage(entry, entry[GEA.keys["PARAMS"]][i][3]) , true)

1- La ligne 8 est en trop.

 

2- la fonction "type" retourne une chaine donc type(value) ~= nil devrait être type(value) ~= "nil".

Lien vers le commentaire
Partager sur d’autres sites

Je ne peut pas tester ça avant jeudi soir, mais j'espère que ça résoudra mon problème.
Merci :-)
P.s. est-ce que vous pensez que faire tourner 3 gea différents, avec deux versions différentes (3.82 et 5.0) peut causer le genre de problème que je rencontre ?

Je pense plus précisément àla variable globale utilisée par gea: GEA_Tasks. Une interférence est peut-être possible entre deux instances GEA ?!

Sent From my Vic20

Lien vers le commentaire
Partager sur d’autres sites

Je te confirme qu'il va y avoir des interférence, tu devrais utiliser une variable par instance de GEA. 

 

Pour spécifier une autre variable, il te suffit de rajouter dans ton code :

 

GEA.globalTasks = "GEA_Tasks_V5"

ou

GEA.globalTasks = "GEA_Tasks_V3_82"

 

Cela aura pour effet d'utiliser la variable GEA_Tasks_V5 au lieu de la standard et ce uniquement pour cette instance.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

@Shyrka

Voici la version 5.01 qui regroupe tes modifications ainsi que celles de Hansolo, je te laisse vérifier et publier si c'est bon :)

 

Modifications :

- RGB détection du on ou off sur une version 3.590

- Global inc+ et dec-

 

GEA._5_01.lua

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...