domo Posté(e) le 18 décembre 2024 Signaler Posté(e) le 18 décembre 2024 function config(GEA) -- =================================================== -- Configuration générale -- =================================================== GEA.debug = true -- true pour ajouter des traces dans la fenêtre de log permettant de mieux diagnostiquer les dysfonctionnement des règles utilisateurs GEA.lldebug = true -- true pour ajouter des traces détaillées pour demander de l'aide aux développeurs sur le forum en cas de bug identifié dans GEA GEA.portables = {"iPhone","iPad Pro de chris ",} -- Lister ici les ID ou le nom exact des portables (/api/iosDevices/) à utiliser pour les notification push --GEA.control = false -- false pour désactiver la vérification des paramètres des options --GEA.optimize = false -- false pour désactiver l'optimisation de la mémoire (suppression d'option inutile) --GEA.historymax = 0 -- Profondeur d'historique conservé dans la variable du QuickApp GEA --GEA.language = "en" -- Force une langue spécifique si différente du système end function setEvents() -- ========================================================== -- Règles utilisateur -- ========================================================== -- Définition des ID des modules local id = { METEO = 3, --Default Room PHILIPS_HUE = 20, SUNON_SECOUR = 136, T___SUNON_SECOUR = 137, MUSICCAST_20_G = 116, NETATMO_2_6 = 90, SAISONS = 61, DETECTEUR_GAZ = 214, DAWN_DUSK = 290, SECOURS = 337, BATTERIES = 273, DEVICESID = 322, GEA = 321, HEOS_DENON = 49, LUX_SUNON_SECOUR = 138, CAPTEUR_FENETRE_SECOUR = 344, --Salon BRUIT_SALON = 94, MUSICCAST_BAR_400 = 114, LAMPE_CANAPE = 202, HUE_TV = 23, HUE_SOUS_CANAPE_D = 240, HUE_SOUS_CANAPE_G = 239, MUSICCAST_20_D = 115, TV = 200, RADIATEUR_TV = 89, CO2_SALON = 93, RADIATEUR_CANAPE_ = 87, HUMIDITE__SALON = 92, HUE_TV_G = 25, T___SALON = 91, MUSICCAST_20_G = 116, HUE_TV_D = 26, PRESSION_SALON = 95, FENETRE_TERRASSE = 275, INTER_SALON = 266, HUE_CANAPE_D = 21, USB_CANAPE_ = 300, HUE_CANAPE_G = 28, --Cuisine VMC_E_VIER_ = 361, SUNON_CUISINE = 129, FENETRE_ = 366, LUX = 130, CAVE_EA_VINS = 125, LAMPE_CAVE_EA_VINS = 119, CO2_CUISINE = 110, T___CAVE_EA_VINS = 328, FRIGO_CUISINE = 204, FOUR = 162, LAVE_VAISSELLE_ = 194, FLOD_LAVE_VAISSELLE_ = 196, HUMI_CAVE_EA_VINS = 329, FLOD_EVIER_ = 158, SMOKE_CUISINE = 141, VMC_CUISINE_ = 371, INTER_CUISINE = 258, HUMIDITE_CUISINE = 109, HOTTE_ = 377, PLAYER_CUISINE = 50, RADIATEUR_ = 43, T___CUISINE = 108, --Chambre INTER_CHAMBRE = 255, FENETRE_CHAMBRE = 242, CHARGEUR_TEL_SOSO = 302, SONOS_PLAYER_ = 117, TV_CHAMBRE_ = 292, BLU_RAY = 123, CHARGEUR_TEL_CHRIS = 304, HUMIDITE_CHAMBRE = 99, T___CHAMBRE = 98, RADIATEUR_CHAMBRE = 85, CO2_CHAMBRE = 100, LAMPE_CHEVET_G = 308, LAMPE_CHEVET_D = 306, --Entrée INTER_ENTREE = 263, FREBOX = 190, PORTE_ENTREE = 206, SYNOLOGY_710_ = 170, SWITCH_INTRANET = 182, INTERPHONE = 186, DS_710_ = 152, NVR = 180, SMOKE_BAIE = 176, SMOKE_BAIE_T__ = 178, VENTILATION_BAIE = 172, DIFFUSEUR = 151, SMOKE_ENTREE = 132, SMOKE_T__ = 134, PRESENCE_CHRIS = 57, HC3_DIAGNOSTICS_V2_0 = 53, MEMOIRE = 54, PRESENCE_SOPHIE = 58, SYSTEME = 55, RADIATEUR_ENTREE = 83, CPU = 56, --Jardin RAFALES_JARDIN_ANEMOMETRE = 101, HUE_PERGOLA_2 = 27, VENTILO_MOUSTIQUE = 224, VENT_JARDIN_ANEMOMETRE = 102, HUE_PERGOLA_ = 22, TERRASSE_ = 246, JACUZZI = 60, JACUZZI_ = 24, BORNE_EA_MOUSTIQUE_ = 219, INTER_CO2 = 223, HUMIDITE_EXTERIEUR = 96, PLUIE_5M_JARDIN_PLUVIOMETRES = 106, T___EXTERIEUR = 97, PLUIE_24H_JARDIN_PLUVIOMETRES = 105, --Abri De Jardin FLOD_ABRI_JARDIN = 287, SMOKE = 269, HUMIDITEE_ABRI = 210, LAVE_LINGES = 296, PORTE_ABRI_JARDIN = 234, SECHE_LINGES = 298, INTER_ABRI_JARDIN = 236, T___ABRI = 209, FRIGO_ABRI_JARDIN = 294, --Salle De Bains PLAYER_SALLE_DE_BAIN = 51, MIROIR = 318, INTER_SDB = 252, VMC_SDB_ = 406, FLOD_EVIER = 145, T___SDB = 398, HUMI_SDB = 399, FENETRE_SDB = 396, PORTE_SDB = 393, --Toilette INTER_WC = 249, --Chambre 3D BEAR_BLEU = 279, DESHYDRATEUR = 63, PRUSA_XL = 67, EXTRACTEUR_SOUDURE = 69, SUNOM_ = 47, SUNOM_CHAMBRE_2 = 45, FER_EA_SOUDER = 39, T___DRYBOX = 37, DESHUMIDIFICATEUR = 353, SMOKE_PRUSA_XL = 73, HUM_CHAMBRE_3D = 349, SMOKE_DRYBOX = 35, T___CHAMBRE_3D = 348, MULTI_1 = 316, CHARGEUR_USB = 315, IMAC = 314, HUMIDITE_CHAMBRE_2 = 112, T___CHAMBRE_2 = 111, CO2_CHAMBRE_2 = 113, INTER_CHAMBRE_2 = 227, PORTE_CHAMBRE_2 = 356, BEAR_ORANGE = 283, RADIATEUR_CHAMBRE_2 = 81, T___PRUSA_XL = 75, LAMPE_IMAC = 313, DRYBOX_ = 77, IMPRIMANTE_IMAC = 312, MULTI_6 = 311, FENETRE_CHAMBRE_2 = 359, } -- Exemples de règles utilisateurs GEA.add(true, 0, "Démarrage de GEA le #date# à #time#", nil, "Démarrage GEA") GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "Box redémarrée le #date# à #time#", nil, "Démarrage box") GEA.add({"Info", "updateStableAvailable", true}, 24*60*60, "Une nouvelle version Stable est disponible", nil, "Détection nouvelle version stable") GEA.add({"Info", "updateBetaAvailable", true}, 24*60*60, "Une nouvelle version BETA est disponible", nil, "Détection nouvelle version beta") GEA.add({"Property+", id["METEO"], "Temperature", 35}, 0, "Attention canicule 35°", nil, "Surveillance température") GEA.add({"Property-", id["METEO"], "Temperature", 0}, 3, "Attention Risques De Verglas 0°", nil, "Surveillance température") -- Ajouter ici les autres règles utilisateurs -- CONTROLE DES PILES --GEA.add({"Batteries", 10}, 24*60*60, "Pile faible #value# - #name#", {{"Repeat"}}) --GEA.add (id["INTER_ABRI_JARDIN "], 5, "", {{"Repeat"}, {"Email", "admin", "Lumiere Abri Jardin Allumée depuis #duration#.\nle #date# à #time#.", "Lumiere Abri Jardin Allumée depuis #duration#"}}) -- Ouverture Porte Abri De Jardin GEA.add(234, -1, "Ouverture De La Porte Abri De Jardin le #date# à #time#") -- Porte ouverte et lumière Abri De Jardin Allumée Depuis 5 Minutes GEA.add({236}, 5*60, "Lumière Abri De Jardin Allumée Depuis 5 Minutes", {"iPad Pro de chris ", 0} ) -- Lave Linges Fini GEA.add({"Power-", 296, 2.5}, 5*60, "lave Linges Terminé", {{"TurnOff", 296}}, {"iPad Pro de chris ", 0} ) -- Séche Linges Fini GEA.add({"Power-", 298, 2}, 5*60, "Séche Linges Terminé", {{"TurnOff", 298}}, {"iPad Pro de chris ", 0} ) -- Lave Vaisselles Fini GEA.add({"Power-", 194, 1}, 2*60, "Lave Vaisselles Terminé", {"iPad Pro de chris ", 0} ) -- Lumiére Terrasse Allumé GEA.add({246}, 5*60, "Lumiére Terrasse Allumée Depuis 5 Minutes", {"iPad Pro de chris ", 0} ) -- Vmc Cuisine Auto GEA.add({{"Value+", 109, 52}, {"Value", 366, false}}, 30, "", {{"TurnOn", 371}} ) -- humidité superieur à 52% GEA.add({"Value-", 109, 50}, 30, "", {{"TurnOff", 371}} ) -- humidité inferieur à 50 GEA.add({366}, 30,"", {{"TurnOff", 371}}) -- fenetre ouverte -- Vmc Evier Cuisine Auto GEA.add({{"Value+", 109, 52}, {"Value", 366, false}}, 30, "", {{"TurnOn", 361}} ) -- humidité superieur à 52% GEA.add({"Value-", 109, 50}, 30, "", {{"TurnOff", 361}} ) -- humidité inferieur à 50% GEA.add({366}, 30,"", {{"TurnOff", 361}}) -- fenetre ouverte -- Lumiere Auto Abri De Jardin GEA.add({id["PORTE_ABRI_JARDIN"], {"(Time)", "Sunset-15", "Sunrise+30"}}, -1, "", {{"turnOn",id["INTER_ABRI_JARDIN"]}}) --Ouverture Porte D'Entrée GEA.add(206, -1, "Ouverture De La Porte d'entrée le #date# à #time#") -- Déshumificateur Auto Chambre 2 GEA.add({{"Value+", 112, 40}, {"Value", 356, 359, false}}, 30, "", {{"TurnOn", 353 }}) -- humidité superieur à 40% GEA.add({"Value-", 112, 40}, 30, "", {{"TurnOff", 353 }} ) -- humidité inferieur à 40% GEA.add({356, 359}, 30,"", {{"TurnOff", 353}}) -- fenetre ou porte ouverte -- Déshumidificateur Bac Plein GEA.add({"Power", 353, 1.9}, 5*60, "il faut vider le bac du déshumidificateur le #date# à #time#") -- Vmc Salle De Bains Auto GEA.add({{"Value+", 399, 42}, {"Value", 396, false}}, 30, "", {{"TurnOn", 406}} ) -- humidité superieur à 42% GEA.add({"Value-", 399, 40}, 30, "", {{"TurnOff", 406}} ) -- humidité inferieur à 40% GEA.add({396}, 30,"", {{"TurnOff", 406}}) -- fenetre ouverte -- Controle Ram HC3 GEA.add({"Global-", "RamFree", 35}, 1, "RAM inférieure à35% (#value#%) - Reboot prévu cette nuit à2h00. (#date# à#time#)", {{"Time", "19:00", "19:01"}, {"iPad Pro de chris ", 0, "ALERTE - RAM"}}) end
domo Posté(e) le 18 décembre 2024 Signaler Posté(e) le 18 décembre 2024 j'espère comme ça c'est lisible
Lazer Posté(e) le 19 décembre 2024 Signaler Posté(e) le 19 décembre 2024 Ah mais j'ai compris. "iPad Pro de chris ", littéralement n'est pas une action connue, c'est pour cela qu'il te dit qu'il ne peut pas l'utiliser comme action. Encore une fois pardon d'être lourd et d'insister, surtout qu'on en a déjà discuté la semaine dernière, mais prend en compte les remarques qu'on te fait, et prend le temps de lire la doc de syntaxe. De mémoire je t'avais écris un truc du genre que GEA ne peut pas deviner ce que tu veux faire, en l’occurrence envoyer une notification à ton appareil nommé "iPad Pro de chris ", puisque je suppose que c'est de ça dont il s'agit.
jojo Posté(e) le 19 décembre 2024 Signaler Posté(e) le 19 décembre 2024 pourquoi utilises-tu les # d'id dans tes règles alors que tu as créé un tableau en début de config ?
domo Posté(e) le 19 décembre 2024 Signaler Posté(e) le 19 décembre 2024 ok Lazer je vais corriger , par contre jojo je comprend pas ta question sur #
domo Posté(e) le 19 décembre 2024 Signaler Posté(e) le 19 décembre 2024 quand je le fait comme ça j'ai la même erreur , après le guillemets et les accolades je sais pas combien il en faut et comment il faut les placer conditions power-,296, 2.5 , durée 5*60 , notification lave linges terminé , iPad Pro de chris ? , action turnoff , 296 -- Lave Linges Fini GEA.add({"Power-", 296, 2.5}, 5*60, "lave Linges Terminé", {"iPad Pro de chris ", 0}, {{"TurnOff", 296}} ) [19.12.2024] [20:55:06] [ERROR] [QA_GEA_321]: Ajout auto #9 : [["TurnOff",296]] Règle exclue : Option : [320] ne peut pas être utilisé comme action GEA.add(condition�, durée, notification, action)
Manu31 Posté(e) le 26 mai Signaler Posté(e) le 26 mai Bonjour, Je viens chercher un peu d'aide, car depuis la dernière MAJ de la HC3 en 5.180.17, j'ai une condition GEA qui ne marche pas/plus. Explication : J'ai créé une variable globale nommé "Temp_Piscine" que je set à 3 degré tous les matin à 4h45 = ça OK: -- Si la variable est différente de nul, on la remet à 3°C chaques jours GEA.add({{"Value!", id["Temp_Piscine"], "40.0"}, {"Time", "04:45"}}, 1*60, "", {"Global", "Temp_Piscine", "3.0"}) Et je veux que le GEA stock toutes les 5min la "vrai" température de l'eau de la piscine (id 191 nommé Temp_EauPiscine) = KO et je ne sais pas pourquoi -- Stocker la température de la piscine (toute les minutes) dans la variable si celle-ci est supérieur GEA.add({{"Value+", id["Temp_EauPiscine"]}, {"Global", "Temp_Piscine"}}, 5*60, "La température de la piscine à augmenté : #value#°C", {"Global", "Temp_Piscine", {"Value", id["Temp_EauPiscine"]}}) Dans le debug je vois ca (avec le "Validation" en rouge) [26.05.2025] [08:38:12] [DEBUG] [QA_GEA_286]: @0s [Validation] #36 : ["Value+",[191]] ["Global",["Temp_Piscine"]] => ["Global",["Temp_Piscine",["Value",191]]] Si jamais vous avez des pistes sur mon erreur, je suis preneur. En vous remerciant
jojo Posté(e) le 26 mai Signaler Posté(e) le 26 mai Il y a 2 heures, Manu31 a dit : -- Si la variable est différente de nul, on la remet à 3°C chaques jours GEA.add({{"Value!", id["Temp_Piscine"], "40.0"}, {"Time", "04:45"}}, 1*60, "", {"Global", "Temp_Piscine", "3.0"}) ta condition est si <> 40.0, pas si <> de nul Il y a 2 heures, Manu31 a dit : {"Global", "Temp_Piscine", {"Value", id["Temp_EauPiscine"]}} tu dois rajout {"Repeat"} dans tes actions, car ta condition ne change plus dès qu'elle est respectée la première fois. Tu devrais recevoir une notif à 4h20, puis plus rien. (ce n'est donc pas lié au firmware de la box.
Lazer Posté(e) le 26 mai Signaler Posté(e) le 26 mai Moi ce qui me choque dans tes règles, c'est que tu compares des nombres (la value de id["Temp_Piscine"] est numérique, tu peux vérifier ça dans son JSON avec /api/devices/ID) avec des chaines de caractères "40.0" est une string au sens LUA. C'est certainement une écriture que tu as hérité depuis la HC2, mais dès le passage sur HC3, Fibaro a enfin modifié tous les types des champs value des différents modules pour qu'ils soient plus cohérents (number, boolean, etc). On en avait plusieurs fois parlé à l'époque lors des premières migrations de GEA HC2 vers HC3. Je m'étonne que tu aies encore ce type d'écriture et que ça fonctionne depuis tout ce temps !
Manu31 Posté(e) le 26 mai Signaler Posté(e) le 26 mai Bonjour, @jojo : effectivement, la description était fausse, bien vue. J'ai bien rajouté le {Repeat}. En attente de voir si ca marche. @Lazer : oui chatgpt me dit ca effectivement. Et c'est même toi qui m'avait aidé et donner la ligne il y a 2 ou 3 ans pour mon installation sur ma HC3 Du coup une idée de la syntaxe qui marcheraiT (je pense a caster un string en int : je ne sais pas si ca se fait) ?
Manu31 Posté(e) le 26 mai Signaler Posté(e) le 26 mai Re, @jojo sans les " sur la variable globale ? ou ailleur ? en te remerciant
jojo Posté(e) le 26 mai Signaler Posté(e) le 26 mai dan ton test Value+ sur la valeur du module (cfr ce @Lazer a expliqué)
Lazer Posté(e) le 26 mai Signaler Posté(e) le 26 mai Il y a 3 heures, Manu31 a dit : oui chatgpt me dit ca effectivement. Et c'est même toi qui m'avait aidé et donner la ligne il y a 2 ou 3 ans pour mon installation sur ma HC3 Du coup une idée de la syntaxe qui marcheraiT Du coup continue sur ta lancée et demande à ChatGPT, je suis curieux de voir la réponse (Jojo t'as répondu entre temps)
Manu31 Posté(e) le 26 mai Signaler Posté(e) le 26 mai Il y a 3 heures, jojo a dit : juste la même règle, mais sans les " Malheureusement il ne sait pas tout d'ou mes questions ici. Jojo m'a répondu mais ca n'a pas l'air de marcher.... Il ne remplace pas la valeur de la température de l'eau dans la variable globale Ps : j'ai tenté ça := GEA.add({{"Value+", id["Temp_EauPiscine"]}, {"Global", Temp_Piscine}}, 5*60, "La température de la piscine a augmenté : #value#°C", {{"Repeat"}, {"Global", "Temp_Piscine", {"Value", id["Temp_EauPiscine"]}}})
Lazer Posté(e) le 26 mai Signaler Posté(e) le 26 mai Le 1er souci, c'est que ChatGPT sait plein de trucs mais n'y comprends rien, résultat ce qu'il répond est à coté de la plaque dans la majorité des cas. Le pire dans l'histoire, c'est que parfois il tombe par hasard sur la bonne réponse, mais avec un argumentaire faux (souvenez vous quand vous étiez étudiants quand les profs notaient le raisonnement et la démonstration, même si le résultat du calcul était faux, bah là c'est l'inverse ). Quand les gens auront compris ça, ils arrêteront de s'abrutir avec cet outil ce jouet et se remettront à utiliser leur cerveau, à l'ancienne... ouais je sais c'est démodé... mais quelque chose me dit que ça n'arrivera pas. Tant pis. Le 2nd souci, c'est que les Variables Globales ne peuvent pas contenir autre chose qu'une chaine de caractères (string). Dans GEA le code "essaye" de gérer les VG qui contiennent des valeurs numériques, mais je ne suis pas sûr que ça soit fiable à 100%. Il faudrait déboguer, mais là ça va être difficile car je peux difficilement reproduire chez moi. Mais est-ce que tu as absolument besoin de stocker la valeur dans une VG ? Car si tu n'as pas besoin de la persistence, tu peux contourner le problème en stockant la valeur dans une VariableCache (qui pour rappel est perdu en cas de redémarrage de GEA), qui présente l'avantage de pouvoir stocker n'importe quel type de valeur (boolean, number, string, etc). Donc en travaillant avec des numbers dans toutes tes règles, depuis la récupération de la value de ton module, en passant par le stockage dans la VariableCache, puis la comparaison, ça devrait au moins éliminer le problème des comparaisons entre types de variables différents.
Manu31 Posté(e) le 26 mai Signaler Posté(e) le 26 mai Et oui ca aide bien mais ca dépend du prompt que l'on fait. Ta solution de VariableCache serait top. Une idée/tuto de qqu qui l'a fait que je reprenne l'exemple ? En te remerciant
Lazer Posté(e) le 26 mai Signaler Posté(e) le 26 mai Oui voilà, ça "aide", tout au plus. Le problème c'est que ça induis plus souvent en erreur que ça n'aide, alors perso j'ai du mal à la voir l'aide... Après je m'amuse bien pour générer des images à la con, c'est totalement inutile et donc amusant. Reprend les bases : la doc de syntaxe, tu as la syntaxe (forcément...) et quelques exemples basique d'utilisation VariableCache. Sinon, à l'ancienne, avec Google (ou ton autre moteur de recherche préféré), tu as des tonnes d'exemple d'utilisation sur le forum (enfin, sur ce topic essentiellement) Mais bon, déjà je peux te dire que ça s'utilise comme Global.
Manu31 Posté(e) le 26 mai Signaler Posté(e) le 26 mai (modifié) il y a 52 minutes, Lazer a dit : Oui voilà, ça "aide", tout au plus. Le problème c'est que ça induis plus souvent en erreur que ça n'aide, alors perso j'ai du mal à la voir l'aide... Après je m'amuse bien pour générer des images à la con, c'est totalement inutile et donc amusant. Reprend les bases : la doc de syntaxe, tu as la syntaxe (forcément...) et quelques exemples basique d'utilisation VariableCache. Sinon, à l'ancienne, avec Google (ou ton autre moteur de recherche préféré), tu as des tonnes d'exemple d'utilisation sur le forum (enfin, sur ce topic essentiellement) Mais bon, déjà je peux te dire que ça s'utilise comme Global. C'est bon j'ai réussi a ce que le GEA le prenne en compte. Me reste a afficher la valeur de la VariableCache dans le debug pour controler que tout se fait bien Question bête mais il n'y a pas de "echo/printf" dans GEA ? Autre question: je suppose qu'on peut l'utiliser comme n'importe quel valeur value+ et value- comme ça : GEA.add({{"Time", "12:00"}, {"VariableCache+", "TempPiscineCache", "12.0"}, {"VariableCache-", "TempPiscineCache", "14.0"}}, 1*60, "Pompe de la piscine en marche pour 4H", {{"TurnOn", id["PompePiscine"], 4*60*60}}) Modifié le 26 mai par Manu31 ajout d'une question
Lazer Posté(e) le 26 mai Signaler Posté(e) le 26 mai Super. Si, il y a une option cachée et non documentée ( ), c'est "Test", qui permet d'afficher ce qu'on veut dans le log de GEA. A utiliser dans les actions, donc par exemple : GEA.add({mes conditions}, durée, "notification", {{"Test", "La valeur de la première condition est #value#"})}) Oui tu peux utiliser value+ et value- pour faire toutes les comparisons numériques que tu veux, mais attention encore une fois dans ton exemple, tu as remis des guillemets autour de tes valeurs 12 et 14, ce qui en fait des string, et non des numbers.... par ailleurs l'ajout .0 est inutile. Note que ce sont des comparaisons "strictement" supérieur ou inférieur. Donc la règle se déclenchera uniquement si la température fait au minimum 12.1 degré et au maximum 13.9°C
jojo Posté(e) le 27 mai Signaler Posté(e) le 27 mai Il y a 19 heures, Manu31 a dit : Me reste a afficher la valeur de la VariableCache dans le debug pour controler que tout se fait bien tu peux d'mander qu'il t'envoie un mail à chaque changement de la Variable Cache
Messages recommandés