Aller au contenu

Messages recommandés

Posté(e)

Ok, merci Steven.

Du coup si je veux une valeur qui n'est pas dans les conditions ? C'est possilbe ?

(Genre un petit mail le matin qui remonte plusieurs infos de diversent sonde)

Posté(e)

Oui, il y a une astuce. Il s'agit de mettre une condition qui sera toujours juste.

 

Exemple :

GEA.add({"Value!", 125, 999}, 30, "La température est de #value[1]#"}

Si la Valeur N'EST PAS 999 ce qui je l'espère pour la planète n'arrivera jamais :-)

Posté(e)

Okay, j'avais un truc probablement pas terrible et que je croyais fonctionnel :

GEA.add( true , 1*60 , "La température extérieur est de " .. fibaro:getValue(id["NETATMO_HYGRO_TERRASSE"], "value") .. "°. L`humidité est de " .. fibaro:getValue(id["NETATMO_HYGRO_TERRASSE"], "value") .. "%.", {{"Time", "05:55", "06:10"},{"Email",id["BOBO"],"GEA - Annonce météo."}})

Donc va falloir que ça devienne :

GEA.add( { true , {"Value+", id["NETATMO_HYGRO_TERRASSE"], 999} } , 1*60 , "La température extérieur est de #value#°. L`humidité est de #value[1]#%.", {{"Time", "05:55", "06:10"},{"Email",id["BOBO"],"GEA - Annonce météo."}})

ou un truc du genre

Posté(e)

Voilà  :

 

Il y a 2 conditions une pour la température et une pour l'humudité .. ces 2 conditions ne doivent pas être égal à  999 (Value!)  ... ce qui sera toujours le cas. 

 

Ensuite, dans le message, on utilise donc #value[1]# et #value[2]#.

GEA.add( { {"Value!", id["NETATMO_TEMP_TERRASSE"], 999}, {"Value!", id["NETATMO_HYGRO_TERRASSE"], 999} } , 1*60 , "La température extérieur est de #value[1]#°. L`humidité est de #value[2]#%.", {{"Time", "05:55", "06:10"},{"Email",id["BOBO"],"GEA - Annonce météo."}})
Posté(e)

Si tout ce passe comme prévu, on est tranquille car on devrait passé de 20° à  3'000° donc on devrait bien ne jamais être à  999  :D

  • Upvote 1
Posté(e)

Bonjour messieurs,

 

Voici la question du jour, je joue avec l'octan remote en ce moment, j'adooore ;-) et je rencontre un souci.

L'idee : eteindre sur double clic 1 seule lampe si tout est allume et inversement en fonction des lampes, tout en restant sur le double clic

exemple :

 -- tout est ON, sur 1er double clic, extinction BUREAU

 -- tout est ON, bureau OFF, allumage BUREAU sur double clic ...etc

 

Le code fonctionne, mais trop bien, sur le meme double-clic, la lampe s'eteint et se rallume. Le siganl a l'air de perdurer dans le temps. une idée ?

--double-clic B1, rond plein, extinction eclairage bureau si eclairages_on
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_on}, -1, "Extinction Eclairage Bureau", {{"turnOff", id["ECLAIRAGE_BUREAU"]}})

--double-clic B1, rond plein, Allumage eclairage BUREAU si eclairages TV=ON et Papier ON, eclairage bureau=OFF
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Value", id["ECLAIRAGE_BUREAU"], 0}, {"Value", id["ECLAIRAGE_TV"], 1}, {"Value", id["ECLAIRAGE_PAPIER"],1}}, -1, "Allumage Eclairage BUREAU", {{"turnOn", id["ECLAIRAGE_BUREAU"]}})
 
 
Posté(e)

Les 2 lignes vont s'exécutée une après l'autre. Donc une fois la première ligne effectuée (bureau éteint), la 2ème ligne va s'activé .. puisque le bureau est éteint :-)

 

Un simple conseil : inverser les 2 lignes mais je ne connais pas ce qu'il y a dans "eclairages_on"

Posté(e)

Dans eclairages_on, c'est juste les {"Value", id['eclairage"], 1} de tous les eclairages concernés.

 

Mais ce sont des instantanés @steven, GEA prend tout de même en compte le séquentiel des lignes ?

Posté(e)

en principe, il n'y aura jamais d'absolue simultanéité tant qu'on n'aura pas de processeurs quantiques :-) donc GEA doit bien traiter les lignes séquentiellement les unes après les autres, non? Enfin je dis ça.....

 

Sinon, j'ai une petite question : j'ai une ligne GEA qui se déclenche si la luminosité d'un de mes FGMS 001 est >30lux pendant plus de 30 sec.  Ca fonctionne bien... mais pendant un moment. Au bout de quelques jours, GEA n'execute plus l'ordre alors que je suis certains que les conditions sont respectées (je vois biens une lux>30 pendant plus de 30s...). Un coup de save sur la scène GEA et ça repart. Ptit bug ou petite incompréhension de ma part?

GEA.add({"Value+", 267, 30},30,"Remise à  zéro du compteur",{{"Global","compteur",0},{"Portable", 4},{"Portable", 293},{"Portable", 89},{"Portable", 290},{"Portable", 187}})
Posté(e)

@ggpublic,

 

Non tu as bien compris, mais si ca refonctionne après chaque "save" et que GEA ne lit la ligne qu'une seule fois, c'est qu'il te manque un petit {"Repeat"}à  la fin de ta ligne ;-)

GEA.add({"Value+", 267, 30},30,"Remise à  zéro du compteur",{{"Global","compteur",0},{"Portable", 4},{"Portable", 293},{"Portable", 89},{"Portable", 290},{"Portable", 187}, {"Repeat"}})

dis moi tu as assez de portables ?  :60: :60:  tu peux tous les mettre dans la table Portables ;-)

Posté(e)

@pepite oui, enfin y'a des iPad dans le lot :-)

Alors pour le repeat, je croyais que l'idee de cette option était de répéter le push d'avertissement tant que le dispositif n'a pas changé d'etat.

Dans mon cas, le dispositif change bien d'etat mais ma variable globale n'est plus modifiée après un certain temps. J'ai comme l'imprssion que mon GEA est trop chargé... :-(

Posté(e)

Bonjour,

 

ipad ou pas, tu peux tout de même tout mettre dans la table "portables" ;-) ca simplifierait ta ligne ;-)

 

Le Repeat ne concerne pas que les push, ca concerne toute la ligne y compris les conditions et options. En fonction de ce que fait ta ligne tu as besoin du Repeat, comme toi dans ce cas, sinon GEA ne lira la ligne qu'une seule fois. C'est peut-etre pour cela que ton Global ne se fait plus ;-)

Teste avec le Repeat et tiens nous au courant.

 

Bien que je sois aussi en 4.070 et que je rencontre aussi un bug avec un Global qui s'arrete ;-)

Posté(e)

D'ailleurs je vous soumets mon souci hihihi, je continue àtester la telecommande octan en jouant avec plusieurs conditions sur les memes boutons ;-)

En fait cela s'arrete à3 alors qu'il m'allume bien ECLAIRAGE PAPIER, mais ne fais pas le Global avec la valeur 4 lol

, j'ai peut-etre fait une boulette de logique ou autre, mais je ne vois pas où, sachant qu'en mettant les lignes 1 par 1 cela fonctionne, des qu'elles y sont toutes heuuu ben c'est la greve ;-)

-- Double Clic B1, rond plein --
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 4}}, -1, "", {{"turnOn", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 0}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 3}}, -1, "", {{"turnOn", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 4}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_off}, -1, "", {{"turnOn", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 3}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 2}}, -1, "", {{"turnOff", id["ECLAIRAGE_TV"]}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 1}}, -1, "", {{"turnOff", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 2}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_on}, -1, "", {{"turnOff", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 1}})
Posté(e)

Merci @pepite, ça améliore ma compréhension de GEA pcq je pensais que ma ligne serait automatiquement relue si ma condition n'était plus vraie.

Donc c'est quand même vachement sioux, pcq on a un comportement différent selon que l'on mette un device ou une variable comme condition de déclenchement. Je prends un exemple tout bête où on veut remettre à  zero une variable à  l'allumage d'une lampe

 

Ici 99 est une ampoule : avec cette ligne n'a pas besoin de repeat

GEA.add(99,60, "",{{"Global","ma_variable",0}}) 

=> si l'ampoule est allumée plus d'une minute, on met la variable globale à  jour. Par la suite, si on l'éteint puis on la rallume plus d'une minute : la variable sera aussi mise à  jour. Pas besoin de repeat, la ligne se "relance" toute seule.

 

 

Maintenant, 99 est un détecteur de luminosité (FGMS 001) car l'ampoule n'est pas connectée. On veut faire la même chose que précédemment et on considère que l'ampoule est allumée si on détecte plus de 100lux : 

GEA.add({"Value+",99,100},60, "",{{"Global","ma_variable",0}})

=> Donc là  par contre, il faut un repeat, c'est bien ça? Si oui ça mériterait ptet une petite phrase d'explication dans le tuto, non?

 

 

Yes, comme toi, je suis en 4.070 et j'ai aussi des variables globales qui arrêtent de se mettre à  jour (même quand n'y a aucune condition). Par exemple, cette ligne toute simple, à  ~4h du mat, je veux faire un reset de variable: 

GEA.add(true,5*60, "",{{"Time","04:00", "04:15"},{"Global","scenario_matin",0}}) 

He bien parfois, ma variable n'est pas mise à  jour (et pourtant le super watchdog de @Lazer veille au grain :D ) 

Posté(e)

Dans eclairages_on, c'est juste les {"Value", id['eclairage"], 1} de tous les eclairages concernés.

 

Mais ce sont des instantanés @steven, GEA prend tout de même en compte le séquentiel des lignes ?

 

Pour un éclairage, j'aime pas {"Value", id['eclairage"], 1} , mais je préfère {"Value+", id['eclairage"], 0}  car si on le rempalce par un dimmer cela fonctionnera toujours.

 

Oui pour le séquencement des lignes, que cela soit en mode 30s ou immédiat, GEA empile les commandes à  traiter et les dépile dans l'ordre en les exécutant.

 

 

Pour le {"Repeat"}, je me permet de rejoindre @ggpublic.

Le {"Repeat"} permet de continuer à  analyser la ligne en cours et envoyé les messages TANT QUE la condition est respectée. Sans le {"Repeat"} Cette ligne ne serait exécutée qu'une seul fois puis mise en veille jusqu'à  ce que la condition ne soit plus respectée.

Dans le cas de @ggpublic, il souhaite être averti, une seule fois, lorsque la luminosité est > 30 lux pendant 30s. Le reapeat est donc inutile.

 

 

@ggpublic

Ton code devrait fonctionner, le seul truc que tu pourrais tester est de mettre le 0 entre guillet "0" mais cela ne devrait pas avoir d'impact.

  • Es-tu certain que le lux redescend bien au dessous des 30 lux.
  • Que l'ID 267 correspond bien à  un "Light Sensor"

Quant tu dis que la variable globale ne change plus ... est-ce que tu reçoit quand même les push sur tes portables ?

 

Sinon, il y a une alternative qui serait d'utiliser cela en mode immédiat (-1)

--[[
%%property
267 value
%%global
compteur
]]--

GEA.add({"Value+", 267, 30}, -1, "", {{"Global","compteur","0"}})
GEA.add({"Global","compteur","0"}, -1,"Remise à  zéro du compteur", {{"Portable", 4},{"Portable", 293},{"Portable", 89},{"Portable", 290},{"Portable", 187}})

Mais faut faire attention à  ce qui remet "compteur" à  autre chose que 0.

 

Voili, voilà 

Posté(e)

Merci @steven pour les explications et l'astuce des value de l'éclairage, je vais modifier de suite.

 

Ah, je pensais à  tort que l'empilement se faisait sur les 30 s seulement. hihihi encore merci

 

Désolé @ggpublic, je t'ai donc dit une bêtise pour les Repeat ;-).

 

Je pense que nos soucis de Global viennent de la 4.070 et non de GEA. mon code ci-dessus réagit pas tres bien hihihi ;-) 

j'essaie de contourner mais pas simple lol

Posté(e)

Bonjour,

obtenu une petite question à  propos de l'envoi de poussée messege avec GEA .
Est-il possible d'ajouter télégramme poussée à  elle ?
J'intergrate à  mon fibaro HC et il est plus fiable, la poussée d' fibaro HC qui est parfois brisée , (version android ou je ne sais pas ) .
Aussi pratique pour regarder vous messege arrière dans l'histoire .

Telegram intergration :
http://forum.fibaro.com/index.php?/topic/20581-sending-messages-from-your-hc2-to-your-telegram-account/

en ayant cette seule chose à  faire est ad cette ligne

fibaro:setGlobal("Telegram", "messege")

ou comme dans cet exemple de la présence sim .

fibaro:setGlobal("Telegram", "Simulation à  partir de l'horaire prévu : " .. start_simu)

serait bien si cela pouvait être intergrated dans GEA .

 

 

désolé pour mon frensh i utilise traduire ; )

Posté(e)

@pepite

 

Tordu ton code  :D

 

Je pense que tes meilleurs amis s'appellent : "papier" et "crayon" et qu'il faut faire un petit schéma pour voir les interactions.

 

Car juste à  la lecture de cela, je vois un problème entre la ligne 1 et la dernière ... soit j'allume le bureau ... puis je l'éteint  :(

Posté(e)

hihi oui c'est un peu tordu je l'avoue ;-)

Papier Crayon ? tu veux que je fasse une allergie ;-)

 

J'explique ce que je souhaite faire : 

 

Lorsque tous les eclairages sont allumés : "eclairages_on", par double-clic je voudrais faire :

 

1- au 1er double clic, eteindre la lampe bureau

2- au 2eme double clic : eteindre la lampe papier

3- au 3eme double clic : eteindre les lampes TV

4- au 4eme double-clic : rallumer lampes TV

5- au 5eme : rallumer lampe papier

6- au 6eme : rallumer lampe bureau

 

Un peu comme une boucle avec le double clic, si vous avez une autre idee ;-) Je trouvais ca plus simple à  ecrire avec en condition la valeur d'une VG ;-)

Posté(e)

@pepite: c'est tordu comme fonctionnement mais faisable...

 

Je pense que tu dois utiliser une variable globale dans laquelle tu stockes l'état des lampes genre 'XXXXX' pour tes 5 lampes

Si tu as '11111'  toutes les lampes sont allumées

Si tu as '01111' les 4 dernières sont allumées

...

 

Tu dois aussi avoir une variable compteur qui compte le nombre de double clic pour savoir quelle position tu dois changer.

Pour changer un position, tu peux utiliser l'opérateur ou exclusif (fonctionne en php/C++,... je ne sais pas comment ça marche en lua)

Ex:

au 1° DC

11111 ^ 10000 (pour changer l'état de la première lampe) -> 01111

au 2° DC

01111 ^ 01000 (pour changer l'état de la première lampe) -> 00111

 

Et dans un 2° temps, tu dois allumer ou éteindre tes lampes en fonction de cette variable

×
×
  • Créer...