Aller au contenu

Nikko

Membres confirmés
  • Compteur de contenus

    278
  • Inscription

  • Dernière visite

  • Jours gagnés

    4

Tout ce qui a été posté par Nikko

  1. Nikko

    Support Gea

    Donc c'est que ta variable globale "Maison" n'est pas mise àjour en mode absence. Quelle action/scene/script bascule cette variable de Present vers Absent ?
  2. Nikko

    Support Gea

    @domodial: Si tu supprimes tout ce qui est {"Portable", id} dans tes lignes et que tu déclares GEA.portables = { 220 , 360 } Tu reçois bien les notifs? Toutes tes ID sont bien déclarées dans l'entete ? (on ne sait jamais un oubli ça arrive...). Cela donne plus l'impression que c'est ta ligne qui ne se déclenche pas et non pas un problème de notification. Dans La fenetre DEBUG, tu vois bien l'action se déclencher ?
  3. Nikko

    Support Gea

    @domodial: As tu le problème juste sur 1 ligne ou plusieurs? Ta syntaxe est bonne Lorsque tu utilises PORTABLE, les Push se fait aux appareils définis par cette option et plus aux appareils définis via GEA.portables. Donc si les 2 id dans MobileID sont faux tu n'auras pas de push du tout (car mauvais id et push générique shunté) pour aucun de tes 2 exemples Si ton id Mobile est OK est pas l'autre tu recevras la notification pour les 2 lignes en exemple. D'où la question, ta première ligne se déclenche t'elle ?
  4. Nikko

    Support Gea

    local timer = tonumber(fibaro:getGlobalValue('TIMER')) GEA.add( true , timer , "" ) Lors de la lecture de la ligne GEA, la variable timer sera remplacé par la valeur de la VG. Mais la ligne GEA.add n'est lue qu'une fois. A ce moment les tables sont céées et les valeurs de temps sont figées. Ceci ne fonctionne donc pas (je ne sais pas si c'est à ça que tu pensais @Jojo) @971jmd: Si tu veux voici un VD écrit très vite fait: un bouton +30s, 1 bouton -30s, 1 bouton ON et 1 bouton OFF. Tu crées une variable globale TRIGGER Lors tu bascules le VD sur ON le décompte se fait et quand on arrive à 0 alors TRIGGER bascule sur 1. Ensuite tu peux baser tes condition GEA sur cette VG: -- A la fin du timer si lampe allumée on éteint GEA.add({{"Global","TRIGGER", 1},id["ECL"]}, -1 , "" , {{"turnOff",id["ECL"]}}) Attention ce n'est pas optimisé (décompte toutes les 3s) c'est juste pour voir si ça te convient. Je t'avoue que je n'a fait que 1 ou 2 essais sous GEA (exemple au-dessus).... Compte_a_rebours.vfib
  5. Nikko

    Support Gea

    En fait quand une instance est lancée en instantanée, toutes les lignes GEA sont parcourues, mais ne sont gardées que celles dont la première condition est l'id (ou vg) déclencheur de la scène. Ensuite évaluation de de chaque entrée gardée puis exécution le cas échéant.... C'est ce que je comprend au code donc il n'est pas impossible que les foudres de Steven ou autre s’abattent sur moi.....
  6. Nikko

    Support Gea

    Dans ce cas on peut vérifier: Un GEA avec Juste ce code (plus les définitions id). Ici 476 est un PIR local groupeLampes = {id["ECL_CUISINE"], id["ECL_HALL"],id["ECL_ESC_HALL"], id["ECL_SALLETV"]} for i=1 , #groupeLampes do GEA.add (476, -1, "Start ", {{"turnOn", groupeLampes[i]}}) end Et au lancement de GEA: Lorsque Mon PIR m'a détecté une nouvelle instance s'est lancée, avec la définition des 4 ID et j'ai bien reçu 4 notifs.
  7. Nikko

    Support Gea

    @jojo: Le -1 dans la boucle ne doit pas poser de problèmes normalement @971jmd: L'intéret de la boucle sur le groupe comme t'a proposé @Jojo est valable si tu as besoin de ce groupe à plusieurs reprises dans GEA, cela t'évite d'ajouter un ID à chaque ajout d'une nouvelle lampe ou encore d'avoir à écrire plusieurs fois de lignes GEA avec 50 turnOff. Si ton groupe n'est que de 3 lampes alors tu peux te contenter des turnoff successifs, ce n'est pas trop dur à suivre, mais sinon c'est vrai que c'est lourd: -- Tout eteindre quand absent depuis 30s GEA.add({"Global","ETATMAISON","ABSENT"}, 30 , "Arret de tous les ECLAIRAGES" , {{"turnOff",id["ECL_GARAGE"]},{"turnOff", id["ECL_ESC_SOUSSOL"]},{"turnOff", id["ECL_BUANDERIE"]},{"turnOff", id["ECL_ESC_HALL"]}}) -- Ou identique en instantanné GEA.add({"Global","ETATMAISON","ABSENT"}, -1 , "Arret de tous les ECLAIRAGES" , {{"turnOff",id["ECL_GARAGE"]},{"turnOff", id["ECL_ESC_SOUSSOL"]},{"turnOff", id["ECL_BUANDERIE"]},{"turnOff", id["ECL_ESC_HALL"]}}) -- Tout Allumer quand present depuis 30s GEA.add({"Global","ETATMAISON","PRESENT"}, 30 , "Allumage de tous les ECLAIRAGES" , {{"turnOn",id["ECL_GARAGE"]},{"turnOn", id["ECL_ESC_SOUSSOL"]},{"turnOn", id["ECL_BUANDERIE"]},{"turnOn", id["ECL_ESC_HALL"]}}) -- Ou identique en instantanné GEA.add({"Global","ETATMAISON","PRESENT"}, -1, "Allumage de tous les ECLAIRAGES" , {{"turnOn",id["ECL_GARAGE"]},{"turnOn", id["ECL_ESC_SOUSSOL"]},{"turnOn", id["ECL_BUANDERIE"]},{"turnOn", id["ECL_ESC_HALL"]}}) Une autre solution te permettant de gérer un groupe de lampe à part sans avoir à tout réécrire à chaque fois et où il est facile d'ajouter/retirer une lampe dans le groupe: -- Définition d'un fonction d'allumage pour un groupe de lampes -- order: type Number. 1 = Allumer / 0 = Eteindre function groupeLampes(order) -- Table contenant les id des lampes à gérer local lampes = {id["ECL_GARAGE"],id["ECL_ESC_SOUSSOL"],id["ECL_BUANDERIE"],id["ECL_ESC_HALL"],id["ECL_CUISINE"],id["ECL_SAM"],id["ECL_SALLETV"]} local power = {"turnOff","turnOn"} for i=1 , #lampes do fibaro:call(lampes[i],power[order+1]) end end GEA.add({"Global","ETATMAISON","PRESENT"}, 30 , "Allumage de tous les ECLAIRAGES" , {{"Function", function() groupeLampes(1) end }}) GEA.add({"Global","ETATMAISON","ABSENT"}, 30 , "Arret de tous les ECLAIRAGES" , {{"Function", function() groupeLampes(0) end }}) Ainsi quand tu veux allumer ou éteindre ton groupe tu utilises la fonction: Tu ne reçois que 1 notification et si tu as de multiples conditions (et lignes GEA) où tu as besoin du groupe c'est plus lisible. De plus ajouter une lampe au groupe est moins contraignant. C'est une solution parmi tant d'autres.... Nicolas
  8. Si tu as une prise plus bas, que tu peux tirer une gaine pour amener phase+neutre pour alimenter le module cela serait bien. Passer un fil dans la gaine jusqu'au tableau est possible aussi mais passer un nouveau fil dans une gaine déjà remplie n'est pas forcément évident (en plus peut être du risque d'abimer l'isolant des fils déjà présent). Dans tout les cas, en plus des 2 phases qui sont des commandes sur le volet, il te faut phase + neutre, et il est plus que préférable qu'il soient tous les 2 reliés au même disjoncteur, pour être sà»r que lorsque tu coupes le disjoncteur, phase et neutre soient coupés en même temps.
  9. Salut, Le problème est que l'insertion d'un module va nécessiter la présence du neutre..... Cet interrupteur est vraiment seul? pas de prise ou autre à proximité sur lequel reprendre l'alimentation ?
  10. Nikko

    Support Gea

    Attention au nom de ta table avec les id: c'est ID ou id ? ce n'est pas la même chose.... Si ta table principale est ID alors il y a une faute dans ta condition local groupeLampes = {id["LAMPE_DU_BAR"], id["CENTRE_TABLE"], id["HALOGENE"]} for _,v in ipairs(groupeLampes) do GEA.add({"Value", id["LAMPE_SALON"], 1}, -1, "ok", {{"turnOn", v}}) -- ou -- GEA.add(id["LAMPE_SALON"], -1, "ok", {{"turnOn", v}}) end
  11. Nikko

    Support Gea

    si tu as déjàune table avec les id de ces lampes définies alors ta table devrait être: local groupeLampes = {id["LAMPE_DU_BAR"], id["CENTRE_TABLE"], id["HALOGENE"]}
  12. Nikko

    Support Gea

    Bonjour, Pour les Volets roulant, il vaut mieux prendre un peu en dessous de 99 genre 97. D'autant que la valeur max sur un VR n'est jamais 100 mais 99, et un Value+ contrôle sur strictement supérieur. for i=1 , #groupeLampes do GEA.add ({"Value+", ID["VOLET"], 97}, 1, "", {{"turnOff", groupeLampes[i]}}) end Nicolas
  13. Nikko

    Support Gea

    @971jmd: Le group te permet de faire des ET avec des lignes GEA. Petit exemple: -- Si Lumière Salle à Manger allumée depuis 60s on prévient + Repeat -- Donc à partir de 60s de lumière allumée, tant que pas éteinte,la condition est VRAIE -- Ligne GEA 1 GEA.add(id["ECL_SAM"],60, "La Lumière de la Salle a manger est allumée depuis #duration#" , {{"Group",1}}) -- Si Lumière Cuisine allumée depuis 2 minutes, on prévient -- Donc à partir de 120s de lumière allumée, tant que pas éteinte,la condition est VRAIE -- Ligne GEA 2 GEA.add(id["ECL_CUISINE"],120, "La lumière de la cuisine est allumée depuis #duration#" , {{"Group",1}}) -- Si toutes les conditions du Group 1 sont vraies depuis 30s alors on éteint tout -- Donc si Ligne GEA 1 et Lignes GEA 2 sont vraies depuis 30s -- Ligne GEA 3 GEA.add({"Group",1},30 , "Tu ne veux pas éteindre donc je le fais..." , {{"turnOff",id["ECL_SAM"]},{"turnOff",id["ECL_CUISINE"]}}) L'exemple est là pour l'explication; dans ce cas group n'était pas justifié. Si entre 60s et 120s la lumière ECL_SAM est éteinte alors la ligne GEA1 n'est plus valable et donc la condition de group devient fausse et ne s'exécute pas. Attention aussi aux options:si par exemple j'avais mis un turnoff sur la 1ere ligne, la condition de group ne serait jamais vraie, puisque au bout de 60s on éteint ECL_SAM, et il faut que Ligne 1 et Ligne 2 soient VRAIES toutes les 2 depuis au moins 30s Nicolas
  14. Bonjour, Tu pourrais peut être utiliser un FGS221. La phase qui sort du bouton montée sur S1 La Phase qui sort du bouton Descente sur S2 Phase sur I N sur Neutre Le Orange de ton R12M sur O1 Le Vert de ton R12M sur O2 Yokis FGR221.pdf Tu configures le modules pour utilisation avec des boutons poussoirs (param 14) Tu configures un auto off sur 1s (sur chaque relai) Nicolas
  15. Nikko

    Antenne Tnt Interieure

    Bonjour Pepite, Perso j'ai installé mon antenne sous toiture, car comme l'écris @Nico, elle est protégée d'une part et cela évite un étendoir à linge visible par tout le quartier le long du pignon. Pour l'antenne j'ai ce modèle http://s1.lmcdn.fr/multimedia/5a4414014/328fd55718915/produits/antenne-exterieure-tnt-hd-evology-pro-quick-80-18db.jpg (c'est assez générique comme modèle). Par contre sous toiture cela suppose d'avoir la charpente qui va bien (niveau dégagement) car cela prend de la place ces petites bètes là . Ma maison est à 20kms de l'émetteur. Par contre j'ai quand même mis un ampli derrière car sinon pas/peu de réception. (le cable antenne est long + la maison est assez encaissée). Nicolas
  16. Nikko

    Support Gea

    @lolomail: non true est compatible toutes versions
  17. Nikko

    Support Gea

    @jojo: Merci Mais en même temps tu avais mis la pression pour que je trouve....Et moi la pression je préfère la boire que la subir @lolomail: enlève le inverse
  18. Nikko

    Support Gea

    Cela ne mémorise pas une variable locale, mais en fait chaque Ligne GEA possède un identifiant. Un Stoptask/notstarted suspend l'identifiant; en clair cette ligne GEA n'est plus contrôlée tant qu'elle n'est pas marquée de nouveau active par un restarttask. La ligne d'arret de lampe ne devient active qu'a partir du moment où tu ouvres ton portail ET que la dite lumière est éteinte alors que si tu allumes ta lampe à la main, il n'y a aucune action GEA qui dit que tu dois démarre l'action. D'ailleurs si tu éteins ta lumière à la main moins de 5 minutes après l'allumage par le portail, tu auras comme conséquence qu'au prochain allumage de lampe, cette dernière s'éteindra au bout de 5 minutes, car rien n'auras déclenché le stop task. Il faudrait en plus ajouter un truc du genre: GEA.add(id["ECL_A"], 30 , "" , {{"inverse"},{"StopTask",GestionA}}) --ou en instantané: GEA.add(id["ECL_A"], -1 , "" , {{"inverse"},{"StopTask",GestionA}}) Attention avec le -1 si tu es dans la dernière version du HC2, où le nombre d'instances max de scènes peut être ajusté, il faudrait dans ton cas mettre au moins à 5 Nicolas
  19. Nikko

    Support Gea

    @pepite: Le notstarted et le stop task font la même chose, à la différence que le notstarted est réalisé avant le contrôle des conditions lors de la création des tables alors que le stoptask n'est exécuté que si la condition est vraie et périodiquement. Dans mes lignes, le not started est là pour empécher à la lampe de s'éteindre au bout de 5 minutes tant que le portail n'a pas été ouvert au moins 1 fois (donc restarttask). Il (le notstarted) ne s'applique que lors de la sauvegarde lors de la création des table/actions par GEA. Par la suite il n'est plus controlé. => La tache deviendra active uniquement au premier restarttask Si tu supprimes le stoptask et laisses juste le notstarted, tant que le restart task de la tache n'aura pas été executée cette ligne ne se produira pas; normal. Mais dès lors où ton portail aura été ouvert au moins 1 fois (avec lumière éteint), la tache devient active et le reste; Donc ensuite La seule condition qui rentrera en jeu pour éteindre au bout de 5 minutes sera que la lampe soit allumée. Avec le stoptask, une fois la lumière éteinte la tache n'est plus controlée et tu peux allumer manuellement la lampe sans craindre qu'elle ne s'éteigne au bout de 5 minutes. C'est en tout cas comme ça que je comprends les choses quand je relis le code de GEA @banzai861: L'utilisation de stoptask/restarstak/notstarted suppose l'existence de la VG "GEA_Tasks" Nicolas
  20. Nikko

    Support Gea

    @banzai861 Alors pas sà»r du fonctionnement car pas testé, mais en gros tu ne dois éteindre au bout de 5 minutes que les lampes allumées par ouverture de portail c'est ça? -- Pour chaque éclairage extinction au bout de 5 minutes. Règle non active au début de GEA -- Utilisation de StopTask car de mémoire bug dans MaxTime -- GestionA = GEA.add(id["ECL_A"], 5*60 , "" , {{"turnOff",id["ECL_A"]},{"NotStarted"},{"MaxTime",1}}) GestionA = GEA.add(id["ECL_A"], 5*60 , "" , {{"turnOff",id["ECL_A"]},{"NotStarted"},{"StopTask",GestionA}}) GestionB = GEA.add(id["ECL_B"], 5*60 , "" , {{"turnOff",id["ECL_B"]},{"NotStarted"},{"StopTask",GestionB}}) GestionC = GEA.add(id["ECL_C"], 5*60 , "" , {{"turnOff",id["ECL_C"]},{"NotStarted"},{"StopTask",GestionC}}) GestionD = GEA.add(id["ECL_D"], 5*60 , "" , {{"turnOff",id["ECL_D"]},{"NotStarted"},{"StopTask",GestionD}}) -- A l'ouverture du portail si ECL éteint alors on l'allume et relance la tache d'extinction -- Ainsi seuls les éclairage qui étaient éteints avant ouveture s'éteindrons au bout de 5 minutes. GEA.add({id["PORTAIL"],{"Value",id["ECL_A"],0}}, -1 , "" , {{"turnOn",id["ECL_A"]},{"RestartTask",GestionA}}) GEA.add({id["PORTAIL"],{"Value",id["ECL_B"],0}}, -1 , "" , {{"turnOn",id["ECL_B"]},{"RestartTask",GestionB}}) GEA.add({id["PORTAIL"],{"Value",id["ECL_C"],0}}, -1 , "" , {{"turnOn",id["ECL_C"]},{"RestartTask",GestionC}}) GEA.add({id["PORTAIL"],{"Value",id["ECL_D"],0}}, -1 , "" , {{"turnOn",id["ECL_D"]},{"RestartTask",GestionD}}) C'est tordu et lourd, je l'avoue (en plus de ne peut-être pas fonctionner)...... Nicolas
  21. Nikko

    Support Gea

    En déclenchement immédiat cela donnerait par exemple ceci: -- Sur detection par FGMS ET VG Presence_Maison sur Present ET VG JOUR_NUIT sur NUIT , allumer allogène -- Mettre l'id du fgms dans l'entete; Ex 90 value local fgms = 90 GEA.add({fgms,{"Global", "Presence_Maison", "Present"},{"Global", "JOUR_NUIT", "NUIT"}}, -1 , "" , {{"turnOn",id["HALOGENE_SEJOUR_2"]}})
  22. Nikko

    Support Gea

    @yohan: Les conditions doivent être en premier suivies de la tempo, push et option. De plus on évite le if: -- Si VG Presence_Maison sur Present ET VG JOUR_NUIT sur NUIT depuis 30s, allumer allogène GEA.add({{"Global", "Presence_Maison", "Present"},{"Global", "JOUR_NUIT", "NUIT"}}, 30 , "" , {{"turnOn",id["HALOGENE_SEJOUR_2"]}}) -- Si VG Presence_Maison sur Present ET VG JOUR_NUIT sur NUIT en declenchement immédiat, allumer allogène -- Mettre Presence_Maison dans entete GEA.add({{"Global", "Presence_Maison", "Present"},{"Global", "JOUR_NUIT", "NUIT"}}, -1 , "" , {{"turnOn",id["HALOGENE_SEJOUR_2"]}}) Nicolas
  23. Nikko

    Support Gea

    @flechg: GEA.add({{estTravail}, {"Value-",id['VOLET_PARENT'],5}}, 1*60, "", {{"Time","07:10", "07:12"}, {"Open",id["VOLET_PARENT"],20}}) Dans ce cas là lorsque la valeur du VR est inféreure à 5, alors le VR sera ouvert à 20 (si condition de temps et VG JOURCHOME sur NON) GEA.add({{estTravail}, {"Value-",id['VOLET_PARENT'],55}}, 1*60, "", {{"Time","07:10", "07:12"}, {"Open",id["VOLET_PARENT"],50}}) Dans ce cas là lorsque la valeur du VR est inféreure à 55, alors le VR sera ouvert à 50 (si condition de temps et VG JOURCHOME sur NON). Donc si ton VR est ouvert à 70 alors il ne se refermera pas. normalement, pas d'accolades juste autour de estTravail: local estTravail = {"Global", "JourChome", "NON"} GEA.add({estTravail, {"Value-",id['VOLET_PARENT'],5}}, 1*60, "", {{"Time","07:10", "07:12"}, {"Open",id["VOLET_PARENT"],20}}) Nicolas
  24. Nikko

    Support Gea

    Bonjour @flechg: ta condition estTravail devrait être dans la 1ere partie: -- Si le volet est ouvert à +85% entre 7h10 et 7h12 Ouvrir les 3 volets à 20% GEA.add({"Value+", id["VOLET_EMMA"], 85}, -1, "",{estTravail, {"Time", "07:10", "07:12"}, {"Open",id["VOLET_EMMA"],20},{"Open",id["VOLET_PARENT"],20}, {"Open",id["VOLET_SALON"],20}}) -- Si le volet est ouvert à +85% ET VG jourChomé sur NON, que nous sommes entre 7h10 et 7h12 alors Ouvrir les 3 volets à 20% local estTravail = {"Global", "JourChome", "NON"} GEA.add({{"Value+", id["VOLET_EMMA"], 85},estTravail}, -1, "",{{"Time", "07:10", "07:12"}, {"Open",id["VOLET_EMMA"],20},{"Open",id["VOLET_PARENT"],20}, {"Open",id["VOLET_SALON"],20}}) Voilà le code que j'utilise par exemple pour ouvrir mes VR en 2 fois: J'ouvre à une niveau précis lorsque présent, puis seconde ouverture après un certain temps. Si entre temps, avant ou après j'ai activé manuellement GEA ne reprend pas le dessus (à moins d'avoir totalement refermé...) J'ai ces lignes pour chaque VR local estPresent = {"Global","EtatMaison","PRESENT"} local paspreArmement = {"Value",id["SATEL_PREARMEMENT"],0} local alarmeInactive = {"Value",id["SATEL_ARMEMENT"],0} GEA.add({estPresent,paspreArmement,alarmeInactive,{"Value-",id['VR_BUREAU'],5}}, 31 , "" , {{"Time","Sunrise>08:00","10:00"},{"Open",id["VR_BUREAU"],40}}) GEA.add({estPresent,paspreArmement,alarmeInactive,{"Value",id['VR_BUREAU'],40}}, 5 * 60 , "" , {{"Time","Sunrise>08:00","10:00"},{"Open",id["VR_BUREAU"],100}}) Nicolas
  25. Nikko

    Support Gea

    Je peux regarder dans GEA pour une modification. Par contre est-ce qu'un réveil du module a déjàeut lieu? Peut être qu'un rafraichissement arrivera àce moment là.
×
×
  • Créer...