Aller au contenu

Support Gea


Steven

Messages recommandés

et si on mettais dans le code 1*30 > 30 (">" au lieu de ">=") ne serait-ce pas plus simple ?

Comme ça on sait que la durée désirée sera toujours "au moins" respectée et un dépassement maximum possible de la durée du cycle - 1 sec ?

Juste une idée en l'air. 

 

GEA n'a jamais eu comme vocation d'être précis sur les temps de traitement, perso, je m'en fiche de savoir si ma porte est ouverte depuis plus de 5mn 30s (plus ou moins 5 à  6 min me suffisent). A l'époque, il y avait le script "Scheduler" qui lui était 100% dédié à  la gestion des heures. Ce que j'ai toujours trouvé étrange vu que notre chère fibaro n'est vraiment pas une montre suisse (et je sais de quoi je parle). Pendant très longtemps la fibaro prennait plus de 5minutes de retard en 3 jours :(  

 

Dans ton cas, au lieu de modifier le code en remplacant >= par >, il te suffit de remplacer tes 30 ... par 31 :) Ta proposition est viable mais ne fait que de déporter le problème. Car si quelqu'un ouvre sa porte à  8h00'00 et demande d'être averti 30secs plus tard, dans ton cas, cela sera 1mn plus tard, soit le double du temps souhaité.

 

Je l'ai toujours dis et re-dis avec GEA, on est à  plus ou moins 30 secondes, on peut réduire la marge en demandant une exécution toutes les 15sec voir 10 sec mais je n'en vois pas l'utilité. Si j'ai besoin d'un script super précis, je l'écrit moi-même, mais cela ne met jamais arrivé.

 

Donc ne cherchons pas la perfection alors qu'elle est inutile. La perfection ne doit pas être dans le code mais dans son auteur ... purrrréééé, j'ai du boulot  :)

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

@steven, merci pour lexplication ;-)

 

@jojo, je pense que une duree à  plus ou moins 30 secs est qdmême plutot précis. Si tu as besoin d'etre encore plus précis, mieux vaut passé par une scene. GEA est qd meme dejà  bien complet, après cela devient une usine à  gaz et donc compliqué à  aintenir. Enfin c'est mon avis

 

@flechg, cela devrait fonctionner pourtant

 

Non, il ne manque pas le 1, en fait GEA  vérifie SI le Wallplug est éteint avec le Inverse et SI la porte de garage est ouverte depuis 15 mins, alors fermeture de la porte de garage.

 

Comme ceci tu n'aurais qu'une seule ligne GEA et pas 2, car lorsque le wallplug sera allumé, la condition ne sera pas remplie, laporte de garage ne se fermera donc pas, c'est bien ce que tu veux ?

GEA.add({id["WallPlug"], {"Value+", id["PORTE_GARAGE"], 90}}, 15*60, "La porte du garage est ouverte depuis plus de 15 minutes", {{"Inverse"}, {"close", id["PORTE_GARAGE"]}})
Lien vers le commentaire
Partager sur d’autres sites

@pépite

merci pour ton aide je vais jeter un coup d oeil quand je rentre ce soir je penses alors que j ai pu me tromper en copiant mais je n avais pas de message d erreur dans le debeug bizarre

je te tiens au courant

merci encore

Lien vers le commentaire
Partager sur d’autres sites

je ne comprends vraiment pas pourquoi cela ne fonctionne pas la lumière lors de la nouvelle détection de présence repasse à  25% même si le mode tv est activé et donc à  "oui"

j'ai essayé d'écrire ces lignes de plusieurs façons mais rien à  faire ...

local luminosite_faible_salon_TV_mode_non = {"If",{{"Value-", id["LUMINOSITE_SALON"], 50},{"Global", "M_TV", "non"}}}
-- local TV_mode_non = {"If",{{"Global", "M_TV", "non"}}}


--GEA.add({{id["CP_SALON"]},{"Value-", id["LUMINOSITE_SALON"], 50},{"Global", "M_TV", "non"}}, -1, "", {{"Value", id["LUMIERE_AMBIANCE_SALON"], 25}})     

GEA.add({id["CP_SALON"]}, -1, "", {{"Value", id["LUMIERE_AMBIANCE_SALON"], 25},luminosite_faible_salon_TV_mode_non})
 local arretlumambiancesalon = GEA.add({{"Value", id["CP_SALON"], 0},{"Global", "M_TV", "non"}}, 2*60, "", {{"turnOff",id["LUMIERE_AMBIANCE_SALON"]}})
 
   -- Gestion Mode TV
 -- mode manuel via telecommande
   GEA.add({"SceneActivation", id["TELCO_SALON"], 3}, -1, "", {{"Global", "M_TV", "oui"}})
   GEA.add({"SceneActivation", id["TELCO_SALON"], 4}, -1, "", {{"Global", "M_TV", "non"}})
   GEA.add(true, 30, "", {{"Time", "01:01", "01:02"}, {"Global", "M_TV", "non"}})
  
-- mode automatique via détection tv allumée

    GEA.add({"Sensor+", id["PRISE_TV"], 20}, 1*30, "", {{"Global", "M_TV", "oui"}})
    GEA.add({"Sensor-", id["PRISE_TV"], 20}, 1*30, "", {{"Global", "M_TV", "non"}})

  GEA.add({"Global", "M_TV", "oui"}, -1 , "" , {{"Close",  id["VR_SALON"] , 100},{"Value", id["LUMIERE_AMBIANCE_SALON"], 11}, nuit} 



Lien vers le commentaire
Partager sur d’autres sites

Pourrais-tu essayé de remplacer les Global par Global!

 

Donc les {"Global", "M_TV", "oui"} devient {"Global!", "M_TV", "non"}

Et les {"Global", "M_TV", "non"} devient {"Global!", "M_TV", "oui"}

 

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Evolution du moteur des actions :

j'ai de temps à  autre besoin dans les actions de changer une valeur d'un device avec une variable et non pas "en dur" comme le fait GEA aujourd'hui dans les actions. Exemple : je change la valeur de la consigne de chauffage pour le mode ECO de 14 à  15°, je veux que cette valeur soit reportée dans le thermostat au moment du changement

 

J'ai donc commencé à  modifier le moteur sur les actions où j'en ai besoin. Par exemple pour Value, j'ai ajouté à  la syntaxe avec Value, id module, paramètre une "intelligence" sur "paramètre"

 

Si le paramètre ne commence pas par #, je garde l'ancien comportement, sinon, je commence par récupérer la valeur de la variable globale derrière le # avec un getGlobalValue, puis je fais la même chose qu'avant. Comme ca, dans une scène, je peux faire {"Value", id_module, #Global_Var1} au lieu d'avoir des valeurs en dur, et surtout, je peux changer ces valeurs dynamiquement

 

S'ily a d'autres solutions pour prendre en compte des variables dynamiquement que d'aller toucher au moteur, je suis rpeneur des idées

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

GEA.add({"Global!", "MaVar", "---"}, ...., {{"Value", id, #value#}})

#value# sera remplacé par la valeur de MaVar.

 

Sinon, il y a aussi les functions.

 

Je trouves tes idées très bonnes, mais elles le deviendront vraiment que si tu partages ton code  :P

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

@atalata :

 

Tu as essaye comme ca, peut-etre ?

GEA.add({"Global!", "variable", valeur}, 30, "valeur d'id_module : #value#", {{"Value", "id", "#value#"}})
GEA.add(....,30, "", {{"Function", function() fibaro:getGlobalValue(variable) end}})

OOPS, désolé, je n'avais pas vu la réponse de Steven

Modifié par pepite
  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

@Frederic, comme ca alors peut-etre

 

soit avec le "disarmed" : (pris en compte pour laporte d'entree qui est la 1ere condition ;-)

 local sireneon = {"Value", id["sirene"], 1}
 local porteentreedesarmee = {"Value+", id["Porte_Entree"], -1}

 GEA.add({porteentreedesarmee, sireneon},  -1, "", {{"Disarmed"}, {"turnOff", 317}})

soit sans le "disarmed"

local sireneon = {"Value", id["sirene"], 1}
local porteentreedesarmee = {"Value", id["Porte_Entree"], 0}
   
GEA.add({porteentreedesarmee, sireneon},  -1, "", {{"turnOff", 317}})

Qu'en penses tu ?

 

je reviens avec mon histoire de "Disarmed", puisque tu es dans les parages @Steven  ;)

 

je veux me servir de l'état de plusieurs capteur, pas du changement de l'état.

@pepite m'a proposé des idée mais cela ne fonctionnent pas. (mais merci quand même  ;) )

 

Comment on utilise "Disarmed", es ce que c'est la bonne commande pour mon besoin.

 

je veux faire le même principe pour la sirène que pour les lumières extérieur, si on les allume alors qu'il fait jour alors elles sent coupe, si la sirène sonne alors que certain capteurs sont désarmés, ça coupe la sirène.

Lien vers le commentaire
Partager sur d’autres sites

Salut a tous 

j ai un pb j ai un message d erreur

[ERROR] 13:38:33: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:66: Assertion failed: Expected number

 
 
depuis hier ma box fait n importe koi
j ai des états de module faux et la impossible de repasser en v4.040  je suis en v4.042
si vous avez une idée je suis preneur 
 
merci encore
Lien vers le commentaire
Partager sur d’autres sites

1/ repasser dans un précédent firmware est impossible (sauf 3.600, puis ensuite directement 4.042)

2/ les fautes de frappe (pour moi en tout cas) dans GEA sont fréquentes, alors dès que je modifie 1 ligne, je sauve, et regarde dans le log s'il àdémarré complètement juste qu'au bout sans erreur.

Je sais ainsi quelle ligne de GEA j'ai modifée avec une erreur.

Donc fait un premier test en mettant tes dernières modif en commentaire, pour voir si tu as toujours l'erreur.

Lien vers le commentaire
Partager sur d’autres sites

@flechg,

1/ bonne chance avec ton recovery

2/ ce que je voulais expliquer, c'est que suite àune erreur de syntaxe dans le code GEA que nous entrons, cela génère une erreur de code plus loin, dans le code de Steven, bien qu'il n'y ait aucune erreur dans la partie de Steven.

Donc le numéro de ligne reporté par le debug, n'est pas toujours le bon. C'est pour cela qu'àchaque modif je sauve et vérifie

Lien vers le commentaire
Partager sur d’autres sites

Malgré la modification du code avec les Global!   la nouvelle détection de présence repasse toujours à  25% même si le mode tv est activé et donc à  "oui"

 

Un vrai mystère cette histoire.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...