Aller au contenu

Support Gea


Steven

Recommended Posts

Bonjour Steven,

 

à‡a faisait longtemps ! Normal tout fonctionne bien avec GEA, qui est d'ailleurs le seul à  bien tourner sur ma box mais enfin passons, j'attend la V4, il parait que tout est corrigé...

Ce matin mes capteurs de mouvement FGMS (tous) ne répondaient plus. J'ai l'habitude... je les réveille et mise à  jour. Ils repartent mais bizarrement malgré la présence d'événements dans le tableau de la HC2, GEA ne réagit plus au mouvement.

Est ce qu'il y a eu une mise à  jour des modules ou un autre problème avec je ne sais pas quoi mais dans tous les cas mes FGMS ne sont plus géré par GEA depuis hier minuit exactement.

J'essaye de comprendre pourquoi.

Amicalement

Séb 

Lien vers le commentaire
Partager sur d’autres sites

Bon voila j'ai trouvé...

En fait tous mes modules FGMS ont été renuméroté dans la nuit pour je ne sais aucune raison !

J'ai remis les bons ID et c'est reparti...

Peut il y avoir une mise àjour automatique àce niveau. Les capteurs de mouvement sont en version 2.6 et zwave 3.67

C'est la première fois que mes ID bougent tout seul.

Une très bonne journée.

Séb

Lien vers le commentaire
Partager sur d’autres sites

@Steven

 

ça ne fonctionne pas en GEA, il affiche dans le tableau des variables    #value#

GEA.add(60, 30, "", {{"Global", "luminosité", "#value#"}})

pour être sur que mon module envois bien sa valeur, j'ai réalisé un teste en LUA, la valeur de mon module s'affiche bien dans le debug

local name = fibaro:getValue(10, "value" )
fibaro:debug("Valeur en % "..name)
Lien vers le commentaire
Partager sur d’autres sites

@Steven

 

Dans GEA v5.01, il y a un bug dans le fonction "GEA.sendActions" dans la partie concernant la vérification de l'état "On/Off". C'est un histoire de parenthèse.

Voici les deux lignes de code corrigés:

if (GEA.match(type, "rgb_driver") and  ((tonumber(fibaro:getValue(tonumber(id), "value")) > 0) or (tonumber(fibaro:getValue(tonumber(id), "currentProgramID")) > 0))) then

et

elseif (GEA.match(type, "com.fibaro.FGRGBW441M") and ((tonumber(fibaro:getValue(tonumber(id), "value")) > 0) and (not fibaro:getValue(tonumber(id), "color") == "0,0,0,0") or (tonumber(fibaro:getValue(tonumber(id), "currentProgramID")) > 0))) then

Je n'ai plus d'erreur sur les "turnOn" et "turnOff" des lampes.

 

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

if (GEA.match(type, "rgb_driver") and  ((tonumber(fibaro:getValue(tonumber(id), "value")) > 0) or (tonumber(fibaro:getValue(tonumber(id), "currentProgramID")) > 0))) then

Le type dans le GEA.match, dans mes longues recherches après la correction des parenthèses, j'en ai conclus que type n'était pas défini j'ai donc ajouté fibaro:getType pour avoir le type du matériel.

 

Mais il est fort possible qu'une subtilité en LUA m'ai échappée (même pratiquement certain)

Lien vers le commentaire
Partager sur d’autres sites

@HANSOLO

 

Tu as raison. Dans la fonction "GEA.sendActions", il manque la définition de "type". Donc après cette ligne:

local etat = fibaro:getValue(tonumber(id), "value")

il faudrait mettre la ligne suivante:

local type = fibaro:getType(tonumber(id))
  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Que pensez-vous de gérer le code sous git ? Ou alors il faudrait le republier ici comme la faisait Steven. sans cela nous aurons bien du mal àne pas diverger.

Lien vers le commentaire
Partager sur d’autres sites

j'ai l'impression que je deviens fou... je cherche maintenant depuis 2 jours et je pense que c'est un bug GEA :-/
 
La variable globale Porte_Garage peut être Closed ou Not_Closed
Si j'écris comme ceci (avec Global!): ça fonctionne
-- Si demande de fermeture et porte non fermée (position inconnue), alors ferme porte
  GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"},{"Global", "Porte_Garage", "Not_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"},{"Global!", "Porte_Garage", "Not_Closed"}}, -1, "Demande Fermeture Inutile", {{"Global", "Porte_Gar_Action", "En_Attente"}})
Par contre si j'écris ça comme ceci:
-- Si demande de fermeture et porte non fermée (position inconnue), alors ferme porte
  GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"},{"Global", "Porte_Garage", "Not_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"},{"Global", "Porte_Garage", "Closed"}}, -1, "Demande Fermeture Inutile", {{"Global", "Porte_Gar_Action", "En_Attente"}})

ça fonctionne aussi; Si la porte est fermée, je reçois une notification "Demande Fermeture Inutile"

par contre si la porte est ouverte, la première ligne s’exécute et ferme la porte, jusque là  c'est normal, mais je reçois aussi la notification "Demande Fermeture Inutile" ?!? qui indique que la 2e ligne GEA s'est executée

 

En mettant le debug, je vois que pour la première ligne GEA, il teste bien la 2e condition (Porte_Garage):

[DEBUG] 21:04:32: [ Porte_Garage=Not_Closed ] isActivate : vérification de l'exception

[DEBUG] 21:04:32: [ Porte_Garage=Not_Closed ] isActivate : type : global variable
[DEBUG] 21:04:32: [ Porte_Garage=Not_Closed ] !CANCEL! isActivate : désactivé
 
Mais plus pour la 2e ligne GEA: il ne reçoit pas la variable à  tester et renvoie activé dans tous les cas
[DEBUG] 21:04:32: isActivate : vérification de l'exception
[DEBUG] 21:04:32: isActivate : activé
 
Pour test, si je remplace la 2e condition par true ou false, c'est correctement pris en compte.
 
Il semble que la première ligne GEA a comme conséquence que la deuxième ligne GEA ne vérifie pas la 2e condition.. car si j'enlève la première ligne GEA tout va bien...
 
dernier test:
écrit comme ceci, donc idem, mais en utilisant le test réel du capteur au lieu d'utiliser la variable globale, ça fonctionne également:
-- Si demande de fermeture et porte non fermée (position inconnue), then push, ferme porte
  GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"},{"Value", id["DETECTEUR_PORTE_GARAGE"], 1}}, -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"},{"Value", id["DETECTEUR_PORTE_GARAGE"], 0}}, -1, "Demande Fermeture Inutile", {{"Value", id["LAMPE_BUREAU"], 0},{"Global", "Porte_Gar_Action", "En_Attente"}})

 

Lien vers le commentaire
Partager sur d’autres sites

J'ai créé un repository GIT ici:

 

 
J'y ai mis la 5.01 de steven et une que j'ai appelé 5.02 avec les 3 modifications ci-dessus (la ligne avec type et 2 lignes avec des erreurs de parenthèses)
 
Tout le monde peut lire, mais seuls les contributeurs peuvent modifier... je pense que c'est plus sur comme ça mais ça peut être changé
Si vous voulez être contributeur (ce que je préfère) donnez moi votre username gitHub via MP
Lien vers le commentaire
Partager sur d’autres sites

Hello,

on/off des lampes fonctionne maintenant bien avec la correction de Hansolo et Shyrka973.

 

Par contre mes taches redémarrent mais ne se déclenchent pas. Quelqu'un utilise t il la fonctionnalité NotStarted et a ses taches qui se déclenchent ? Pour savoir si défaut de commande ou si il faut que je cherche ailleurs.

 

Merci !

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

Bonsoir,

 

Première fois que je pose une question avec du code donc j'espère ne pas me tromper sur la mise en page.

Mon idée est de déclarer la plupart de mes variables initialement donc voici ce que je fais.

Au début je déclare mes ID et j'ai dans le tableau local id :

DETECT_BUREAU_JK = 58,    TEMP_BUREAU_JK = 59,    LUM_BUREAU_JK = 60, 

c'est la température qui m'intéresse ici :

ensuite je déclare mes variables :

local VacancesOff = {"Global", "MODEVACANCES", "0"}
local soirSemaineOff = {"Days", "Weekday"},{"Time", "22:30", "22:32"}
 
je groupe tout ça dans un IF
    local CondMatinSemOn  = {"If",{chauffeSemaineMatinOn,VacancesOff}}
 
je donne la consigne de température  :
 
    local tempChauffeNuit = 17
 
et ensuite je lance ma consigne :
 
 GEA.Add({"Value-", id["TEMP_BUREAU_JK"], tempChauffeNuit}, -1, "", {CondMatinSemOn, {"turnOn",id["CHAUFFE_BUREAU_JK"]}})
l'idée étant de dire, si l'a température est inférieure à  21 degrés alors j'allume le radiateur seulement si le mode vacnes n'est pas ctif et si je suis sur le créneau matinsemaine.
 
En lancant la scène, j'ai un message erreur :
[ERROR] 21:55:13: line 195: attempt to call field 'Add' (a nil value)
 
 
Je ne vois pas où j'ai raté quelque chose?
Est-ce que quelqu'un a une idée?
 
Merci à  vous pour votre aide.
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...