Steven Posté(e) le 11 août 2014 Auteur Signaler Posté(e) le 11 août 2014 A partir du moment ou tu as une temporisation àmettre entre les actions (3 sec), tu ne peux plus utiliser GEA.
JM13 Posté(e) le 11 août 2014 Signaler Posté(e) le 11 août 2014 Si c'est uniquement pour ça tu dois pouvoir arriver à te débrouiller avec un truc simple avec un seul VD en utilisant un fibaro:sleep (3secondes) non ?
Steven Posté(e) le 11 août 2014 Auteur Signaler Posté(e) le 11 août 2014 Il y a une astuce. local dodo = {"Function", fonction() fibaro:sleep(3000) end} GEA.add(...,-1,"", {{"VirtualDevice",id["SONOS"],1}, dodo, {"VirtualDevice",id["SONOS"],2}, dodo,...}) Envoyé de depuis la voiture donc pas top du tout.
971jmd Posté(e) le 11 août 2014 Signaler Posté(e) le 11 août 2014 eefectivement sa fonction pas, [ERROR] 16:02:37: line 90: '}' expected near 'fibaro'
Steven Posté(e) le 11 août 2014 Auteur Signaler Posté(e) le 11 août 2014 fonction() doit être remplacer par function() @#€@# de dictionnaire
HANSOLO Posté(e) le 11 août 2014 Signaler Posté(e) le 11 août 2014 Ton dico s'appelle "gros doigts boudinés"?
971jmd Posté(e) le 11 août 2014 Signaler Posté(e) le 11 août 2014 local dodo = {"function()", function() fibaro:sleep(3000) end} GEA.add( id["DETECTEUR"], -1,"", {{"VirtualDevice",id["RADIO"],1}, dodo, {"VirtualDevice",id["RADIO"],2}, dodo, {"VirtualDevice",id["RADIO"],3}}) J'ai plus de message erreur , mai sa ne demarre pas sa veux dire quoi @#€@# de dictionnaire
HANSOLO Posté(e) le 11 août 2014 Signaler Posté(e) le 11 août 2014 La correction automatique sur son smartphone
Steven Posté(e) le 11 août 2014 Auteur Signaler Posté(e) le 11 août 2014 F majuscule et sans les parenthèselocal dodo = {"Function", function() fibaro:sleep(3000) end} local dodo = {"Function", function() fibaro:sleep(3000) end} GEA.add( id["DETECTEUR"], -1,"", {{"VirtualDevice",id["RADIO"],1}, dodo, {"VirtualDevice",id["RADIO"],2}, dodo, {"VirtualDevice",id["RADIO"],3}}) Testé et approuvé mais faut faire un peu attention, a recopier ce qu'on te dis sinon, on perd un peu trop de temps C'est déjà pas facile de comprendre ce que les gens veulent alors si en plus il font pas attention, je m'en sors plus.
Steven Posté(e) le 11 août 2014 Auteur Signaler Posté(e) le 11 août 2014 @Hansolo Tu as déjà essayer de taper du code sur ton smartphone en conduisant ? ... J'adore le challenge Plus sérieusement, je fais beaucoup plus attention à la route qu'à ce que je tape ... d'ou les erreurs.
971jmd Posté(e) le 11 août 2014 Signaler Posté(e) le 11 août 2014 voici le résultat [DEBUG] 17:26:25: GEA Version 3.70 : running... [DEBUG] 17:26:25: [ 30 | porte CH id30 ] sendActions : traitement des actions [VirtualDevice,61,1] [Function..] [VirtualDevice,61,2] [Function..] [VirtualDevice,61,3] [DEBUG] 17:26:25: [ 30 | porte CH id30 ] sendActions : !ACTION! : VirtualDevice 61,1 [VirtualDevice,61,1] [Function..] [VirtualDevice,61,2] [Function..] [VirtualDevice,61,3] [DEBUG] 17:26:25: [ 30 | porte CH id30 ] sendActions : !ACTION! : Function OK [VirtualDevice,61,1] [Function..] [VirtualDevice,61,2] [Function..] [VirtualDevice,61,3] [DEBUG] 17:26:25: [ 30 | porte CH id30 ] sendActions : !ACTION! : VirtualDevice 61,2 [VirtualDevice,61,1] [Function..] [VirtualDevice,61,2] [Function..] [VirtualDevice,61,3] [DEBUG] 17:26:25: [ 30 | porte CH id30 ] sendActions : !ACTION! : Function OK [VirtualDevice,61,1] [Function..] [VirtualDevice,61,2] [Function..] [VirtualDevice,61,3] mai il répète l'action trois fois
Steven Posté(e) le 11 août 2014 Auteur Signaler Posté(e) le 11 août 2014 Version 3.75 [Nouveauté] GEA devient multilingue. Par défaut le français est conservé.La traduction de la documentation suivra dès que possible Le code est comme à son habitude ICI 1
971jmd Posté(e) le 11 août 2014 Signaler Posté(e) le 11 août 2014 GROS MERCI Steven J'ai beaucoup appris sa fonction bien, j'ai augmenter sur la temps DODO comme quoi il est possible de marier LUA et GEA local dodo = {"Function", function() fibaro:sleep(6000) end} GEA.add( id["DETECTEUR"], -1,"", {{"VirtualDevice",id["RADIO"],1}, dodo, {"VirtualDevice",id["RADIO"],3}, dodo, {"VirtualDevice",id["RADIO"],4}})
Steven Posté(e) le 11 août 2014 Auteur Signaler Posté(e) le 11 août 2014 Oui mais attention, je t'ai donné cette astuce car tu utilises un déclenchement immédiat (dès que la porte s'ouvre). Dans le cas d'un déclenchement immédiat, la Home Center crée un nouvelle instance de GEA en mémoire. A ce moment précis, tu as donc 2 GEA qui tourne en parallèle, celui qui tourne toutes les X secondes et celui qui vient de se lancer à l'ouverture de la porte. Si tu veux mettre des sleep(XXXXXX) dans le deuxième, pas de soucis mais mettre des sleep dans celui qui tourne toutes les X secondes serait catastrophique. Pour résumé sur tu mets : GEA.add(..., -1, ...) tu peux faire ce que tu veux GEA.add(..., 1 ou plus, ...) ne jamais utiliser de sleep Edit : Content que cela fonctionne ... on y arrive toujours
971jmd Posté(e) le 11 août 2014 Signaler Posté(e) le 11 août 2014 qu'est que vous appeler catastrophique j'ai pas bien compris la fonction de : GEA.add(..., -1, ...) tu peux faire ce que tu veux GEA.add(..., 1 ou plus, ...) ne jamais utiliser de sleep ou pourrais je trouver un dico sur les fonctions (Function...... )
971jmd Posté(e) le 12 août 2014 Signaler Posté(e) le 12 août 2014 Pour résumer A l'ouverture de la porte de ma chambre entre 6H et 7H30 1- active le bouton mise en marche la TV 6 seconde après 2- active le bouton mise en marche du decodeur 6 seconde après 3- active le bouton mise en marche du Systems audio 6 seconde après 4- active le bouton radio 6 seconde après 5- active le bouton Cherie FM local dodo = {"Function", function() fibaro:sleep(6000) end} GEA.add( id["DETECTEUR"], -1,"", {{"Time","19:00", "20:05"}, {"VirtualDevice",id["RADIO"],9}, dodo, {"VirtualDevice",id["RADIO"],8}, dodo, {"VirtualDevice",id["RADIO"],7}, dodo, {"VirtualDevice",id["RADIO"],1}, dodo, {"VirtualDevice",id["RADIO"],6}}) Merci a Steven, Hansolo et tout les autre 1
HANSOLO Posté(e) le 12 août 2014 Signaler Posté(e) le 12 août 2014 de rien, c'est surtout @Steven avec ses gros doigts boudinés qui a fait le boulot. 1
Shyrka973 Posté(e) le 12 août 2014 Signaler Posté(e) le 12 août 2014 Salut Steven, Je constate que tu as ajouté l'action "Function". Je pensais à quelque chose comme cela, mais en fait, tu l'avais déjà ajoutée. Je ne sais pas depuis quelle version de GEA, elle est disponible, mais depuis la 3.75, il y a deux exemples à son sujet. Dès que tu as deux minutes, peux-tu ajouter cette option dans la liste des actions possibles dans le post décrivant GEA ? Merci. Une question à ce sujet: Le résultat de la fonction exécutée peut-il être utilisé par GEA ?
Steven Posté(e) le 12 août 2014 Auteur Signaler Posté(e) le 12 août 2014 Non, je ne vais pas décrire cette fonction dans la documentation car je la trouve trop dangereuse, donc plus on l'oublie, mieux je me porte . Elle existe depuis la version 3.60 et oui elle peut être mise comme coddition. GEA.add({"Function", function() return true, 1000 end}, 30, "la valeur #value# est de 1000"} Le 1er paramètre retourné doit être true ou false Le 2ème paramètre est la valeur stockée dans #value#
Shyrka973 Posté(e) le 12 août 2014 Signaler Posté(e) le 12 août 2014 Si j'ai bien compris, elle peut être mise en tant que déclencheur et aussi en tant qu'action ? Peut-on l'utiliser dans un {"If", ...} ?
Steven Posté(e) le 12 août 2014 Auteur Signaler Posté(e) le 12 août 2014 En effet, par contre, je n'ai pas tester dans le IF mais il n'y a pas de raison que cela ne fonctionne pas.
971jmd Posté(e) le 12 août 2014 Signaler Posté(e) le 12 août 2014 Oui mais attention, je t'ai donné cette astuce car tu utilises un déclenchement immédiat (dès que la porte s'ouvre). Dans le cas d'un déclenchement immédiat, la Home Center crée un nouvelle instance de GEA en mémoire. A ce moment précis, tu as donc 2 GEA qui tourne en parallèle, celui qui tourne toutes les X secondes et celui qui vient de se lancer à l'ouverture de la porte. Si tu veux mettre des sleep(XXXXXX) dans le deuxième, pas de soucis mais mettre des sleep dans celui qui tourne toutes les X secondes serait catastrophique. Pour résumé sur tu mets : GEA.add(..., -1, ...) tu peux faire ce que tu veux GEA.add(..., 1 ou plus, ...) ne jamais utiliser de sleep Edit : Content que cela fonctionne ... on y arrive toujours bonsoir je me rencontre que les mots catastrophiques, dangereux reviennent de temps en temps. pouvez-vous nous enduire plus sur les danger de ce code
Lazer Posté(e) le 12 août 2014 Signaler Posté(e) le 12 août 2014 Quelqu'un a relu le code ? Je pense qu'on est tous infecté par un vers malicieux répondant au doux nom de GEA, et n'obéissant qu'àson maitre Steven, qui est parti s'enduire de crème solaire pour ses vacances en compagnie de Fredo... 1
HANSOLO Posté(e) le 12 août 2014 Signaler Posté(e) le 12 août 2014 C'est pas @Fredo qui enduit @Steven de crême ? 2
Steven Posté(e) le 12 août 2014 Auteur Signaler Posté(e) le 12 août 2014 @Lazer ... lol, pas encore, demain @97ljmd GEA est un système qui fonctionne grace à des mots clés telle que "TIme", "Day", "turnOff". Cela permet d'avoir un script qui est contrôlé. En laissant accès à l'utilisateur de saisir son propre code LUA, il peut très facilement faire n'importe quoi et "casser" le fonctionnement du script. Quand je dis catastrophique ou dangereux ... la PIRE chose qui puisses arriver c'est que le script ne fonctionne plus donc pas de panique. Par contre, si cela arrive quand on vous êtes en vacances c'est pas terrible du tout car éventuellement si le script "plante" il ne pourra plus allumer votre chaudière, descendre vos volets, ... Quand on ajoute une ligne GEA.add(...,-1,...) avec le -1, c'est uniquement cette ligne que l'on peut planter sans que cela ne se voit donc c'est pas très grave. Par contre quand on dit à GEA de vérifier toutes les X secondes GEA.add(..., 30, ...) c'est toutes les lignes qui peuvent être impactée. Voici un exemple. GEA.checkEvery = 30; GEA va donc vérifier toutes les 30 secondes toutes les commandes qu'on lui a dit de traiter. Maintenant si dans une de ces lignes l'utilisateur mais un fibaro:sleep(35000) (35 secondes) GEA ne pourra plus respecter le délai des 30 secondes et va donc effectuer des traitements complètement décalés.
Messages recommandés