Aller au contenu

Recommended Posts

@sabbrunie1, je pense la même chose que toi pour les {}.

Il doit y avoir une paire supplémentaire qui englobe les actions

Partager ce message


Lien à poster
Partager sur d’autres sites

@sakkhho :

il te manque des accolades :

GEA.add({"Sensor-", id["WP_LAVE_LINGE"], 2.5}, 2*60, "", {{"Global", "Lave_Linge", "Arret"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

mais c'est bien sur ...   :13:

 

Merci à  vous - ca fonctionne.

 

sur les 2 lignes

	GEA.add({"Sensor-", id["WP_LAVE_LINGE"], 2.8}, 2*60, "", {{"Global", "Lave_Linge", "Arret"}})   	
	GEA.add({{"Sensor+", id["WP_LAVE_LINGE"], 1},{"Sensor-", id["WP_LAVE_LINGE"], 2.8}, {"Global", "Lave_Linge", "Lavage"}}, 5*60, "", {{"Global", "Lave_Linge", "En Attente"}})
  

j'ai l'impression qu'il y a un conflit, comme c'etait le script de steven, je me dis essaye de comprendre car c'est forcement juste :-)

 

mais je me dis que la variable "en attente" ne va jamais rester ainsi donc le push de la ligne 1 ne sera jamais fait

	GEA.add({"Global", "Lave_Linge", "En Attente"}, 30*60, "Le lave-linge est arrêté depuis #duration#",{{"Repeat"}})

je comprends mal la syntaxe ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous,

 

Etant débutant, je souhaite utiliser GEA par étape. En premier lieu, je souhaite arrêter le chauffage du salon sur la T° dans la journée est supérieur à  20°. Le chauffage est commandé par un qubino et identifié comme "Chauff_SALON = 223. Le thermomètre lui est identifié T_SALON = 230.

 

Lorsque je mets la ligne: 

 

GEA.add({"Global+", "T_Salon", 20}, 10*60, "", {{Value, 20}, id["Chauff_SALON"]},{"Time","23:00","06:00"})

 

GEA m'indique le message suivant[ERROR] 12:23:26: line 443: bad argument #1 to 'lower' (string expected, got nil)

 
Il doit y avoir une erreur dans ma ligne, mais je ne capte pas d'où elle provient....
Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

il te manque une } supplémentaire à  la fin de ta ligne juste avant le )

Partager ce message


Lien à poster
Partager sur d’autres sites

je confirme mon analyse du dessus.

pas de push avec un test,

 

du coup je me dis qu'en temporisant comme ceci ca devrait le faire

 	GEA.add({"Global", "Lave_Linge", "En Attente"}, -1, "Le lave-linge est arrêté depuis #duration#",{{"Portable", 10,63,136},{"Repeat"}})
	GEA.add({"Sensor-", id["WP_LAVE_LINGE"], 2.8}, 30*60, "", {{"Global", "Lave_Linge", "Arret"}})   	
	GEA.add({"Sensor+", id["WP_LAVE_LINGE"], 3}, 2*60, "", {{"Global", "Lave_Linge", "Lavage"}}) 
	GEA.add({{"Sensor+", id["WP_LAVE_LINGE"], 1},{"Sensor-", id["WP_LAVE_LINGE"], 2.8}, {"Global", "Lave_Linge", "Lavage"}}, 1*60, "", {{"Global", "Lave_Linge", "En Attente"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@Sebruniel

 

crée une scène LUA qui affecte à  une variable la distance, que tu pourra utiliser a ta guise dans GEA 

 

moi j'ai un soucis je pense, j'ai 5000m entre userLocation et testLocation

%% properties
2 Location
%% globals
--]]

-- Get the location of the user with ID 123

---local distan = fibaro:calculateDistance(getValue(2, 'Location');
local userLocation = fibaro:getValue(2, 'Location')
local testLocation = "xx.xxxxxx;-xx.xxxxx"
 
local result
 
-- calculate the distance between the user and the test location
result = fibaro:calculateDistance(userLocation, testLocation)
fibaro:debug('The distance is ' .. result .. 'm.')
  
----- Affectatation de la distance dans la variable Emplacementjmd  
fibaro:setGlobal('Emplacementjmd', result);

Partager ce message


Lien à poster
Partager sur d’autres sites

Je n'ai pas trouvé la syntaxe pour tester en condition si un capteur est armé ou non ?

est ce possible avec GEA ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@PITP2

 

Que veux tu faire ?

GEA.add({"Armed", id["MA_PORTE"]}, 30*60, "Capteur armé", {...})
GEA.add({"Armed", id["MA_PORTE"]}, -1, "Le capteur vient d'être armé", {...})

Je n'ai pas testé.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Bonjour à  tous,

 

Etant débutant, je souhaite utiliser GEA par étape. En premier lieu, je souhaite arrêter le chauffage du salon sur la T° dans la journée est supérieur à  20°. Le chauffage est commandé par un qubino et identifié comme "Chauff_SALON = 223. Le thermomètre lui est identifié T_SALON = 230.

 

Lorsque je mets la ligne: 

 

GEA.add({"Global+", "T_Salon", 20}, 10*60, "", {{Value, 20}, id["Chauff_SALON"]},{"Time","23:00","06:00"})

 

GEA m'indique le message suivant[ERROR] 12:23:26: line 443: bad argument #1 to 'lower' (string expected, got nil)

 
Il doit y avoir une erreur dans ma ligne, mais je ne capte pas d'où elle provient....
Merci

 

Salut @amonthet, comme on se retrouve depuis Scheluder...

tu devrais jeter un oeil sur ce post

http://www.domotique-fibaro.fr/index.php/topic/841-gestion-chauffage-avec-sondes-oregon-netatmo-json-etc/?p=8205

 

C'est sur un module de chauffage créé par @Steven, (encore lui  :P ) qui fonctionne super bien et très pratique, tu peux facilement le moduler pour tes besoins.

j'en ai créé un par radiateurs, un par zones et un général est c'est de la balle  :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

@Shyrka, cela ne fonctionne pas.

j'ai utilisé cela aussi comme code mais sans résultat non plus

GEA.add({"Property", id["OP_SALON"], "armed", "true"},30, "Capteur armé", {{"turnOn", id["LUMIERE_BUREAU"]}})
  je désire déclencher certaines actions en fonction de l'armement des capteurs lors de la mise en route de mon alarme

Partager ce message


Lien à poster
Partager sur d’autres sites

perso mais c'est peut être pas ideal, je mets à  jour la variable alarme quand j'ai armé et donc ensuite j'utilise cette variable pour des actions

mais c'est peut être pas ton besoin

   GEA.add(Absent, 1*60, "Alarme ON Absent", {{"setArmed",id["MOV_ENTREE"]},{"setArmed",id["MOV_SALON"]},{"setArmed",id["OUV_CAVE"]},{"setArmed",id["OUV_CHAMBRE_AMIS"]},{"setArmed",id["MOV_BUREAU"]},{"VirtualDevice", id["ETAT_ALARME"], 2}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@PITP2

 

Je suppose que tu as mis dans l'entête du script GEA:

20 armed

20 est à  remplacer par la valeur de id["OP_SALON"].

Partager ce message


Lien à poster
Partager sur d’autres sites

@shyrka, yep mais le changement d'état semble ignoré.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci à  tous pour les infos

 

Un point sur lequel j'ai galéré et qu'il serait bon de remonter dans les commentaires de l'actipon Email : 

Quand on utilise l'action Email, il faut absolument que la variable message ne soit pas vide, sinon le mail n'est pas envoyé

Partager ce message


Lien à poster
Partager sur d’autres sites

 

@Sebruniel

 

crée une scène LUA qui affecte à  une variable la distance, que tu pourra utiliser a ta guise dans GEA 

 

moi j'ai un soucis je pense, j'ai 5000m entre userLocation et testLocation

%% properties
2 Location
%% globals
--]]

-- Get the location of the user with ID 123

---local distan = fibaro:calculateDistance(getValue(2, 'Location');
local userLocation = fibaro:getValue(2, 'Location')
local testLocation = "xx.xxxxxx;-xx.xxxxx"
 
local result
 
-- calculate the distance between the user and the test location
result = fibaro:calculateDistance(userLocation, testLocation)
fibaro:debug('The distance is ' .. result .. 'm.')
  
----- Affectatation de la distance dans la variable Emplacementjmd  
fibaro:setGlobal('Emplacementjmd', result);

Ben oui je crois mais c'est ce que je voulais éviter et tout integrer dans GEA.. Ca me résiste, c'est tres énervant :).. Et puis c'est Steven qui m'a écrit les lignes.. Ca devrait marcher tout de même....;) c'est lui le chef !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

@PITP2

 

Cette ligne devrait fonctionner:

GEA.add(id["OP_SALON"], -1, "Capteur armé", { {"Inverse"}, {"Armed"}, {"turnOn", id["LAMPE_COULOIR"]}, })

"Inverse" permet que la règle soit activé quand le capteur soit au repos.

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faut savoir que GEA ne gère pas, pour l"instant, le "propertyName" d'un trigger généré par la modification d'une propriété:

Ainsi:

12 value
12 armed
12 battery

déclenchera la même règle.

 

Il faudrait étendre GEA en lui ajoutant quelque chose comme cela par exemple:

GEA.add({ {"TriggerName", 12, "battery"}, -1, "", ... })

Cette règle ne sera active que si la propriété déclencheur est "battery" pour le device 12.

Partager ce message


Lien à poster
Partager sur d’autres sites

@shyrka, aucune réaction .... donc cela ne marche pas merci quand même pour ton aide  :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous

 

J'ai passé une partie de la soirée à  essayer de remonter une info de consommation totale de courant, mais je n'ai pas réussi à  trouver comment faire avec GEA

Mon idée serait de remonter des infos de sensibilisation, genre quand le seche linge a tourné en HP, pouvoir envoyer un message pour indiquer le gain qui aurait pu être fait (même si on parle de qqs centimes  :) )

 

Mon idée a été la suivante : comme on a une variable #duration# (par exemple pour une scene où on a le lave linge a l'état running comme l'a fait steven), et du coup les dates aussi de la scene, ca serait de l'utiliser pour aller recuperer les informations dans le panel energy panel avec l'api , genre

http://:@/api/energy/<timestampstart>/<timestampstop>/single/devices/power/<id lave linge> et récupérer les kw dans le json

 

J'ai donc essayé de modifier le code pour me faire cette fonction, mais j'ai lamentablement echoué !

 

Y a t il une autre solution déjà  en place que je n'aurais pas détecté ou suis je le seul à  vouloir faire ce genre d'usine à  gaz ?? :)

 

Bonne journée à  tous

 

Salut atalata,

 

Malheureusement, non, GEA ne prend pas du tout en compte les appels API. Je comprends bien ta demande mais cela deviendrais vite (comme tu le dis) une usine à  gaz ... Oups pardon, GEA est déjà  une usine à  Gaz et Charbon.

 

Par contre, je suis entrain de réecrire la globalité du code de GEA afin d'avoir une plus grande flexibilité pour ajouter/développer ses propres conditions, actions sans avoir a allez chercher dans les +1000 lignes de code.

 

Par contre, cela va me demander encore pas mal de temps, unité qui reste la plus rare chez moi ces prochains jours.

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Bonjour à  tous,

 

Etant débutant, je souhaite utiliser GEA par étape. En premier lieu, je souhaite arrêter le chauffage du salon sur la T° dans la journée est supérieur à  20°. Le chauffage est commandé par un qubino et identifié comme "Chauff_SALON = 223. Le thermomètre lui est identifié T_SALON = 230.

 

Lorsque je mets la ligne: 

 

GEA.add({"Global+", "T_Salon", 20}, 10*60, "", {{Value, 20}, id["Chauff_SALON"]},{"Time","23:00","06:00"})

 

GEA m'indique le message suivant[ERROR] 12:23:26: line 443: bad argument #1 to 'lower' (string expected, got nil)

 
Il doit y avoir une erreur dans ma ligne, mais je ne capte pas d'où elle provient....
Merci

 

 

Découpons

 

GEA.add(

     {"Global+", "T_Salon", 20},                      --- OK, si la variable globale T_Salon est supérieure à  20

     10*60,                                           --- OK durée indiquée

      "",                                             --- OK pas de message

     {                                                --- FAILED Ouvert mais pas fermé

       {Value, 20}, id["Chauff_SALON"]},              --- FAILED {Value, 20}id["Chauff_SALON"]} -- * Voir plus bas

       {"Time","23:00","06:00"}                       -- OK entre 23.00 et 06.00

)

 

 

* devrait être {"Value",id["Chauff_SALON"], 20} -- les mots clés sont entre "" et "Value" reçoit l'ID avant la valeur

{"Value", <ID>, <valeur>}

 

donc

GEA.add({"Global+", "T_Salon", 20}, 10*60, "", {{"Value", id["Chauff_SALON"], 20}, {"Time","23:00","06:00"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci à  tous pour les infos

 

Un point sur lequel j'ai galéré et qu'il serait bon de remonter dans les commentaires de l'actipon Email : 

Quand on utilise l'action Email, il faut absolument que la variable message ne soit pas vide, sinon le mail n'est pas envoyé

 

Ben c'est un peu quand on a rien à  dire ... pourquoi le dire. J'ai 3 enfants donc cette règle est pour moi MEGA importante :)

 

Donc oui, je suis d'accord avec toi, il faut préciser dans la documentation : si pas de message alors pas d'email.

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Et pour continuer je n'arrive vraiment pas à  maîtriser les conditions, cela ne semble pas réagir de la même façon à  chaque fois .. entre deux lignes différentes :huh: 

 

par exemple pour ces lignes je désire que la température ne soit diffusée qu'une fois par heure lors de la détection de présence

 

j'ai donc fait comme ceci

local tophoraire = {"If", {{"Global", "GEA_heure", "0"}}}

GEA.add( true , 60*60, "", {{"Global", "GEA_heure", "0"}, {"Repeat"}})


GEA.add({id["CP_SALON"]}, -1 , "", {{"Function", function() TtsTempSalon() end},{"Global", "GEA_heure", "1"}, tophoraire}) 
mais la condition "tophoraire" ne semble pas utilisée vu qu'a chaque détection de mouvement le message est diffusé.
La variable globale GEA_heure est pourtant bien mise à  1
 
 
j'ai utilisé cet exemple de sebcbien qui je suppose fonctionne chez lui
 

GEA.add({"SceneActivation", id["LAMPE_WC"], 26}, -1, "",{{"VirtualDevice",id["VD_VMC"],"6"},{"Global","VENT_V3_TEMP", "1"},{"If",{{"Global", "VENT_V3_TEMP", "0"}}}})

En gros GEA se moque de moi et de mes conditions  :2:

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Bonsoir,

 

bon, avec ce code, il ne se passe rien du tout...

 


-- Localisation EmplacementSeb
local DistanceMaison1 = {"Function", function() return fibaro:calculateDistance(userLocation, EmplacementMaison1) end}
local DistanceBureau1 = {"Function", function() return fibaro:calculateDistance(userLocation, EmplacementBureau1) end}

GEA.add(DistanceBureau1, 30, "", {{"Global", "DistanceBureau", "#value#"}, {"Label", id["DISTANCE"], "Label2", "#value# m"}})
GEA.add(DistanceMaison1, 30, "", {{"Global", "DistanceMaison", "#value#"}, {"Label", id["DISTANCE"], "Label1", "#value# m"}})

 ici dans la variable locale:

local DistanceMaison1 = {"Function", function() return fibaro:calculateDistance(userLocation, EmplacementMaison1) end}

Il n'y a pas un GEA.add a mettre au début style:

 

  1. local DistanceMaison1 = GEA.add(true , 30 , "" , {{"Function", function() return fibaro:calculateDistance(userLocation, EmplacementMaison1) end}})

Partager ce message


Lien à poster
Partager sur d’autres sites

×