Aller au contenu

Recommended Posts

Le 15/01/2018 à 10:59, pepite a dit :

local wT = json.decode(fibaro:getGlobalValue("WeatherState")); local stationNo = 1 GEA.ad( { {"Or", {"Value+", wT.netatmo[stationNo].wind.speed, 56}, {"Value+", wT.netatmo[stationNo].wind.gust, 56}}, {"Value+", 270, 0} }, 30, "", {"Function", function() fibaro:call(270, "close") end} )

 

Hello @pepite j'ai essayé de m'inspirer de ton code ci-dessus mais en passant par la condition : JSONDecodeFromGlobal- et JSONDecodeFromGlobal

 

Voici mon code :

	GEA.add({"JSONDecodeFromGlobal-", "WeatherState", "wT.netatmo["..Netatmo_stationNo.."].outm.temp", DegreMini_Alerte_Ouvrants},0,"Temp 1=#value[1]#",nil, "Test 1 Temp")
	GEA.add(true, 0,"Temp 2={JSONDecodeFromGlobal, WeatherState, wT.netatmo["..Netatmo_stationNo.."].outm.temp}",nil, "Test 2 Temp")

La première fonctionne très bien. J'obtiens bien ça : Temp 1=9,6

Par-contre la deuxième ne passe pas, J'obtiens ça : Temp 2={JSONDecodeFromGlobal, WeatherState, wT.netatmo[1].outm.temp}

 

J'ai comme résultat le texte et non son interprétation (soit : Temp 2=9,6) :huh:

 

Je souhaiterais pouvoir utiliser la deuxième fonction afin de pouvoir intégrer l'option dans du texte sans la mettre dans une condition. Comme il est indiqué que c'est possible dans le doc de syntaxe GEA (extrait) :

-> Il est possible de compléter les messages par des options existantes pour connaitre leur valeur sans les mettre en CONDITIONS
- Ceci : 
	GEA.add( {"WeatherLocal!", "Temperature", ""}, {"WeatherLocal!", ""}, 30, " La température ext. est de #value[1]# ° - météo : #value[2]#")
- Donne le même résultat que: 
 	GEA.add(true, 30, "La température ext. est de {WeatherLocal, Temperature}° - météo : {WeatherLocal}")
- Autre exemple :
	GEA.add({"Global!", "Heure", ""}, 30, "Bientôt l'heure de l'#value#" ) / GEA.add(true, 30, "Bientôt l'heure de l'{Global, Heure}")

 

@Steven & @pepite est-ce un bug, limitation ou une erreur dans mes lignes GEA?

 

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites

En complément de ma demande ci-dessus, j'ai également celle-ci.

 

J'ai un message SonosTTS qui est trop long qui pour effet que le début du message est répété à la fin du premier.

 

Afin d'éviter ce PB, j'ai essayé de scinder mon message en deux en mettant une fonction "Sleep" sur le deuxième pour laisser le temps au premier de se terminer.

    GEA.add({
            {"Label",id["VD_Nespresso"], "lblCafeShort", ""},
            {"(Label)",id["VD_Nespresso"], "lblLastTypeCafe", "Court"},
            }, -1, "",
            {
            {"Inverse"},
            {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Bonjour Michel, nous sommes le #datefull# il fait dehors "..wT.netatmo[Netatmo_stationNo].outm.temp.." degrés", 30},
            {"Sleep", 10, {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Aujourd'hui le temps sera {Global, Meteo_Day_Speech}", 30}}
            }, "Nespresso : Café court")

Mais ça ne fonctionne pas, seul le premier message en écouté. Voici le résultat du log GEA :

[DEBUG] 09:24:56:         [action] [Sonos TTS, [174,28,"Bonjour Michel, nous sommes le mardi 27 mars 2018 il fait dehors 7.2 degrés",30]]
[DEBUG] 09:24:56:         [action] [Sleep, [10,["sonostts",174,28,"Aujourd'hui le temps sera Averses. Maximales : 13 degrés. Vents de provenance Sud Ouest soufflant de 15 à 30 kilomètre heure. Risque de pluie : 90  pourcent ",30]]]

 

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites

@MAM78

 

Je pense que JsonDecodeFromglobal est trop long en termes de parametres, cela fonctionne que pour des options simples, attendons l'avis de @Steven, cela n'engage que moi ;-)

Tu vas devoir le laisser en condition ;-)

 

Petite astuce : le nil n'est plus nécessaire ;-)

 

Pour le TTS, je ferais donc 2 lignes :

 - soit avec Depend

 - soit avec VariableCache

 

Comme ceci :

 

local event = GEA.add({
            {"Label!",id["VD_Nespresso"], "lblCafeShort", ""},
            {"(Label)",id["VD_Nespresso"], "lblLastTypeCafe", "Court"},
            }, -1, "",
            {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Bonjour Michel, nous sommes le #datefull# il fait dehors "..wT.netatmo[Netatmo_stationNo].outm.temp.." degrés", 30},
            "Nespresso : Café court")

GEA.add( {"Depend", event}, 30, {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Aujourd'hui le temps sera {Global, Meteo_Day_Speech}", 30})

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 26/03/2018 à 17:32, pepite a dit :

@flacon030

Tu peux coller l'API de ton device 203 stp ;-) ?

 

Pour tester, mets dans config()


GEA.catchError = false

 

J'ai mis dans la config() de GEA la ligne de code ci dessus

et j'ai comme message:

   [Démarrage] #15 [33][Property, [203,"setMode","0"]]

Erreur, vérifier : [Property, [203,"setMode","0"]]

Comment avoir l'API de mon device? c'est un ZXT120 le module infrarouge pour piloter les clim

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai un soucis pour utiliser "Weather"

 

je voudrais rajouter la condition du temps à cette ligne qui fonctionne tel que:

 

GEA.add(true, 30, "", {{"Time", "Sunset-31", "Sunrise+31"},{"Global", "Lum_Auto", "on"} , {"Days", "All"}})

j'ai changé pour :

  GEA.add({"Weather", "clear"}, 30, "Dégagé",{{"Time", "Sunset-31", "Sunrise+31"},{"Global", "Lum_Auto", "on"}})
  GEA.add({"Weather", "cloudy"}, 30, "Nuageux",{{"Time", "Sunset-45", "Sunrise+31"},{"Global", "Lum_Auto", "on"}})
  GEA.add({"Weather", "rain"}, 30, "Pluie",{{"Time", "Sunset-45", "Sunrise+31"},{"Global", "Lum_Auto", "on"}})
  GEA.add({"Weather", "fog"}, 30, "Brouillard",{{"Time", "Sunset-45", "Sunrise+31"},{"Global", "Lum_Auto", "on"}})

mais, je n'ai pas d'erreur et cela ne donne rien, j'ai la bonne syntaxe ? 

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela semble juste mais perso, je ferais simplement ainsi

 

GEA.add({"Time","Sunset-45", "Sunrise+31"}, 30, "{WeatherLocal}", {"Global", "Lum_Auto","on"})

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 27/03/2018 à 01:17, MAM78 a dit :

	GEA.add(true, 0,"Temp 2={JSONDecodeFromGlobal, WeatherState, netatmo["..Netatmo_stationNo.."].outm.temp}",nil, "Test 2 Temp")

 

Hello @Steven est-ce que avec l'option JSONDecodeFromGlobal il est possible d'explorer la structure de la table comme ci-dessus ou est-ce que seul le premier niveau de la structure est accessible ?

 

Si seul le premier niveau est accessible :

  • penses-tu qu'il soit complique d'adapter la fonction GEA.decode = function(flux, property) pour qu'elle explore la structure pour trouver la correspondance au paramètre property ?

Sinon

  • pourrais-tu m'expliquer ce qui ne va pas dans ma ligne GEA ci-dessus ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello à tous, GEA est devenu capricieux et ne déclenche plus aucune action après un certain temps. Les -1 ne posent pas de pb mais tout le reste, dont les conditions sont liées à une variable ou à un créneau Time, ne marche plus ou alors fonctionne lors du redémarrage de GEA et plus ensuite.

 

je précise que mon code n’a pas changé eta fonctionné en 6.05 sans souci pendant plus d’un an. Pensant que c’était lié aux nouvelles release, je suis passé en 6.07, mais sans succès. Le debug ne me montre rien, c’est juste que malgré des conditions vérifiées, les actions ne se déclenchent pas.

 

je vous en donne un exemple tout bête: j’ai une ligne de remise à zéro de variable 

---Activation/désactivation de la variable scenario matin 
GEA.add({"Time","04:00", "04:05"},60,"",{"Global","scenario_matin","0"}) 
GEA.add({"Time","14:00", "14:05"},60,"",{"Global","scenario_matin","10"}) 

---Activation/désactivation de la variable scenario soir 
GEA.add({"Time","18:00", "18:05"},60,"",{"Global","scenario_soir","0"}) 
GEA.add({"Time","05:50", "06:00"},60,"",{"Global","scenario_soir","10"}) 

 

Ou alors des lignes qui déclenchent ou arrêtent un module en fonction de valeur d’un sensor. Cela fonctionne lorsque GEA vient d’être lancé, mais plus ensuite. 

 

Pouriez vous le guider pour le dire comment avancer, je suis un peu perdu :( et je ne sais plus quoi essayer pour résoudre le pb. 

ah oui, je suis en 4.170 (mais j’avais le même pb avec les releases d’avant)

 

merci merci

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 6 heures, MAM78 a dit :

Hello @Steven est-ce que avec l'option JSONDecodeFromGlobal il est possible d'explorer la structure de la table comme ci-dessus ou est-ce que seul le premier niveau de la structure est accessible ?

 

Si seul le premier niveau est accessible :

  • penses-tu qu'il soit complique d'adapter la fonction GEA.decode = function(flux, property) pour qu'elle explore la structure pour trouver la correspondance au paramètre property ?

Sinon

  • pourrais-tu m'expliquer ce qui ne va pas dans ma ligne GEA ci-dessus ?

Toi même tu as dit que cette ligne fonctionnait :

GEA.add({"JSONDecodeFromGlobal-", "WeatherState", "wT.netatmo["..Netatmo_stationNo.."].outm.temp", DegreMini_Alerte_Ouvrants},0,"Temp 1=#value[1]#",nil, "Test 1 Temp")

Donc GEA.decode fonctionne très bien.

 

Par contre, de le mettre comme "message", j'avoue ne pas avoir tester.

 

Dans ton dernier message, il semblerait que tu aies perdu le "wT" de  wT.netatmo.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, ggpublic a dit :

je précise que mon code n’a pas changé eta fonctionné en 6.05 sans souci pendant plus d’un an. Pensant que c’était lié aux nouvelles release, je suis passé en 6.07, mais sans succès. Le debug ne me montre rien, c’est juste que malgré des conditions vérifiées, les actions ne se déclenchent pas.

 

Tiens, il me semblait avoir publié la 6.00 pour Noël 2017 :-)

 

Trève de plaisanterie, j'ai déjà eu ce genre de comportement sans jamais le comprendre et je ne sais pas trop quoi te dire. A tu le nombre de MAX instance sur 10 ? As-tu essayé de supprimer ta scène et dans créer une nouvelle ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 14 heures, Steven a dit :

Cela semble juste mais perso, je ferais simplement ainsi

 


GEA.add({"Time","Sunset-45", "Sunrise+31"}, 30, "{WeatherLocal}", {"Global", "Lum_Auto","on"})

 

comment fonctionne "WeatherLocal" ?

 

comment GEA devine qu'il fait beau, pas beau?

cette ligne, c'est pour qu'il indique le temps actuel?

 

c'est pas cela que je veux fait.

je veux que la variable Lum_Auto passe en "on"  45 minutes avant le couché du soleil et 31 minutes après le levé avec la condition de temps, si c'est couvert/pluie/brouillard.

et si c'est dégagé alors la variable Lum_Auto passe en "on"  30 minutes avant le couché du soleil et 31 minutes après le levé.

 

 

Modifié par Fredric

Partager ce message


Lien à poster
Partager sur d’autres sites

@Fredric

 

Comme ceci alors, cela devrait le faire, enfin ;-)

 

GEA.add({ {"Weather!", "Clear"}, {"Or",{"Time", "Sunset-45"}, {"Time","Sunrise+31"}} }, 30, "Nuageux, Pluvieux, Brouillard", {"Global", "Lum_Auto", "on"})
GEA.add({ {"Weather", "Clear"}, {"Or",{"Time", "Sunset-30"}, {"Time","Sunrise+31"}} }, 30, "Dégagé", {"Global", "Lum_Auto", "on"})

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @pepite, pourquoi le "or"?

 

c'est pour que cela soit 45 minutes avant le couché ou soit après 31 le levé?

 

 

 

Modifié par Fredric

Partager ce message


Lien à poster
Partager sur d’autres sites

"Or" = OU

 

La ligne sera considérée "EXACTE" soit 45 minutes avant le couché OU 31 minutes après le lever

Quand tu l'ecris avec un seul "Time", tu donnes une TRANCHE HORAIRE dans laquelle la ligne est considérée EXACTE, pour ton besoin, il faut bien 2 "Time"

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

J'avais loupé ce OR, ça veut dire que maintenant on peut faire en 1 seule ligne ce qui nécessitait parfois 2 lignes avant ?

 

Top ça :)

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela fonctionne comme ceci après teste:

GEA.add({ {"Weather", "Clear"},{"Time", "Sunset-25", "Sunrise+31"}}, 30, "Dégagé", {"Global", "Lum_Auto", "on"})
  GEA.add({ {"Weather!", "Clear"},{"Time", "Sunset-45", "Sunrise+31"}}, 30, "Nuageux, Pluvieux, Brouillard", {"Global", "Lum_Auto", "on"})

mais pourquoi cela fonctionne pas comme ça?


GEA.add({"Weather", "clear"}, 30, "Dégagé",{{"Time", "Sunset-31", "Sunrise+31"},{"Global", "Lum_Auto", "on"}})

alors que ça, cela fonctionne depuis toujours:

GEA.add(id["Porte_Entree"], 30, "", {{"Time", "Sunset-10", "Sunrise+10"},{"turnOn", {id["Lumiere_Avant"],id["Lumiere_Entree"] }}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 2 minutes, pepite a dit :

"Or" = OU

 

La ligne sera considérée "EXACTE" soit 45 minutes avant le couché OU 31 minutes après le lever

Quand tu l'ecris avec un seul "Time", tu donnes une TRANCHE HORAIRE dans laquelle la ligne est considérée EXACTE, pour ton besoin, il faut bien 2 "Time"

j'étais pas sur que "or" fonctionné pareil avec "time", c'est la tranche horaire que je veux ;), merci :)

 

il y a 2 minutes, Lazer a dit :

J'avais loupé ce OR, ça veut dire que maintenant on peut faire en 1 seule ligne ce qui nécessitait parfois 2 lignes avant ?

 

Top ça :)

C'est super le "OR" pour les conditions, cela supprime beaucoup de ligne :60:

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 6 heures, Steven a dit :

 

Tiens, il me semblait avoir publié la 6.00 pour Noël 2017 :-)

 

Trève de plaisanterie, j'ai déjà eu ce genre de comportement sans jamais le comprendre et je ne sais pas trop quoi te dire. A tu le nombre de MAX instance sur 10 ? As-tu essayé de supprimer ta scène et dans créer une nouvelle ?

Oops, c’est moi qui n’etait pas bien réveillé, il fallait lire 5.40bien sûr :)

 

oui oui j’ai bien un nb d’instances à 10. A tout hasard, est-ce qu’avoir gardé les anciennes scènes GEA (bien que désactivées) pourrait créer des inconsistances... je vais essayer.

N’y a t’il pas une méthode @Steven pour tout reinitialiser? Par ex, je comprends maintenant que GEA recrée ses variables tout seul, je pourrais peut être les,supprimer manuellement dans le panneau des variables... 

cest quqnd même fou ce truc

Modifié par ggpublic

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer

Exact ;-) mais cela existait déjà avec les Regex mais qui ne permettait de vérifier la valeur que d'une seule "option", soit variable soit label, soit...dans la version 6 les "options peuvent être melangées

{"Or", {"Global", "toto", "titi"}, {"Label", "apéro", id, "biere"}}

 

Et petit plus : en cas de conditions multiples avec "Time", GEA V6, le transforme tout seul, le "Or" devient inutile
 

{{"Time", "14:00"}, {"Time", "18:00"}}

devient par GEA

{"Or", {"Time", "14:00"}, {"Time", "18:00"}}

@Fredric

le souci ne vient pas du Time mais du "C" majuscule de "Clear" et non "clear". En V6, la syntaxe est de mettre Time en "condition" mais pour des raisons de compatibilité, lorsque GEA V6 rencontre un Time en "Options" (soit après le "message") il le passe en "conditions", soit avant la durée ;-)

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

juste une petite question dans le doute svp, si le veux réinitialiser la variable "scenario_matin" chaque jour à 4:00, j'ai écrit ça:

GEA.add({"Time","04:00"},0,"",{"Global","scenario_matin","0"}) 

 

faut il un {repeat} pour que ça se declenche tous les jours ?

 

merciii

 

PS : je cherche tjs pour mon histoire de GEA qui tourne sur trois pattes

 

Partager ce message


Lien à poster
Partager sur d’autres sites

non, mais il faut mettre autre chose que 0, car le zéro est fait pour ce lancer au démarrage de GEA uniquement

 

GEA.add({"Time","04:00"},30,"",{{"Global","scenario_matin","0"}}) -- pour trentes secondes

ou 
GEA.add({"Time","04:00"},-1,"",{{"Global","scenario_matin","0"}}) --pour instantané

GEA.add({"Time","04:00"},30,"",{{"Global","scenario_matin","0"},{"Repeat"}})

le  {repeat} et pour répéter l'action tout les x secondes ou minutes que tu as mis, par exemple sur cette ligne, 30 secondes

Modifié par Fredric

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 12 heures, Fredric a dit :

non, mais il faut mettre autre chose que 0, car le zéro est fait pour ce lancer au démarrage de GEA uniquement

 

Merci bcp @Fredric pour ta réponse.

 

Alors j'ai fait un peu de ménage et tout refonctionne à merveille. J'ai principalement effectué deux choses : 

- supprimer toutes les scène GEA, même les anciennes qui n'étaient censées plus tourner

- déplacer le lieu de déclaration de variables locales pour les mettre dans la boucle principale

- remplacer tous les délais par des chiffres précis, auparavant j'avait entré des multiples de 60 par fainéantise :) du style 90*60. J'ai supprimé ça partout.

Avec ça, tout refonctionne.

 

Par contre, sans doute un petit bug dans la gestion des signes lors de l'utilisation de variables chiffrées. Je m'explique. J'ai une ligne qui vérifie que la température de mon congélateur ne dépasse pas -12 (habituellement on est à -20).

 

Jusqu'àlors, la ligne suivante fonctionnait bien :

GEA.add({"Value+", 397, -12}, 1800, "La température du congélateur est supérieure à -12°C (#value#°C)", {{"Repeat"},{"Portable", phoneGG},{"Portable", ipadFrigo},{"Portable", ipadMini},{"Email",88,"Température congélateur !"}}) 

 

 

Maintenant l'action se declenche systématiquement, car GEA considére que -20 est supérieur à -12. Sans doute un petit bout de code à adapter pour la gestion des variables négatives ?

 

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 14 heures, Fredric a dit :

car le zéro est fait pour ce lancer au démarrage de GEA uniquement

Bonjour,

 

En fait, oui, mais pas que ;-) Cela fonctionne aussi à chaque modification, changement. Exemple de steven
 

local event1 = GEA.add....

local event2 = GEA.add...

GEA.add( {{"Depend", event1}, {"Depend", event2}}, 0

 

Il y a 1 heure, ggpublic a dit :

déplacer le lieu de déclaration de variables locales pour les mettre dans la boucle principale

PAs compris, c’est-à-dire ? tu les as mis où ? ou les avait où avant ? Tes variables doivent être déclarées dans setEvents()

 

Il y a 1 heure, ggpublic a dit :

auparavant j'avait entré des multiples de 60 par fainéantise :) du style 90*60.

Mais je suis un fainéant aussi alors ;-) cela fonctionne bien chez moi, et c'est plus simple à lire de mon point de vue ;-)

 

Il y a 1 heure, ggpublic a dit :

GEA.add({"Value+", 397, -12},

Essaie cela :

GEA.add({"Value-#, 397, -12} 

En tout cas, bien joue si tout refonctionne ;-)

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour les délais, cela ne sert à rien de mettre des temps précis comme 25 secondes ou 70 secondes, appart par tranche de 30 seconde ou de -1 ou de zero pour le démarrage de GEA (donc démarrage de la HC2 aussi) car GEA vérifi toutes les 30 secondes.

pour ma part, dés que cela dépasse 30s, j’utilise que la forme 1*60, c'est plus parlent et cela fonctionne parfaitement.

Je ne pense pas que ton souci vient de là, il suffit d'une majuscule oublié et cela ne fonctionne pas sans mettre d'erreur, cela m'est arrivé quelque ligne plus haut.

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

tu as était plus rapide que moi @pepite, j'écrivais pour lui dire aussi d'essayer value- ;) 

Partager ce message


Lien à poster
Partager sur d’autres sites

×