Steven Posté(e) le 11 juin 2020 Auteur Signaler Partager Posté(e) le 11 juin 2020 Voilà, pour tous les courageux 3 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dragoniacs Posté(e) le 11 juin 2020 Signaler Partager Posté(e) le 11 juin 2020 Merci @Steven SI j'ai bien compris, plus besoin de la déclaration des id={} ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 11 juin 2020 Auteur Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dragoniacs Posté(e) le 11 juin 2020 Signaler Partager Posté(e) le 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 11 juin 2020 Auteur Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dragoniacs Posté(e) le 11 juin 2020 Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ghoosti Posté(e) le 15 juin 2020 Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 15 juin 2020 Signaler Partager Posté(e) le 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
schwinny Posté(e) le 16 juin 2020 Signaler Partager Posté(e) le 16 juin 2020 chouette... merci !!!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 16 juin 2020 Auteur Signaler Partager Posté(e) le 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 ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 16 juin 2020 Auteur Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ghoosti Posté(e) le 16 juin 2020 Signaler Partager Posté(e) le 16 juin 2020 Double merci @Steven Je vais essayer le code et surtout la 6.12 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 16 juin 2020 Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 17 juin 2020 Signaler Partager Posté(e) le 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"} }) Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 17 juin 2020 Signaler Partager Posté(e) le 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é le 17 juin 2020 par 971jmd Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ghoosti Posté(e) le 17 juin 2020 Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 18 juin 2020 Auteur Signaler Partager Posté(e) le 18 juin 2020 @Ghoosti Malheureusement MyDateDiff ne retourne pas la date, il retourne juste vrai ou faux. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 18 juin 2020 Auteur Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ghoosti Posté(e) le 18 juin 2020 Signaler Partager Posté(e) le 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.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 18 juin 2020 Auteur Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ghoosti Posté(e) le 20 juin 2020 Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dragoniacs Posté(e) le 24 juin 2020 Signaler Partager Posté(e) le 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 24 juin 2020 Auteur Signaler Partager Posté(e) le 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ghoosti Posté(e) le 25 juin 2020 Signaler Partager Posté(e) le 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é le 25 juin 2020 par Ghoosti Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 25 juin 2020 Auteur Signaler Partager Posté(e) le 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, ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés