Steven 2 335 Signaler ce message Posté(e) 11 juin 2020 Voilà, pour tous les courageux 3 1 Partager ce message Lien à poster Partager sur d’autres sites
Dragoniacs 436 Signaler ce message Posté(e) 11 juin 2020 Merci @Steven SI j'ai bien compris, plus besoin de la déclaration des id={} ? Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 11 juin 2020 En effet, c'est à toi de voir si tu préfères utiliser le "Nom du module" ou son ID. Il faut être conscient que le lancement de GEA (uniquement le démarrage) sera un tout petit peu plus lent car il va devoir aller chercher les ID par rapport au nom du module. Mais je ne pense pas que tu verras de différence. Perso je préfère lire : {"TurnOn", "Lampe de chevet"} que {"TurnOn", id["LAMPE_CHEVET"]} qui nécessite de connaitre son ID et de le mettre dans le tableau des IDs. Et si j'ai 2 lampes de chevet {"TurnOn", "Lampe de chevet@Chambre du Monstre 1"} Cela permet de lire et d'écrire plus naturellement nos codes. Après, il ne faut pas s'amuser à renommer les modules :-) 1 Partager ce message Lien à poster Partager sur d’autres sites
Dragoniacs 436 Signaler ce message Posté(e) 11 juin 2020 Trop bien ! merci !!! Et pour l'utilisation des variables globales dans les lignes GEA, est-ce que ceci fonctionne (je pourrais tester, certes,...) GEA.add({"true",0,"",{"VariableCache","temp_chaud",25}) GEA.add({{"Label",id["CLIM_CHAMBRE"],"lblPower","OFF"},{"Value+",id["TEMP_CHAMBRE"],"temp_chaud"},30*60,"Il fait chaud dans la chambre, j'active la clim !",.... Ou faut-il passer systématiquement par une variable globale ? Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 11 juin 2020 C'est simple. Soit c'est un nombre et je le prend tel quel, soit c'est autre chose et je vais chercher une variable globale. Je n'ai pas poussé plus loin. Donc pas le choix, c'est une VG :-( 1 Partager ce message Lien à poster Partager sur d’autres sites
Dragoniacs 436 Signaler ce message Posté(e) 11 juin 2020 Cela m'intéresse quand même, même s'il faut que je passe par une variable globale.... je vais méditer ça...Envoyé de mon SM-A530F en utilisant Tapatalk Partager ce message Lien à poster Partager sur d’autres sites
Ghoosti 17 Signaler ce message Posté(e) 15 juin 2020 Bonjour à tous, Y a-t-il moyen de réaliser un calcul sur des dates dans GEA, ceci afin de faire un OFF/ON sur mon boiler. Je m’explique : En fonction des dates dans : VacancesON : 02/07/2020 =>Faire un OFF du boiler à J-1 (01/07/2020) VacancesOFF : 15/07/2020 => Faire un ON du boiler à J-1 (14/07/2020) Merci à vous Partager ce message Lien à poster Partager sur d’autres sites
Did 1 722 Signaler ce message Posté(e) 15 juin 2020 Merci @Steven pour cette mise à jour. Le 11/06/2020 à 14:23, Dragoniacs a dit : SI j'ai bien compris, plus besoin de la déclaration des id={} ? Et moi, je n'ai pas compris. Au début, j'ai essayé en retirant la table local id = { --Cuisine Plan_de_travail = 76, T_Cuisine = 184, Plafond = 74, etc... } mais ça plantait à mon premier Id donc j'ai remis cette table et pas de soucis. Partager ce message Lien à poster Partager sur d’autres sites
schwinny 252 Signaler ce message Posté(e) 16 juin 2020 chouette... merci !!!! Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 16 juin 2020 Le 15/06/2020 à 08:48, Ghoosti a dit : Bonjour à tous, Y a-t-il moyen de réaliser un calcul sur des dates dans GEA, ceci afin de faire un OFF/ON sur mon boiler. Je m’explique : En fonction des dates dans : VacancesON : 02/07/2020 =>Faire un OFF du boiler à J-1 (01/07/2020) VacancesOFF : 15/07/2020 => Faire un ON du boiler à J-1 (14/07/2020) Merci à vous Par défaut, il n'y a rien dans GEA. En revanche, tu peux ajouter ton propre code pour le faire, voici un exemple qui va fonctionner ... function setEvents() -- ... GEA.options.mydatediff = {name = "MyDateDiff", getValue=function(nb_jours, date) local d, m, y = date:match("(%d+).(%d+).(%d+)") local diff = tonumber(os.date("%Y%m%d")) - tonumber(y .. m .. d) return diff == nb_jours end} -- ... GEA.add({"MyDateDiff", -1, "02/07/2020"}, 30, "Test MayDateDiff") -- ou GEA.add({"MyDateDiff", -1, {"Global", "VacancesON"}}, 30, "Test MayDateDiff") end ... Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 16 juin 2020 Il y a 18 heures, Did a dit : Merci @Steven pour cette mise à jour. Et moi, je n'ai pas compris. Au début, j'ai essayé en retirant la table local id = { --Cuisine Plan_de_travail = 76, T_Cuisine = 184, Plafond = 74, etc... } mais ça plantait à mon premier Id donc j'ai remis cette table et pas de soucis. L'idée de la 6.12 est de permettre d'abandonner les ID si vous le souhaiter et d'utiliser le nom des modules. Supprimer juste la table des id ne va faire que de planter le code. Si je reprend ton exemple id["Plafond"] = 74 tu as probablement quelque part dans ton code GEA.add(.........., ...., ...., {"TurnOn", id["Plafond"]} Ce qui revient a écrire GEA.add(.........., ...., ...., {"TurnOn", 74} GEA 6.12 te permet d'utiliser le nom du module au lieu de son ID, donc si le nom de ton module Plafond (74) est "Lampe Plafond", avec la 6.12 tu pourrais écrire ainsi : GEA.add(.........., ...., ...., {"TurnOn", "Lampe Plafond"} GEA.add(.........., ...., ...., {"TurnOn", "Lampe Plafond@Cuisine"} -- si tu as plusieurs "Lampe Plafond" 1 Partager ce message Lien à poster Partager sur d’autres sites
Ghoosti 17 Signaler ce message Posté(e) 16 juin 2020 Double merci @Steven Je vais essayer le code et surtout la 6.12 1 Partager ce message Lien à poster Partager sur d’autres sites
Did 1 722 Signaler ce message Posté(e) 16 juin 2020 Merci @Steven, je crois que j'ai compris, c'est en fait le nom que l'on a donné au module dans la HC2. 1 Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 17 juin 2020 Salut a tout le monde J'ai un problème GEA 6-12 Quand détection alors allume la salle de bain, jusque-là pas de problème la lampe s'allume bien Mai après les 30s elle reste toujours allumée et je le debug suivant : DEBUG] 17:35:56: Aucune entrée pour l'évennement Property[54 - value] supprimer le de l'entête --[[ %% autostart %% properties 507 value 54 value %% globals --]] ---detection sb enfant GEA.add({"Value", 507, 1}, -1 , "", { {"TurnOn", "Salle de bain"} }) GEA.add({"Value", "Salle de bain", 1}, 30, "", { {"TurnOff", "Salle de bain"}, {"Repeat"} }) Partager ce message Lien à poster Partager sur d’autres sites
971jmd 229 Signaler ce message Posté(e) 17 juin 2020 (modifié) Même problème avec : Ne fonctionne pas GEA.add({"SceneActivation", "Telecom vl bar" , 14}, -1, "", {{"OnOff", "Suspension Cuisine" }}) GEA.add({"SceneActivation", "Telecom vl bar" , 24}, -1, "", {{"OnOff", "Lampe du Bar" }}) GEA.add({"SceneActivation", "Telecom vl bar" , 25}, -1, "", {{"OnOff", "Neon Led Piscine" }}) Aucune entrée pour l'évennement Property[526 - sceneActivation], supprimer le de l'entête fonctionne local id = { TELECOM_DU_BAR = 526, LAMPE_CUISINE = 14, APPLIQUE_DU_BAR = 458, LED_PISCINE = 403 } GEA.add({"SceneActivation", id["TELECOM_DU_BAR"] , 14}, -1, "", {{"OnOff", id["LAMPE_CUISINE"]}}) GEA.add({"SceneActivation", id["TELECOM_DU_BAR"] , 24}, -1, "", {{"OnOff", id["APPLIQUE_DU_BAR"]}}) GEA.add({"SceneActivation", id["TELECOM_DU_BAR"] , 25}, -1, "", {{"OnOff", id["LED_PISCINE"]}}) Modifié 17 juin 2020 par 971jmd Partager ce message Lien à poster Partager sur d’autres sites
Ghoosti 17 Signaler ce message Posté(e) 17 juin 2020 Bonjour à tous, J'ai installé ceci: (merci @Steven) GEA.options.mydatediff = {name = "MyDateDiff", getValue=function(nb_jours, date) local d, m, y = date:match("(%d+).(%d+).(%d+)") local diff = tonumber(os.date("%Y%m%d")) - tonumber(y .. m .. d) return diff == nb_jours end} ensuite J'ai créé local DateVacOn = "10/07/2020" GEA.add({"MyDateDiff", -1, DateVacOn}, 30, "VAR Boiler_JJ sur J-1_Off", {"Global", "Boiler_JJ", "J-1_Off"}, "xx")-- OK ça fonctionne la VAR change bien en fonction du J-1 maintenant j'essaye de récupérer la date J-1 contenue dans {"MyDateDiff", -1, DateVacOn} afin de l’insérer dans la variable "DateVac_On_1" j'ai essayé plusieurs choses, mais sans résultat, notamment: GEA.add(true, 30, "x", {"Global", "DateVac_On_1", {"MyDateDiff", -1, DateVacOn}}, "xx") Merci pour votre aide Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 18 juin 2020 @Ghoosti Malheureusement MyDateDiff ne retourne pas la date, il retourne juste vrai ou faux. Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 18 juin 2020 @971jmd Il est possible que tout ne fonctionne pas, cette version est une ébauche plus ou moins fonctionnelle comme annoncé. En revanche, ce code est dangereux à mon avis GEA.add({"Value", "Salle de bain", 1}, 30, "", { {"TurnOff", "Salle de bain"}, {"Repeat"} }) Ce code ne fonctionne QUE si la valeur de ta "Salle de bain" est de 1 alors que la plus part des modules peuvent te retourner une valeur entre 1 et 100, je mettrait à la place {"TurnOn", "Salle de bain"} au lieu de {"Value", "Salle de bain", 1} et le {"Repeat"} ne sert à rien. Pour le "SceneActivation", en effet, cela ne fonctionnera jamais, le code de GEA contient une erreur. Il y a cette ligne dans le code getValue=function(id, value) return tonumber(fibaro:getValue(GEA.findScenarioId(id), "sceneActivation")) == tonumber(value) end qui contient un GEA.findScenarioId(id) ce qui est faux et devrait être GEA.findDeviceId(id) 2 Partager ce message Lien à poster Partager sur d’autres sites
Ghoosti 17 Signaler ce message Posté(e) 18 juin 2020 Bonjour @Steven Ok merci, alors je vais essayer de passer par une scène ou un VD pour faire le calcul entre les 2 dates. Je vais passer les VD du forum en revue.... Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 18 juin 2020 Je t'aide en te donnant un exemple : function getDate(date, nbJour) local d, m, y = date:match("(%d+).(%d+).(%d+)") local mydate = os.time{year=y, month=m, day=(d+nbJour), hour=0}; return os.date("%d/%m/%Y", mydate) end print(getDate("17/06/2020", -2)) -- resultat : 15/06/2020 1 Partager ce message Lien à poster Partager sur d’autres sites
Ghoosti 17 Signaler ce message Posté(e) 20 juin 2020 Bonjour à tous, Merci@Steven, ok super ça fonctionne. Il me reste maintenant à récupérer le valeur du résultat pour l’insérer dans une VG. Bon week-end à vous Partager ce message Lien à poster Partager sur d’autres sites
Dragoniacs 436 Signaler ce message Posté(e) 24 juin 2020 @Steven J'ai un soucis avec les déclenchements instantanés en V6.12 J'avais cette ligne : GEA.add({id["PORTE_ENTREE"],{"(Global)","Jour_Nuit","Nuit"}}, -1, "GEA : Ouverture de la porte, allumage du porche" ,{"turnOn",id["LUM_PORCHE"}) J'ai changé en : GEA.add({"Porte Entree",{"(Global)","Jour_Nuit","Nuit"}}, -1, "GEA : Ouverture de la porte, allumage du porche" ,{"turnOn","Lumière Porche"}) Il me dit que l'option "Porte Entree" n'existe pas Et si je fais : GEA.add({{"Value","Porte Entree",1},{"(Global)","Jour_Nuit","Nuit"}}, -1, "GEA : Ouverture de la porte, allumage du porche" ,{"turnOn","Lumière Porche"}) Il me répond qu'il n'y a pas d'action associée à mon id et que je peux le supprimer de l'entête... Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 24 juin 2020 Je pense que l'usage des noms avec les instantanés ne fonctionne pas. Je vais quand même essayer de voir cela demain. 1 Partager ce message Lien à poster Partager sur d’autres sites
Ghoosti 17 Signaler ce message Posté(e) 25 juin 2020 (modifié) Boujour à tous, J'essaye de remplacer ceci: GEA.add({"Dates", "01/06/2020"}, 30, "", {"VirtualDevice", id["VD_MAISON_MODE"], "5"}, "Maison en Mode Vacances") par ceci: (en récupérant la valeur d'un Label ou une VG) la valeur de DateVacOn_Format est 01/06/2020 GEA.add({"Global", "DateVacOn_Format"}, 30, "", {"VirtualDevice", id["VD_MAISON_MODE"], "5"}, "Maison en Mode Vacances") Modifié 25 juin 2020 par Ghoosti Merci Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 25 juin 2020 Il y a 2 heures, Ghoosti a dit : Boujour à tous, J'essaye de remplacer ceci: GEA.add({"Dates", "01/06/2020"}, 30, "", {"VirtualDevice", id["VD_MAISON_MODE"], "5"}, "Maison en Mode Vacances") par ceci: (en récupérant la valeur d'un Label ou une VG) la valeur de DateVacOn_Format est 01/06/2020 GEA.add({"Global", "DateVacOn_Format"}, 30, "", {"VirtualDevice", id["VD_MAISON_MODE"], "5"}, "Maison en Mode Vacances") Tu devrais essayer ainsi : {"Dates", {"Global", "DateVacOn_Format}}, 30, ... Partager ce message Lien à poster Partager sur d’autres sites