Aller au contenu

Messages recommandés

Posté(e)

Moi ce que je fais pour simuler ce genre de truc, je remplace l'ID de la porte du garage par une lumière que j'allume et éteins à distance.

 

Le code fonctionnant la même chose, c'est plus pratique et plus sécurisant que d'ouvrir la porte :2:

  • Like 1
Posté(e) (modifié)

@Steven je viens de faire le test à distance en utilisant une lumière.

 

J'ai toujours la même erreur :15:

[DEBUG] 15:34:27: [1;31m2017-12-19 15:34:27.089210 @0s [Démarrage] #6

[DEBUG] 15:34:37: [1;31m2017-12-19 15:34:37.089210 [ fatal] LUA error: /opt/fibaro/FibaroSceneAPI.lua:208: attempt to concatenate local 'sceneID' (a nil value)

 

Parcontre, il semblerait bien que la temporisation fonctionne, voir interval de temps en les 2 lignes de trace

 

Modifié par MAM78
Posté(e)

Ok, je pense avoir trouvé le soucis.

 

On est dans un "Sleep" et lors du lancement d'un plugin, on va chercher l'ID selon le nom de l'action en cours ... donc il cherche le plugin appelé "Sleep" et non pas "sendvoicemessage".

 

Pour tester ma modification, pourrais-tu ajouter ceci dans ta config()

 

function config()

  ...

  GEA.options.sleep2 = {
            name="Sleep2", 
            keepValues = true,
            action=function(duree, option) local o = GEA.getOption(option) if (duree and o) then setTimeout(function() GEA.currentAction.name = o.name print("start ".. o.name) o.action(true) end, duree*1000) end end
	}

  ...

end

 

Et utilisé {"Sleep2", ...} au lieu de {"Sleep", ...} dans ton GEA.add

 

  • Like 1
Posté(e) (modifié)

Génial ça fonctionne :13:

 

Y a plus qu'à intégrer dans une nouvelle version 6.02 ?

 

Si tu peux également regarder mes suggestions évoquées précédements et les intégrer. Cf. Remplacement de variables dans les arguments des actions.

 

Modifié par MAM78
Posté(e) (modifié)

Bien joue @Steven

Il a fallu que @MAM78 veuille un sleep dans un plugin ;-) MErci MAM et Steven, cette version 6 va etre juste une tuerie.... Au cas où steven, MAM souhaiterait pouvoir utiliser dans ses messages pour son plugin les parametres dynamiques type #duration"...


 

GEA.add( id["DETECTEUR_PORTE_GARAGE"], 5, "La porte du garage est ouverte depuis plus de #duration#", {{"Repeat"}, {"SendSonosMessage", "TTS", "La porte du garage est ouverte depuis plus de #durationfull#", "50"}})

Modif faite par MAM78 et teste, avec GEa.getMessage


 

Remplacer la ligne 602 :

    for i, v in ipairs(args) do table.insert(params, {["param"..i] = v}) end

par :

    for i, v in ipairs(args) do table.insert(params, {["param"..i] = GEA.getMessage(v)}) end

 

 

Modifié par pepite
Posté(e)

@MAM78

Ceci est une version de test, elle sera probablement la future 6.02 mais j'aimerais que tu la test dans ton environnement.

Elle prend en compte le correctif du "Sleep" avec les "Plugin" et de la transformation des messages dans les arguments d'un Plugin et d'un scénario.

 

J'attends ton retour pour valider ou non cette version.

gea_6_02.lua

Posté(e) (modifié)

A la lecture de ton code de la V 6.02 tu n'aurais pas fait la modification sur la bonne ligne.

 

Pour moi, la modification devrait être faite sur 601 (traitant les actions) et non la 589 (traitant les getValue). Ou peut-être les 2 ?

 

Je me trompe ?

 

PS : Sinon, concernant la tempo du messages marche à la perfection.

 

Modifié par MAM78
Posté(e) (modifié)

@Steven Merci, j'ai intégré cette nouvelle version. Elle fonctionne parfaitement avec mes événements. Tu peux donc pour moi la publier :60:

 

Néanmoins, j'ai aussi constaté qu'il n'est pas possible de nommer (dernier paramètre) une événement si l'on ne renseigne pas d'option ou une action.

 

Exemple : j'ai voulu nommer l'événement ci-dessous :

 

    GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "Box redémarée à #time# le #date#")

 

J'ai essayé comme ça : (mais j'ai des erreurs, je n'ai pas trouvé la syntaxe qui permet de le faire) :

 

    GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "Box redémarée à #time# le #date#",  , "Trace Démarrage HC2")

    GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "Box redémarée à #time# le #date#", "", "Trace Démarrage HC2")

    GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "Box redémarée à #time# le #date#", {}, "Trace Démarrage HC2")

    GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "Box redémarée à #time# le #date#", {""}, "Trace Démarrage HC2")

 

Rien à faire, ça passe pas :huh:

 

 

Modifié par MAM78
Posté(e)

 Je viens d'essayer la nouvelle syntaxe des lignes (avec l'extinction automatique après la durée):

GEA.add({"Time", "00:55"}, 30, "", {"turnOn", id["PC_SAPIN"], 10*30})

Ça s'allume bien à l'heure prévue, mais après l'extinction au bout des cinq minutes, le module se rallume et n'a plus l'air de s'éteindre automatiquement.

Et dans l'interface, le wallplug est resté sur Off, après un On et un Off manuel, il s'éteint.

 

 

Posté(e)

@MAM78

 

C'est en effet un peu tordu lorsqu'il n'y a pas d'action. Il faut remplacer les "actions" par "nil"

GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "Box redémarée à #time# le #date#", nil , "Trace Démarrage HC2")

 

@Did

Hummm, cela ressemble plus à un problème de synchronisation entre ton module et ta box. Est-ce parce que le père noël n'aime pas trop la lumière (PC_SAPIN) ?

 

Posté(e)

Nouvelle version disponible

 

v.6.02 20 décembre 2017

  • fix : vd GEA Alarm -- double push
  • fix : "Sleep" en conjonction avec un Plugin
  • mod : getMessage pour les plugins et arguments de scénario (traitement des variables #time#, #value#, ...)
  • Like 1
Posté(e)

Bonjour, (je reposte au bon endroit)

 

 

Le 15/12/2017 à 22:14, pedia a dit :

Mise à jour installée et Ok pour moi le "Or" et les déclenchements instantanés. :16:

 

Merci pour l'update de la syntaxe @pepite, et les turnOn des Hue ;-)

 

Petite question de syntaxe justement. J'ai un problème avec les ! et "Inverse". J'avais cette ligne la qui marchait bien :


GEA.add({153, {"Global!", "Vacances", "Tous"}}, 30, "", {{"Inverse"}, {"Days", "Tuesday, Friday"}, {"Time", "07:35", "07:50"}, {"turnOn"}})

Je voulais donc la remplacer par :


GEA.add({153!, {"Global!", "Vacances", "Tous"}}, 30, "", {{"Days", "Monday"}, {"Time", "07:25", "07:50"}, {"turnOn"}})

Et j'ai un message d'erreur :  '}' expected near '!'. J'ai essayé plusieurs variantes, {153!}, {153}!. J'ai toujours le même message.

 

Quelle est la bonne variante que je n'ai pas essayée ?

 

 

Je suis toujours embêté avec les ! - Inverse. J'ai utilisé en copié-collé la syntaxe du GEA_syntaxe qui me semblait bizarre car il manque un ")" :

GEA.add( 73!), 30, "", {ACTIONS} )

Même là, j'ai un message d'erreur. Suis-je le seul ?

 

 

Sinon autre question concernant Date & Time. J'ai plusieurs lignes comme celles-ci :

GEA.add({57, {"Global", "Portail", "fermé"}}, -1, "", {{"Days", "Thursday"}, {"Time", "7:35", "7:50"}, {"turnOn", 64}}, "Ouverture programmé du portail")
GEA.add({57, {"Global", "Portail", "fermé"}}, -1, "", {{"Days", "Friday"}, {"Time", "8:00", "8:20"}, {"turnOn", 64}}, "Ouverture programmé du portail")

Je voulais les unifier. J'ai essayé : 

GEA.add({57, {"Global", "Portail", "fermé"}}, -1, "", {{{"Days", "Thursday"}, {"Time", "7:35", "7:50"}},{{"Days", "Friday"}, {"Time", "8:00", "8:20"}}, {"turnOn", 64}}, "Ouverture programmé du portail")

,

GEA.add({57, {"Global", "Portail", "fermé"}}, -1, "", {"Or", {{"Days", "Thursday"}, {"Time", "7:35", "7:50"}},{{"Days", "Friday"}, {"Time", "8:00", "8:20"}}, {"turnOn", 64}}, "Ouverture programmé du portail")

et

GEA.add({57, {"Global", "Portail", "fermé"}, {"Or", {{"Days", "Thursday"}, {"Time", "7:35", "7:50"}},{{"Days", "Friday"}, {"Time", "8:00", "8:20"}}}, -1, "", {"turnOn", 64}}, "Ouverture programmé du portail")

Soit j'ai un message d'erreur, soit ça passe mais les conditions sont inopérantes et ça déclenche tout le temps.

 

J'ai une erreur, ou la construction de GEA ne permet pas de mixer les dates comme ça et je garde mes différentes lignes ? 

Posté(e)

@Steven, @MAM78.

Concernant les infos sans ACTIONS, cela fonctionne chez moi depuis x versions, c'est un bug que javais remonté ;-)

Je viens de restester avec la 6.02 ceci

 

GEA.add(true, 0, "Poubelles jaunes à sortir", "Rappel sortie poubelles jaunes - Lundi toutes les 15 jrs")

 

Debug

 #1 Rappel sortie poubelles jaunes - Lundi toutes les 15 jrs
[DEBUG] 10:46:00: --------------------------------------------------------------------------------
[DEBUG] 10:46:00: GEA a démarré le 20.12.17 à 10:46:00 ...
[DEBUG] 10:46:00: @0s [Validation*] #1 Rappel sortie poubelles jaunes - Lundi toutes les 15 jrs
[DEBUG] 10:46:00: @0s [Démarrage] #1 Rappel sortie poubelles jaunes - Lundi toutes les 15 jrs

 

Et j'ai bien recu le push ;-)

 

Merci @pedia

 

Tu as raison pour les Inverse écrit comme ceci : 73! Il y a bien une erreur, j'avais testé il ya longtemps, et je ne sais plus ce que @Steven avait decide à ce sujet. Peut-etre une coquille de ma part dans le fichier de syntaxe.

J'ai retesté ceci

GEA.add(11!, 30, " 11 !", {"Push", mobile["PEPITE"} )
 [DEBUG] 10:51:23: line 155: ')' expected near '!'

Pour l'instant, laisse les {Inverse}

 

Pour ceci,

 

GEA.add( 73!), 30, "", {ACTIONS} )

 

coquille de ma part dans le fichier syntaxe,  une parenthèse de trop qui traine ;-)

 

Pour tes lignes que tu veux concaténer
 

GEA.add({57, {"Global", "Portail", "fermé"}}, -1, "", {{"Days", "Thursday"}, {"Time", "7:35", "7:50"}, {"turnOn", 64}}, "Ouverture programmé du portail")
GEA.add({57, {"Global", "Portail", "fermé"}}, -1, "", {{"Days", "Friday"}, {"Time", "8:00", "8:20"}, {"turnOn", 64}}, "Ouverture programmé du portail")

Plutot comme ceci cela devrait fonctionner

 

GEA.add( {57, {"Global", "Portail", "fermé"}, {"Days", "Thursday, Friday"}, {"Or", {"Time", "07:35", "07:50"}, {"Time", "8:00", "8:20"} }}, "", {"turnOn", 64}, "Ouverture programmé du portail")

 

 

Posté(e)

Merci pour la réponse. 

 

Le problème avec ta solution pour la fusion des lignes est qu’il va vérifier et jeudi et vendredi aux différentes heures si je ne me trompe. Or j’ ai vraiment besoin que chaque plage horaire corresponde au jour précis. 

Posté(e)

effectivement @pedia

La ligne va verifier le jour Et les heures, donc soit Jeudi 7h35 ou 8h00 soi Vendredi 7h35 ou 8h .

Si ton besoin est 1 jour, 1 horaire, t'es obligé de garder 2 lignes à mon avis.

Posté(e)

J'ai installé la V6.02 et mis à jour mon code pour optimiser mon nombre de lignes.

Petite question sur les nouveautés : on peut utiliser l'action immédiate avec un "0". Quel est l'intérêt du "0" par rapport à la tempo "30" qui est de base dans tous les exemples .... En d'autre termes, si je mets toutes mes lignes en "0", c'est mieux ou moins bien qu'avec du "30" ?

Posté(e) (modifié)

@Dragoniacs

 

Attention pas de confusion, entre 0, -1 et 30 (ou multiples de 30)

 

0 : te permet d'executer les lignes à l'enregistrement de GEA uniquement, par exemple cette ligne :

  GEA.add(true, 0, "Démarrage de GEA le #date# à #time#")

Cette ligne ci-dessus, ne t'enverra un push qu'a chaque enregistrement, si tu ne l'enregistres pas, tu ne recevras aucun push. t'imagines bien que pour allumer une lampe, cela ne fonctionnera qu'une seule fois ;-)

 

-1 : te permet les déclenchements instantanés, l'exemple sur détection de mouvement est le plus parlant.

GEA.add(id["DETECTEUR"], -1, "Allumage lampe sur détection", {"TurnOn", id["LAMPE"]} )

 

30 ou multiples de 30 : correspond à la duree souhaitée en fonction de tes conditions

Cette ligne ne sera validée qu'1 fois par jour et executée si la condition est remplie

 

GEA.add({"Info", "updateStableAvailable", true }, 24*60*60, "Une nouvelle version est disponible", {"Repeat"})

 

tu ne peux donc pas mettre 0 partout, surtout pas.

 

S'il y a 30 dans tous les exemples c'est juste que j'ai fait du copier coller ;-)

Modifié par pepite
Posté(e)

@pepite

Pfff .... non mais laisse tomber, je suis nulle.... j'ai pas réfléchi en fait.....

0 = au démarrage de GEA

-1 = changement de status de l'ID

X * 30 = durée d'un évènement

 

Je sors......<_<

Posté(e)

Ta 2eme proposition n'est pas possible avec la syntaxe GEA ;-) ca simplifie la reponse ;-)

 

Sunset est fait pour etre utilisé avec Time uniquement.

30 minutes après le coucher du soleil s'ecrit donc :

{"Time", "Sunset+30"}

 

Effectivement, tes 2 propositions signifient la meme chose mais ce genre de ligne n'est pas prévu par GEA, Sunset n'est pas une condition seule, la condition est Time ;-) avec en arguments Sunset.

GEA.add({"Sunset"}, 30*60, "", ...)

 

 

Posté(e)

Ma réponse va être différente. 

 

Est-ce possible d'avoir un Sunset qui dure 30 minutes ;)

 

Il ne faut pas oublié que la durée correspond au temps que doit répondre les conditions. 

 

Pour la durée à 0... Je souhaite préciser que cela correspond À CHAQUE exécution de GEA donc en gros :

- au démarrage de GEA

- à chaque exécution, soit la même durée que GEA.checkEvery. 

 

Le 30 lui peut correspondre à une exécution sur 2 si par exemple le GEA.checkEvery est mis à 15.

  • Like 1
×
×
  • Créer...