p78ch201 Posté(e) le 21 février 2021 Signaler Posté(e) le 21 février 2021 il y a 19 minutes, Lazer a dit : Désolé je pensais que tu savais (l'API de la HC3 est identique à celle de la HC2) Via l'API HTTP : /api/devices/ID Et tu remplaces ID par l'ID de ton module Puis tu cherches le champ value situé dans properties Bingo ! "value":false, quand la fenêtre est fermée "value":true, quand la fenêtre est ouverte j'aurais appris un truc aujourd'hui ! Merci Lazer j'imagine que ma ligne est donc : GEA.add({{"value", id["FENETRE_CUISINE"],false}, {"Time", "Sunset+30>21:00"},estTravail1}, 1*30,"", {{"Close", id["VOLET_CUISINE"],100}})
Lazer Posté(e) le 21 février 2021 Signaler Posté(e) le 21 février 2021 Bravo ça me semble correct Remarque : on peut aussi l'écrire ainsi, sans préciser la valeur false mais avec le "Inverse" en plus, mais c'est moins clair je trouve (syntaxe simplifiée qui vient du GEA original sur HC2) : GEA.add({id["FENETRE_CUISINE"], {"Time", "Sunset+30>21:00"},estTravail1}, 1*30, "", {{"Inverse"}, {"Close", id["VOLET_CUISINE"],100}}) 1
p78ch201 Posté(e) le 21 février 2021 Signaler Posté(e) le 21 février 2021 il y a 2 minutes, Lazer a dit : Bravo ça me semble correct Remarque : on peut aussi l'écrire ainsi, sans préciser la valeur false mais avec le "Inverse" en plus, mais c'est moins clair je trouve (syntaxe simplifiée qui vient du GEA original sur HC2) : GEA.add({id["FENETRE_CUISINE"], {"Time", "Sunset+30>21:00"},estTravail1}, 1*30, "", {{"Inverse"}, {"Close", id["VOLET_CUISINE"],100}}) je garde l'exemple au cas ou, mais à la lecture, je trouve ça également moins compréhensible j'ai fait quelques tests sur un autre module (FGMS) pour l'extinction des lampes si plus de mouvement et ça fonctionne donc pas de raison que la fermeture des volets ne fonctionne pas ! Merci pour le coup de l'API, je pense que ca devrait m'etre utile !
Bebitoo Posté(e) le 26 février 2021 Signaler Posté(e) le 26 février 2021 (modifié) Bonjour, Je suis débutant en GEA, mais sur la HC3 et le QA de Lazer, en v7.11 actuellement. Je viens d'avoir un plantage bizarre de ma HC3, et me demande s'il peut être du à ma conf GEA. Puis-je la soumettre ici à vos avis, sur le fait qu'elle ait pu causer un plantage, ou tout simplement, m'indiquer si je suis dans l'esprit ? En particulier : mes règles de valorisation de la variable globale Heure, avec des créneaux horaires contigus ? NB : au moment du plantage de ma HC3, soit j'étais sur la version ci-dessous depuis quelques secondes, soit sur la version précédente, depuis 24 heures environs. Et la seule différence entre les deux était une quote (dans la version précédente) remplacée par une backquote (dans la version ci-dessous) dans le texte "l'après-midi" utilisé pour une notification. -- ====================== -- Configuration générale -- ====================== function config(GEA) GEA.debug = true GEA.checkEvery = 30 GEA.portables = { "David, iPhone", } GEA.secureAction = true GEA.language = "fr" end -- ================== -- Règles utilisateur -- ================== function setEvents() local id = { PorteGarageC = 42, PorteGarageD = 43, TiroirCafetiere = 44, } --local férié = {"Global", "Ferie_Aujourdhui", "matin" } -- Syntaxe : GEA.add(<condition(s)>, <durée>, <message>, <actions>, log) -- Attention, les quotes dans les notifications apparaissent précédées d'un backslash : les remplacer par des backquotes ’ -- gestion de la variable globale Soleil GEA.add({"Time", "Sunrise-15", "Sunrise" }, 0, "le soleil se lève" , {"Global", "Soleil", "levant" }) GEA.add({"Time", "Sunrise" , "Sunset" }, 0, "le soleil est levé" , {"Global", "Soleil", "levé" }) GEA.add({"Time", "Sunset" , "Sunset+15" }, 0, "le soleil se couche" , {"Global", "Soleil", "couchant"}) GEA.add({"Time", "Sunset+15" , "Sunrise-15"}, 0, "le soleil est couché", {"Global", "Soleil", "couché" }) -- gestion de la variable globale Heure GEA.add({"Time", "08:00", "12:00"}, 0, "c’est le matin" , {"Global", "Heure", "matin" }) GEA.add({"Time", "12:00", "14:00"}, 0, "c’est midi" , {"Global", "Heure", "midi" }) GEA.add({"Time", "14:00", "18:00"}, 0, "c’est l’après-midi", {"Global", "Heure", "après-midi"}) GEA.add({"Time", "18:00", "21:00"}, 0, "c’est les vespres" , {"Global", "Heure", "vespres" }) GEA.add({"Time", "21:00", "23:30"}, 0, "c’est la soirée" , {"Global", "Heure", "soirée" }) GEA.add({"Time", "23:30", "08:00"}, 0, "c’est la nuit" , {"Global", "Heure", "nuit" }) -- gestion automatique des volets -- à essayer : {"Time": "Sunset+10>08:00"} -- Sample : {"Times", "06:30", "18:30"} , {"Times", "Sunrise", "Sunset"} , {"Times", "Sunrise+30", "Sunset-15"}, {"Times", "Sunrise>07:30", "Sunset<21:00"} -- Notifications toutes les heures des portes de garage restées ouvertes GEA.add(id["PorteGarageC"], 60*60, "porte de garage (C)(D) ouverte depuis #duration#", {"Repeat"}) GEA.add(id["PorteGarageD"], 60*60, "porte de garage (D) ouverte depuis #duration#" , {"Repeat"}) -- Notifications de nouvelle version disponible et démarrage de la HC3 GEA.add({"Info", "updateStableAvailable", true}, 24*60*60, "une nouvelle version est disponible pour votre HC3") --GEA.add({"Info", "updateBetaAvailable" , true}, 24*60*60, "une nouvelle version Beta est disponible pour votre HC3", nil, "Nouvelle version HC3 Beta disponible") --GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "votre HC3 viens de (re)démarrer", nil, "Démarrage HC3") -- Notification de (bon) démmarrage de GEA GEA.add(true, 0, "GEA viens de (re)démarrer sur votre HC3", nil, "Démarrage GEA") end -- Release Notes -- 25/02.2021 -- amélioration de la valorisation de la variable globale Heure : -- saisie de créneaux horaires (et non seulement des heures de début) -- pour qu'aux redémarrages, la variable Heure soit immédiatement valorisée selon l'heure courante -- ajout de la valorisation de la variable globale Soleil -- 24/02/2021 -- ajout d'une première version de la valorisation de la variable globale Heure (manque le matin plus tôt, le mercredi, mais est-ce nécessaire ?) -- 23/02/2021 -- prise en main de GEA, customisation des actions proposées -- création des actions de notifications de portes de garage restées ouvertes Merci d'avance. Modifié le 26 février 2021 par Bebitoo
Lazer Posté(e) le 26 février 2021 Signaler Posté(e) le 26 février 2021 J'ai déjà eu des soucis avec les apostrophes, mais ça s'est toujours limité à des notifications push qui n'arrivent tout simplement jamais. Mais de là à planter la box ? Il faudrait que tu précises la version de ton HC3 aussi, perso je suis toujours sur la 5.050 stable d'octobre dernier, depuis que mon HC3 gère le chauffe-eau, je ne joue plus avec les betas.
Bebitoo Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 (modifié) Bonjour @Lazer, Je suis également sur la dernière version stable (v5.050.13), je ne prends pas le temps/risque de jouer avec les betas. D'ailleurs, existe-t-il un moyen que l'IHM ne nous notifie pas d'une nouvelle version beta disponible ? Je ne pense pas non plus que mes quotes ou backquotes puissent avoir participer au plantage de ma HC3. Le but de ma remarque était de dire que je suis sûr que le code que j'ai copié collé précédemment est celui qu'exécutait GEA au moment du plantage. Et il contient peut-être autre chose de douteux ? Modifié le 27 février 2021 par Bebitoo
Lazer Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 Je ne vois rien de douteux, tes règles GEA semblent assez classiques. Pour la notification de la version Beta sur l'IHM, pas à ma connaissance.
971jmd Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 (modifié) salut a tous j'ai un code simple mai qui ne fonctionne pas si global BOUTONB = 100 Alors passe la la variable BOUTONB à 200 après 2 sec et si BOUTONB = 200 alors passe la variable BOUTONB = 0 après 2 sec je ne comprend trop ou est le problème merci d'avance de votre aide GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"Global", "BOUTONB", "0"}}, -1, "P1" , {{"Sleep", 2, {"Global", "BOUTONB", "200"}} }) GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"Global", "BOUTONB", "200"}}, -1, "P2" , {{"Sleep", 2, {"Global", "BOUTONB", "0"}} }) etc Je souhaite réalisée un bouton trois actions 1 clic ouvre le volet 1 clic stop 1 clic ferme code complet mai qui ne fonctionne pas GEA.add({{"Global", "bouton_b", "0"}},{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}}, -1, "" , {{"Sleep", 2, {"Global", "bouton_b", "open"}}, {"Open", id["VL_BAR"]}}) GEA.add({{"Global", "bouton_b", "open"}, {"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}}, -1, "" , {{"Sleep", 2, {"Global", "bouton_b", "stop"}}, {"Stop", id["VL_BAR"]}}) GEA.add({{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"Global", "bouton_b", "stop"}}, -1, "" , {{"Close", id["VL_BAR"]}, {"Sleep", 2, {"Global", "bouton_b", "0" Modifié le 27 février 2021 par 971jmd
Lazer Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 Ben déjà, vu que tu n'as pas entouré tes conditions Global par des parenthèses, elles vont être prises en compte en tant que déclencheur (-1), donc tu as créé un beau serpent qui se mort la queue : à chaque fois que tu modifies la variable, ça déclenche immédiatement une nouvelle instance de GEA, etc.... Bref.... relis la doc
971jmd Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "100"}}, -1, "1" , {{"Sleep", 2, {"Global", "BOUTONB", "200"}} }) GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "200"}}, -1, "2" , {{"Sleep", 2, {"Global", "BOUTONB", "300"}} }) j'ai tester mai ça fonctionne pas
971jmd Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 j'ai fait le test suivant et je clic la variable BOUTONB pass de A à B GEA.add( { {"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "A"}}, -1, "#date#" , {{"Sleep", 2, {"Global", "BOUTONB", "B"}} }) mai si je rajouter les 2 ligne de code plus rien ne fonctionne GEA.add( { {"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "A"}}, -1, "#date#" , {{"Sleep", 2, {"Global", "BOUTONB", "B"}} }) GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "B"}}, -1, "" , {{"Sleep", 2, {"Global", "BOUTONB", "OKokoko"}} }
Lazer Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 Les parenthèses autour de la condition "(Global)", oui voilà parfait. Ainsi le changement de valeur de la variable globale ne déclenchera pas une instance instantanée de GEA Pour tes 2 lignes, j'ai du mal à voir la finalité.... vu que tu joues des Sleep de 2 secondes, il doit y avoir des effets de bords dans la vérification des paramètres
971jmd Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 (modifié) je comprend pas le problème d'un truc simple Voici ce que je cherche à faire mais qui ne fonctionne pas 1 clic la variable A passe à B 2eme clic la variable B passe à C 3 clic la variable C passe à OK Au premier clic la variable passe directement à OK GEA.add( { {"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "A"}}, -1, "" , {{"Global", "BOUTONB", "B"} }) GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "B"}}, -1, "" , {{"Global", "BOUTONB", "C"} }) GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "C"}}, -1, "" , {{"Global", "BOUTONB", "OK"} }) Modifié le 28 février 2021 par 971jmd
971jmd Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 {{"Sleep", 2, {"Global", "BOUTONB",...... Le SLEEP me permettais sur le principe de retarder le passage de la variable,
Lazer Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 (modifié) Ah ben oui mais là c'est normal, et si tu regardes la zone de debug tu vas comprendre pourquoi Tes 3 règles sont exécutée séquentiellement, lors du premier clic : - BOUTON = A donc la première règle est remplie => exécution BOUTONB prend la valeur B - BOUTON = B (il vient d'être mis à jour par la 1ère ligne) donc la première règle est remplie => exécution BOUTONB prend la valeur C - BOUTON = C (il vient d'être mis à jour par la 2nde ligne) donc la première règle est remplie => exécution BOUTONB prend la valeur OK Donc en 1 seul clic, ta variable est passée de A à OK directement en passant par les valeur intermédiaires B et C pendant quelques millisecondes Bref, c'est juste logique, GEA fait ce que tu lui dit de faire EDIT : maintenant je comprends ton Sleep Mais il y a plus simple, il te suffit d'écrire tes lignes à l'envers, de bas en haut Modifié le 28 février 2021 par Lazer
971jmd Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 Tu veux me dire qu’il faut commencer par le troisième clic puis la deuxième et finir pour le premier et toujours avec le sleep
Lazer Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 oui voilà mais sans sleep, c'est inutile
971jmd Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 (modifié) Ça fonctionne presque à la fin du cycle la variable reste sur C il faut que je creuse encore Modifié le 28 février 2021 par 971jmd
971jmd Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 Je crois que je vais laisser tomber
Bebitoo Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 (modifié) Il y a 22 heures, Lazer a dit : Bref.... relis la doc Mais ou est-elle, cette doc ? Je suis débutant en GEA, sous la HC3 (avec le QA de Lazer en v7.11). J'ai trouvé : la page du QA : https://www.domotique-fibaro.fr/topic/14651-quick-app-gestionnaire-dévénements-automatique-gea-pour-hc3/, qui ne documente que les différences/améliorations par rapport à la HC2, et référence le topic du support et le topic faisant référence pour la syntaxe GEA, qui est en fait... le précédent topic de publication du GEA, en v6.13 : https://www.domotique-fibaro.fr/topic/11421-gestionnaire-devénements-automatique-gea-–-version-613/, qui lui documente aussi les différences par rapport aux versions précédentes (dont les conditions Time, Days, Dates, DST, NODST à placer désormais dans les conditions, et non dans les actions), propose au téléchargement le fichier syntaxe_GEAV6_11.lua <= je comprends que c'est la doc la plus à jour, et, dans les posts suivants, apporte également des éléments documentaires... de ce topic, j'ai rebondi sur celui de la version précédente (v5) : https://www.domotique-fibaro.fr/topic/1082-gea-gestionnaire-dã©vã©nements-automatique/, qui contient également des éléments documentaires très utiles, le topic de support : https://www.domotique-fibaro.fr/topic/1211-support-gea/, qui est super pour obtenir de l'aide, mais qui (sauf erreur : je n'ai pas parcouru ses 450 pages :)) ne contient pas de doc le topic de showroom : https://www.domotique-fibaro.fr/topic/2143-showroom-configs-gea/, super pour se donner des idées de quoi faire, et comprendre ce que ça peut faire, mais... pas de doc, et souvent les conditions Time etc. sont placées dans les actions, "à l'ancienne" (normal) j'ai vu passer également (sur l'un des topics ci-dessus) l'information du Wik sousi https://gea.piccand.me, avec la mention qu'il n'est pas toujours accessible... et en effet, je n'ai pas encore réussi à l'afficher je suis aussi tombé sur https://github.com/sjauquet/GEA, https://blog.domadoo.fr/guides/fibaro-hc2-gestionnaire-evenements-automatiques-gea/, https://spiccand.wordpress.com/2014/07/21/gestionnaire-devenements-automatique-gea/ Pour connaitre/comprendre la signature de la méthode, j'ai utilisé le topic de la v5 : Condition simple : GEA.add(<condition>, <durée en secondes|-1>, <message a notifier>[, <options>]) Exemple : GEA.add(100, 10*60, "Lampe allumée de puis plus de 10mn, on l'éteint", {{"turnOff"}}) Condition multiple : GEA.add( { <condition_principale>[, <condition2>[, ...]] } , <durée en secondes|-1>, <message a notifier>[, <options>]) Exemple : GEA.add( { 100, {"Global", "JourNuit", "Nuit"} } }, 10*60, "Lampe allumée de puis plus de 10mn ET la variable global JourNuit indique Nuit alors on éteint la lampe", {{"turnOff"}}) et j'ai été voir directement le code de la dernière version v7.11, et me suis noté : GEA.add(condition, duration, message, actions, log) J'ai réussi quelques conditions (mais n'ai pas bien compris quand saisir des durées à 0 ou -1), n'ai pas fait encore grand chose en actions (normal, je commence par les conditions), utilises bien les notifications (push et email), et ne sait pas encore trop quoi logger (j'ai l'impression que ça log que les conditions soient remplies ou non). Bref, c'est un super taf que vous apportez à la communauté (et j'espère que ce message pourra aider des débutants comme moi - c'est la seule contribution que je puisse apporter pour le moment sur le GEA). Mais il est pas super facile de "renter dans tout ça", je trouve Est-ce que j'ai raté quelque chose qui me faciliterait l'apprentissage de GEA ? Modifié le 28 février 2021 par Bebitoo
Lazer Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 Beau boulot de récapitulation ! Si tu cherches un tutoriel complet de A à Z Pour GEA, j'ai peur que ça n'existe pas. GEA est un outil qui a considérablement évolué, entre la toute première version (qui s’appelait différemment... WTDSSO : What To Do If Still Open), les nombreux ajouts suites aux demandes utilisateurs, et les réécritures multiples. Pour la dernière en date, le portage sur HC3, je me suis attaché à ce que les règles restent le plus possibles identiques à la syntaxe sur HC2 (la seule différence, ce sont les valeurs que prennent les devices, car comme dit plusieurs fois, sur HC3 les valeurs sont correctement typées ce qui n'a jamais été le cas sur HC2... donc un détecteur prend les valeurs true/false, un multilevel sensor prend une infinité de valeurs numériques, etc.... sur HC2 tout était sous forme de string) Bref, du coup les utilisateurs de GEA ont suivi les évolutions au fil de l'eau, sans révolution majeure à chaque fois, donc il était facile de s'adapter au fur et à mesure. En revanche, pour un nouvel utilisateur, je comprends qu'on puisse être vite sous l'eau. Il faudrait un motivé pour rédiger un tuto de GEA "pour les nuls", mais c'est chronophage... perso je préfère passer du temps sur les développements LUA que de rédiger de la doc. La documentation de référence la plus complète et à jour est effectivement syntaxe_GEAV6_11.lua par @pepite Mais il va falloir que je la mette à jour, car dans la prochaine version il y aura une tripotée de nouvelles fonctions, dont il faudra bien documenter la syntaxe.
971jmd Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 finalement je suis arrivée ---FERMETURE GEA.add( { {"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "E"}}, -1, "" ,{{"Open", id["VL_BAR"]}, {"Global", "BOUTONB", "A"}}) ---STOP GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "D"}}, -1, "" , {{"Stop", id["VL_BAR"]}, {"Global", "BOUTONB", "E"} }) ---FERMETURE GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "C"}}, -1, "" , { {"Close", id["VL_BAR"]}, {"Global", "BOUTONB", "D"} } ) ---STOP GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "B"}}, -1, "" , {{"Stop", id["VL_BAR"]}, {"Global", "BOUTONB", "C"} }) ----OUVERTURE GEA.add( { {"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "A"}}, -1, "" ,{{"Open", id["VL_BAR"]}, {"Global", "BOUTONB", "B"}}) GEA.add({"Value+", id["VL_BAR"], 90}, 30, "ouvert" , {{"Global", "BOUTONB", "C"}}) GEA.add({"Value-", id["VL_BAR"], 10}, 30, "close" , {{"Global", "BOUTONB", "A"}}) 1
Manu31 Posté(e) le 2 mars 2021 Signaler Posté(e) le 2 mars 2021 Bonjour à toutes et tous. J'ai une petite question sur GEA : sur les notifications PUSH J'aimerai une notification PUSH mais avec deux boutons OUI/NON. Je m'explique : Notification push --> Personne détecté à la maison, mettre l'alarme (OUI --> après appui il met l'alarme / NON --> Il ne met pas l'alarme) Est-ce faisable, car je n'ai rien vu dans GEA ou autre pour le faire ? En vous remerciant
Lazer Posté(e) le 2 mars 2021 Signaler Posté(e) le 2 mars 2021 Il me semble que c'est avec "Ask" (mais je ne l'ai jamais utilisé) 1
Messages recommandés