Aller au contenu

Recommended Posts

Bonjour à tous,

 

Je voudrais savoir comment utiliser les fonctions des QuickApp dans GEA si c'est possible.

Je voudrais faire un truc du genre :

GEA.add({
    {"Time", "07:26", "07:27"}
  }, 30, "", {
    {"QuickApp", id["COLOR_WP"], setIdWallPlug, [id["WP01_COLORS"]]},
    {"QuickApp", id["COLOR_WP"], onOn, []}
  }
)

En gros, je veux exécuter la méthode du QuickApp : setIdWallPlug avec l'argument id WP01_COLORS qui possède l'id COLOR_WP, et ensuite exécuter la méthode onOn qui ne possède pas d'argument.

 

Merci pour votre aide.

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faut mettre le nom de ta fonction entre guillemets, il faut que ça soit une string.

En l'état, le moteur LUA pense que c'est un nom de variable, qui n'existe pas, donc qui prend la valeur nil. Du coup ta fonction n'est jamais appelée

 

Quant à ton argument, inutile de le mettre entre crochets, tu peux directement l'envoyer comme une valeur (numérique je suppose ?)

 

Un truc dans le genre :

GEA.add({{"Time", "07:26", "07:27"}}, 30, "", {
    {"QuickApp", id["COLOR_WP"], "setIdWallPlug", id["WP01_COLORS"]},
    {"QuickApp", id["COLOR_WP"], "onOn"}
  }
)

 

Extrait de la doc de syntaxe que je suis en train de mettre à jour pour la prochaine version :


-- "QuickApp" - "QA" : Appelle une fonction d'un QuickApp

	-- SYNTAXE :
	{"QuickApp", <id_module>, <méthode>}
	{"QuickApp", <id_module>, <méthode>, <paramètre_1>}
	{"QuickApp", <id_module>, <méthode>, <paramètre_1>, <paramètre_2>}
	{"QuickApp", <id_module>, <méthode>, <paramètre_1>, <paramètre_2>, ...}

	-- CONDITIONS : Ne peut pas être utilisé comme CONDITION

	-- ACTIONS :
	GEA.add( {CONDITIONS}, 30, "", {"QuickApp", 73, "sendData", "Hello world"} )       -- Appelle la méthode sendData() du QuickApp numéro 73 avec l'argument "Hello world"
	GEA.add( {CONDITIONS}, 30, "", {"QuickApp", {73, 74}, "sendData", "Hello world"} ) -- Appelle la méthode sendData() des QuickApps numéros 73 ET 74 avec l'argument "Hello world"

 

Partager ce message


Lien à poster
Partager sur d’autres sites

OK ! Cool ! Merci Laser.

C'est bien pratique ce genre d'appel de méthode inter-quickapps !! :D

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Les appels d'un QA à un autre, c'est ça la force de la HC3 !

Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 28/02/2021 à 14:10, 971jmd a dit :

finalement je suis arrivée 


---FERMETURE
GEA.add( { {"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "E"}},  -1, "" ,{{"Open", id["VL_BAR"]}, {"Global", "BOUTONB", "A"}})

---STOP
GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, 
{"(Global)", "BOUTONB", "D"}},  -1, "" ,
{{"Stop", id["VL_BAR"]}, {"Global", "BOUTONB", "E"} }) 

---FERMETURE
GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, 
{"(Global)", "BOUTONB", "C"}},  -1, "" , {
    {"Close", id["VL_BAR"]}, {"Global", "BOUTONB", "D"} } )

---STOP
GEA.add( {{"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, 
{"(Global)", "BOUTONB", "B"}},  -1, "" ,
{{"Stop", id["VL_BAR"]}, {"Global", "BOUTONB", "C"} }) 

----OUVERTURE
GEA.add( { {"CentralSceneEvent", id["BOUTON_BLEU"], 1, "Pressed"}, {"(Global)", "BOUTONB", "A"}},  -1, "" ,{{"Open", id["VL_BAR"]}, {"Global", "BOUTONB", "B"}})


GEA.add({"Value+", id["VL_BAR"], 90},  30, "ouvert" , {{"Global", "BOUTONB", "C"}})
GEA.add({"Value-", id["VL_BAR"], 10},  30, "close" , {{"Global", "BOUTONB", "A"}})

 

 

salut à tous

 

J'ai réalisé ce petit code pour ouvrir stopper et fermer mon volet roulant avec le bouton de Fibaro, ça fonctionne très bien mais j'ai quand même un petit problème. 

 

Tant que j'utilise le bouton pour réaliser mes actions mes variables fonctionne parfaitement bien, mais si j'utilise mon smartphone par exemple pour ouvrir ou fermer ou stopper, comment remonter ces informations là vers GEA ?

 

 

 

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

DEAR all, I am trying to migrate to HC3 but have porblems with this new GEA. I hope i have added some lines on the correct places 

image.png.2670fcab7111081b34cd9205e8f4847e.png

but i do get the following error /warning

image.thumb.png.d129185b23fd180ecfc2e74278eb2859.png

as you see it didn't add line 23 nor do i see that it runs every 30 sec.

 

Ps. was the language selection removed? I cant find it anymore

Partager ce message


Lien à poster
Partager sur d’autres sites

Your GEA rule #7 on line 23 has a bad option, you must remove the space and use the following syntax : "Value+"

Also, the second parameter is strange, a string containing "575" ? What is that, a module named 575 ? Or if you want to use its ID, you must use a numeric value, so just 575 is fine. Or its exact full name in a string enclosed with double quotes.

So this rule is ignored, and no event trigger is recorded.

 

You can still force a specific language by adding the following option in config() :

	GEA.language = "fr"

(only French and English are recognized)

 

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne suis pas certain si je peux poster ici...

J'ai voulu test une notification lors de la commutation de wallplug et j'obtient 2 notifications :(

 

-- -------------------------------------------
-- TEST sur Wallplug et detection de présence
-- -------------------------------------------
    GEA.add({"Value", id["Detect_Bureau"], 1}, -1, "Wallplug1 allumé le #date# à #time#", {{"Portable", MobileId["PHONE_BERNARD"]}, {"Inverse"}, {"turnOn", id["WallPlug1"]}})

 

[22.03.2021] [07:51:11] [TRACE] [QA_GEA_80]: ----------------------------------------------------------------------------------------------------
[22.03.2021] [07:51:11] [TRACE] [QA_GEA_80]: Démarrage par événement de GEA 7.20 (mode device [68])
[22.03.2021] [07:51:11] [TRACE] [QA_GEA_80]: ----------------------------------------------------------------------------------------------------
[22.03.2021] [07:51:11] [DEBUG] [QA_GEA_80]: Ajout immédiat #5 : ["Value",[68,1]] => ["Portable",[92]] ["TurnOn",[52]]
[22.03.2021] [07:51:11] [DEBUG] [QA_GEA_80]: @0s [Validation*] #5 : ["Value",[68,1]] => ["Portable",[92]] ["TurnOn",[52]]
[22.03.2021] [07:51:11] [DEBUG] [QA_GEA_80]:    [Démarrage] #5 : ["Value",[68,1]] => ["Portable",[92]] ["TurnOn",[52]]
[22.03.2021] [07:51:11] [DEBUG] [QA_GEA_80]:         [action] ["Portable",[92]]
[22.03.2021] [07:51:12] [DEBUG] [QA_GEA_80]:         [action] ["TurnOn",[52]]
[22.03.2021] [07:51:13] [DEBUG] [QA_GEA_80]: ... vérification en cours #3 @90s...
[22.03.2021] [07:51:13] [DEBUG] [QA_GEA_80]: @90s [Validation] #2 : Démarrage box
[22.03.2021] [07:51:13] [DEBUG] [QA_GEA_80]: @90s [Validation] #3 : Détection nouvelle version
[22.03.2021] [07:51:13] [DEBUG] [QA_GEA_80]: @90s [Validation] #4 : Détection nouvelle version beta
[22.03.2021] [07:51:17] [TRACE] [QA_GEA_80]:
[22.03.2021] [07:51:17] [TRACE] [QA_GEA_80]: ----------------------------------------------------------------------------------------------------
[22.03.2021] [07:51:17] [TRACE] [QA_GEA_80]: Démarrage par événement de GEA 7.20 (mode device [68])
[22.03.2021] [07:51:17] [TRACE] [QA_GEA_80]: ----------------------------------------------------------------------------------------------------
[22.03.2021] [07:51:17] [DEBUG] [QA_GEA_80]: Ajout immédiat #5 : ["Value",[68,1]] => ["Portable",[92]] ["TurnOn",[52]]
[22.03.2021] [07:51:17] [DEBUG] [QA_GEA_80]: @0s [Validation*] #5 : ["Value",[68,1]] => ["Portable",[92]] ["TurnOn",[52]]
[22.03.2021] [07:51:17] [DEBUG] [QA_GEA_80]:    [Démarrage] #5 : ["Value",[68,1]] => ["Portable",[92]] ["TurnOn",[52]]
[22.03.2021] [07:51:17] [DEBUG] [QA_GEA_80]:         [action] ["Portable",[92]]
[22.03.2021] [07:51:17] [DEBUG] [QA_GEA_80]:         [action] ["TurnOn",[52]]
[22.03.2021] [07:51:38] [TRACE] [QA_NETWORKMONITOR_53]: Check : Google => www.google.fr
[22.03.2021] [07:51:39] [TRACE] [QUICKAPP65]: checkMacListUnifi() succeed

 

Partager ce message


Lien à poster
Partager sur d’autres sites

D'après le log, je vois que ton détecteur s'est désactivé 2 fois (car tu prends en compte la condition "Inverse") :

- une 1ère fois à 07:51:11

- 6 secondes plus tard, une seconde fois à 07:51:17

 

GEA ne fait que réagir aux événements de tes capteurs, donc il est logique que tu aies reçu 2 notifications.

Non ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

En effet. Sauf que si je ne met pas inverse ça ne fonctionne pas du coup. 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne sais pas ce que tu veux faire en fait.

Mais là il faut poser la question sur le topic Support GEA, car ta problématique est générale et pas lié à la HC3.
Un détecteur de mouvement, ça se déclenchera et s'arrêtera de se déclencher tant qu'il y aura des mouvements dans la pièce.


EDIT : déplacé au bon endroit

Modifié par Lazer

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai trouvé à force, j'avais 1 dans le détecteur de mouvement + Inverse du style : GEA.add( id["DETECTEUR_BUREAU"], 1}, -1 > et le inverse au bout.

 

J'ai viré les 2 et ça fonctionne bien, 1 allumage et une notif like this

GEA.add( id["DETECTEUR_BUREAU"], -1, "Wallplug1 allumé le #date# à #time#", {{"turnOn", id["WALLPLUG1"], 1*60}, {"Portable", MobileId["PHONE_BERNARD"]}})

 

J'avais un script qui gérait ça, l'allumage sur détection en maintenant la lumière si mouvement + allumage manuel de l'inter et tempo contre le réalumage automatique.

Mais comme tout a changé dans le code et que je ne comprends rien j'essaye d'avoir des automatismes fonctionnels pour basculer.

Modifié par Domodial

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah ben oui, le coup du 1, je n'avais pas fait attention, mais pourtant je l'ai déjà dit plusieurs fois sur ce topic et sur l'autre.

Sur HC3, les modules ne prennent plus la valeur 1, donc si tu testes cette valeur avec GEA, forcément ça ne va jamais déclencher la règle.

Pour tous les détecteurs binaires, c'est true ou false.

 

Bref, il y a une seule règle à retenir : sur HC3 regardez le JSON des modules pour voir quelle valeur prendre le champ "value", c'est le seul moyen efficace de ne pas se tromper.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai réussis à faire allumer ma lumière sur détection et aussi à la maintenir avec un RestartTask.

Par contre bien que cela fonctionne je vois cette erreur mais je ne sais pas de quoi cela provient.

J'ai envie de dire de RestartTask si je désactive la ligne.

   local autooff = GEA.add( id["DETECTEUR_BUREAU"], -1, "Wallplug1 allumé le #date# à #time#", {{"turnOn", id["WALLPLUG1"], 1*60}, {"Portable", MobileId["PHONE_BERNARD"]}})
   GEA.add(id ["DETECTEUR_BUREAU"], -1, "", {"RestartTask", autooff})
[23.03.2021] [12:17:46] [DEBUG] [QA_GEA_80]: @240s [Validation] #2 : Démarrage box
[23.03.2021] [12:17:46] [DEBUG] [QA_GEA_80]: @240s [Validation] #3 : Détection nouvelle version
[23.03.2021] [12:17:46] [DEBUG] [QA_GEA_80]: @240s [Validation] #4 : Détection nouvelle version beta
[23.03.2021] [12:14:01] [ERROR] [QUICKAPP98]: QuickApp crashed
[23.03.2021] [12:14:01] [ERROR] [QUICKAPP98]: app.lua:6: unexpected symbol near '<\195>'

 

Modifié par Domodial

Partager ce message


Lien à poster
Partager sur d’autres sites

app.lua ? Bizarre ça...

en tout cas, je vois un espace entre id et le crochet ouvrant, déjà c'est pas bon. Si ce n'est pas ça le problème, c'est que tu as un symbole inattendu quelque part, donc un caractère caché.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir, 

 

Je vais peut être relancer un sujet déjà évoqué précédemment dans les 452 pages :3: mais je cherche à faire un créneaux horaire sur G.E.A.

 

Je m'explique: 

J'aimerai que mon circulateur fonctionne démarre à 06H00 et s'éteigne à 09h00. 

Je l'ai donc écris ainsi:  

GEA.add({{"Profile",1},{"Time","06:00","09:00"}},-1,"Circulateur ON",{{"Inverse"},{"turnOn",{id["CIRCULATEUR_1"]}}})

Cela ne fonctionne pas. 

 

Si quelqu'un à la solution je veux bien! 

Merci ;).

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Il ne faut pas utiliser de déclencheur (-1) dans ce cas.

Et il faut 2 règles, 1 pour chaque heure et chaque action.

 

Donc un truc dans le genre :

GEA.add({{"Profile",1}, {"Time","06:00","06:01"}}, 30, "Circulateur ON", {"turnOn",id["CIRCULATEUR_1"]})
GEA.add({{"Profile",1}, {"Time","09:00","09:01"}}, 30, "Circulateur OFF", {"turnOff",id["CIRCULATEUR_1"]})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut! 

 

Merci pour la réponse. 

Je rectifie l'erreur du déclencheur mais je ne saisie pas vraiment.

 

Dans ton code tu écris:   

GEA.add({{"Profile",1}, {"Time","06:00","06:01"}}, 30, "Circulateur ON", {"turnOn",id["CIRCULATEUR_1"]})

il va démarrer a 06:00 mais ne va pas s'éteindre à 06:01 sachant qu'il exécute un turnOn? 

Peut être que j'interprète mal le code. 

 

Pour le coup de mon côté en attendant de trouver un code qui prend en compte une tranche horaire je l'avais écris comme suivant: 

GEA.add({"Time","06:00"}, 30, "Circulateur ON", {"turnOn", id["CIRCULATEUR_1"]})
GEA.add({"Time","09:00"}, 30, "Circulateur OFF", {"turnOff", id["CIRCULATEUR_1"]})

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela devrait fonctionner aussi.

 

Pour répondre à ta première question, non, à aucun moment GEA ne fera de TurnOff, sauf si tu lui demandes.

Il fera juste un TurnOn entre 06h00 et 06h01.

J'ai pris pour habitude de toujours donner 1 minute "de rab" dans mes temporisation, par sécurité, au cas où GEA sera occupé et ne pourrait pas traiter les événements pendant 1 minute. Ce n'est jamais censé arriver, mais vu que GEA gère tous mes chauffages, j'ai préféré assurer.

 

Pour la durée, tu peux aussi remplacer 30 par 0, c'est encore mieux dans ce contexte, ainsi tu seras certain que GEA déclenche l'action dès la première occurrence (c'est à dire entre 06:00:00 et 06:00:30)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je te remercie pour la réponse apportée. 

Je le ferai donc en deux codes ;) 

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour compléter, tu peux le faire en 1 seule ligne avec un turnoff automatique (voir la doc de syntaxe), mais c'est fortement déconseillé pour un délai aussi long (de plusieurs heures)
Si entre temps la box redémarre, GEA redémarre, ou tout autre raison imprévue, alors le turnoff ne sera jamais exécuté, c'est dangereux.

 

Le plus simple et le plus efficace, c'est une ligne par horaire et par action, tel que je t'ai donné les 2 lignes.

C'est ce que je fais pour toute la gestion de mon chauffage, j'ai plusieurs dizaines de lignes qui ne font que des actions basiques à telle ou telle heure, ça fonctionne de façon ultra fiable depuis des années.

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Je cherche a affiner mon code GEA sur une petite fonction. N'étant vraiment pas bon dans ce type de prog, est-ce que vous pouvez me dire si c'est correct svp?

La fonction a pour but de m'alerter lorsque la porte du garage reste ouverte. Bon... ça me saoule un peu car le week-end ou pendant les congés autant vous dire que la porte reste loooongtemps ouverte.

La ligne suivante :

GEA.add(id["Porte_Garage"] , 60*60, "La porte du garage est ouverte depuis #duration#", {"Repeat"} )

deviendrai :

GEA.add(id["Porte_Garage"] , {"Time", "20:00", "08:00"}, 60*60, "La porte du garage est ouverte depuis #duration#", {"Repeat"} )

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faut rajouter des accolades autour des 2 conditions :

GEA.add({id["Porte_Garage"], {"Time", "20:00", "08:00"}}, 60*60, "La porte du garage est ouverte depuis #duration#", {"Repeat"})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir, 

 

J'aurais besoin d'un petit coup de main pour ma pompe d'arrosage.:D

Actuellement j'utilise le code suivant pour arroser mon potager: 

GEA.add({{"Profile",1},{"Time","19:00"},{"Global","Saisons","Printemps"}}, 30, "Demarrage Pompe", {"turnOn", id["POMPE_1"]})

Je voulais rajouter la condition météo pour que ma pompe se mette en marche seulement si la météo est dégagé.

J'utilise uniquement la météo de la box je ne suis pas encore équipé de station météo. 

J'ai donc cherché et trouvé dans le fichier config la phrase suivante: 

weather               = {"dégagé", "nuageux", "pluvieux", "neigeux", "orageux", "brouillard"},

Du coup j'ai inscrit la phrase suivante: 

GEA.add({{"Profile",1},{"Weather", "dégagé"},{"Time","22:46"},{"Global","Saisons","Printemps"}}, 30, "Demarrage Pompe", {"turnOn", id["POMPE_1"]})

J'ai essayé avec "sun" ou "cleared" au cas où, mais rien ne se passe.

 

Est ce une mauvaise syntaxe de ma part? 

 

Merci d'avance pour l'aide. 

 

Modifié par triossrf

Partager ce message


Lien à poster
Partager sur d’autres sites

×