Lazer Posté(e) le 9 juillet 2022 Signaler Posté(e) le 9 juillet 2022 Quand tu avais fait tes tests précédents, est-ce que tu lançais GEA suffisamment de temps avant ? Au moins 1 cycle, c'est à dire que GEA devait être démarré au minimum depuis la minute précédent l'heure programmée.
jojo Posté(e) le 10 juillet 2022 Signaler Posté(e) le 10 juillet 2022 oui, et je crois que j'avais mis le log du cycle précédent, que c'était normal qu'il ne fasse rien ... (idem pour le cycle suivant). En y réfléchissant, je me demandais si ce n'était pas le jour qui du coup posait problème (mais en fait non, car j'avais sélectionné tous les jours de la semaine). (mon message n'est pas parti ... donc je le complète ...) Fort de cette expérience positive, j'ai réactivé mon scénario basé sur GEA Alarme, et rien ne s'est passé
Yannick Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 (modifié) remoi bonjour !!! J'essaie de faire un truc : allumer mon sèche-serviette uniquement pendant mes heures creuses j'ai donc créé ça GEA.add({{"Time", "14:35", "16h25"}, {"Time", "21:35", "23:25"}, {"Time", "02:35", "06:25"}}, 30, "Démarrage Sèche-Serviettes depuis 30s", {"turnOn", id[Seche_serviette]}) mais comment je lui dis que en dehors de ces horaires il est éteint.. j'ai essayé plein de chose mais ça marche pas je teste, je teste..... Modifié le 12 juillet 2022 par Yannick
mprinfo Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Merci, maintenant je prépare ma migration : la semaine charnière sera celle du 15 août@Lazer tu fais quoi le WE du 15 aoûtje t'invite à manger une bonne côte de bœuf en BelgiqueEnvoyé de mon BLA-L29 en utilisant Tapatalk
Lazer Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Il y a 1 heure, Yannick a dit : remoi bonjour !!! J'essaie de faire un truc : allumer mon sèche-serviette uniquement pendant mes heures creuses j'ai donc créé ça GEA.add({{"Time", "14:35", "16h25"}, {"Time", "21:35", "23:25"}, {"Time", "02:35", "06:25"}}, 30, "Démarrage Sèche-Serviettes depuis 30s", {"turnOn", id[Seche_serviette]}) mais comment je lui dis que en dehors de ces horaires il est éteint.. j'ai essayé plein de chose mais ça marche pas je teste, je teste..... ça ne peut pas marcher, plusieurs conditions horaires différentes dans la même règle, simple logique. Il te faut décomposer tes 3 plages horaires en 3 règles distinctes. Pour arrêter le chauffage, même principe, tu fais 3 règles avec une condition Time à l'heure d'arrêt voulue. @mprinfo je ne suis pas fan des cotes de bœufs, trop gras, je préfère de bonnes brochettes, ou un bon filet Monsieur a ses exigences, mais chut, faut pas le dire trop fort, parait qu'il va falloir arrêter de manger de la viande et passer aux insectes grillés 1
Yannick Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 (modifié) Ah bon ? zut pourtant dans la doc vous donnez bien l'exemple de conditions multiples avec des plages horaires multiples pour certains jours.... -- Je souhaite vérifier l'arrivée des enfants après l'école à midi et le soir. Comment faire au plus simple ? -- -- Vous pouvez vérifier l'ouverture de la porte à des plages horaires et jours précis GEA.add({17, {"Days","Monday,Tuesday,Thursday,Friday"}, {"Time","11:30","13:30"}, {"Time","16:30","18:30"}}, -1, "Porte ouvertes le #date# à #time#") je viens de tester ça... ça à l'air de marcher GEA.add({{"Time", "14:35", "16h25"}, {"Time", "21:35", "23:25"}, {"Time", "02:35", "06:25"}}, 0, "Démarrage Sèche-Serviettes", {"turnOn", 379}) GEA.add({{"Time", "16:26", "21h34"}, {"Time", "23:26", "02:34"}, {"Time", "06:26", "14:34"}}, 0, "Sèche-Serviettes éteins", {"turnOff", 379}) Modifié le 12 juillet 2022 par Yannick
Yannick Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Le 26/10/2021 à 18:52, Lazer a dit : J'ai déplacé ton message au bon endroit, je suis sympa car je ne l'ai pas supprimé sans préavis comme expliqué sur l'autre topic Mais euh, désolé là je n'ai aucune motivation pour me lancer dans la lecture de ta longue scène.... GEA est un moteur d'exécution de règles. 1 ligne = 1 règle. Chaque règle comprend 1 ou plusieurs conditions, et 1 ou plusieurs actions. L'ensemble des règles sont parcourues, testée, et exécutées le cas échant, toutes les 30 secondes. Ce n'est pas du tout la même approche qu'une grosse scène complexe qui fait papa maman à boire et à manger. Cela dit GEA fait aussi papa maman à boire et à manger mais avec une approche totalement différente. Le mieux à faire est de te lancer avec des règles simples, que tu étofferas au fur et à mesure, et tu trouveras facilement de l'aide pour te dépanner au cas par cas. Après tout n'est pas faisable avec GEA (ou alors ça serait trop complexe et pas adapté à mon avis). Exemple concret, j'ai une scène réveil douceur qui effectue plusieurs actions pendant plusieurs minutes. Ben là déjà rien qu'en disant ça, on comprend que GEA n'est pas adapté, il vaut mieux se faire une petite scène à coté (que GEA peut déclencher) Idem, j'ai une scène alarme, qui est autonome. Bon cela dit, sauf si quelqu'un est motivé pour lire ta scène en entier... bon courage J'ai trouvé sur le Forum Officiel FIBARO un contributeur @Sjekke qui m'a partagé son code de scènes qui fonctionne... le voici : DECLARATIONS { conditions = { { id = 758, isTrigger = true, operator = "==", property = "value", type = "device", value = true } }, operator = "any" } ACTIONS -- This scene turns on one or more lights: -- when Lux level is below a certain level (see DECLARATIONS) and -- shows the Lux level of one ore more Lux sensors and -- turns off the lights after a certain time (maxTime), -- unless there is motion from one or more Motion sensors -- Please enter the right ID's (if more than one, seperate by ",") and the prefered maxTime for the lights to stay on local light = {752,754,756} -- ID's of the lights to turn on local led = {265,272} local all = {752,754,756,265,272} local motion = {758} -- ID's of the Motion sensors to check if they are breached local lux = {760} -- ID's of the Lux sensors to (only) show the lux level local maxTime = 1*180 -- Maximum time the sensor should be safe before turning off (n*60 where n is minutes) local sleepTime = 5 -- Time in seconds between each check of the Motion sensor (default = 5) local debug_TAG = "Lumières entrée" -- Tag for the debug messages -- Below here no changes are necessary for i in pairs(light) do -- Turn on the lights fibaro.debug(debug_TAG,"Turning on (ID " ..light[i] ..") " ..fibaro.getName(light[i]) .." for " ..maxTime .." seconds") fibaro.call(light[i],"turnOn") end for i in pairs(led) do -- Turn on the LED fibaro.debug(debug_TAG,"Turning on (ID " ..led[i] ..") " ..fibaro.getName(led[i]) .." for " ..maxTime .." seconds") fibaro.call(led[i], "turnOn") end for i in pairs(lux) do -- Show the lux level of the Lux sensors fibaro.debug(debug_TAG,"Current Lux level " ..lux[i] .." " ..fibaro.getName(lux[i]) ..": " ..fibaro.getValue(lux[i],"value")) end local safeTime = 0 while safeTime < maxTime do -- Loop until maxTime is reached fibaro.sleep(sleepTime*1000) safeTime=safeTime+sleepTime fibaro.debug(debug_TAG,"Counting up safeTime " ..safeTime .." to maxTime " ..maxTime) for i in pairs(motion) do if fibaro.getValue(motion[i],"value") then -- Check if Motion sensors are breached fibaro.debug(debug_TAG,"Reset by Motion sensor " ..motion[i] .." " ..fibaro.getName(motion[i])) safeTime = 0 -- Reset safeTime to zero end end end for i in pairs(light) do -- Counted down to maxTime, turn off the lights fibaro.debug(debug_TAG, "Turning off " ..all[i] .." " ..fibaro.getName(all[i])) fibaro.call(light[i],"turnOff") end for i in pairs(led) do -- Counted down to maxTime, turn off the lights fibaro.debug(debug_TAG, "Turning off " ..led[i] .." " ..fibaro.getName(led[i])) fibaro.call(led[i], "turnOff") end maintenant... j'ai plus qu'à traduire ça en GEA.... enfin essayer !!!
Lazer Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Il y a 2 heures, Yannick a dit : Ah bon ? zut pourtant dans la doc vous donnez bien l'exemple de conditions multiples avec des plages horaires multiples pour certains jours.... -- Je souhaite vérifier l'arrivée des enfants après l'école à midi et le soir. Comment faire au plus simple ? -- -- Vous pouvez vérifier l'ouverture de la porte à des plages horaires et jours précis GEA.add({17, {"Days","Monday,Tuesday,Thursday,Friday"}, {"Time","11:30","13:30"}, {"Time","16:30","18:30"}}, -1, "Porte ouvertes le #date# à #time#") je viens de tester ça... ça à l'air de marcher GEA.add({{"Time", "14:35", "16h25"}, {"Time", "21:35", "23:25"}, {"Time", "02:35", "06:25"}}, 0, "Démarrage Sèche-Serviettes", {"turnOn", 379}) GEA.add({{"Time", "16:26", "21h34"}, {"Time", "23:26", "02:34"}, {"Time", "06:26", "14:34"}}, 0, "Sèche-Serviettes éteins", {"turnOff", 379}) Alors là j'ai appris un truc... mais je ne comprends pas comment ça peut fonctionner 1 1
mprinfo Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Il y a 7 heures, Lazer a dit : @mprinfo je ne suis pas fan des cotes de bœufs, trop gras, je préfère de bonnes brochettes, ou un bon filet Monsieur a ses exigences, mais chut, faut pas le dire trop fort, parait qu'il va falloir arrêter de manger de la viande et passer aux insectes grillés Ca peut ce négocier facilement je pense je vais chez vincent a partir du 14 aout pour lui migrer ces modules et le pire c'est qu'il en rajoute maintenant il veut que je lui tire des cables réseaux
Yannick Posté(e) le 13 juillet 2022 Signaler Posté(e) le 13 juillet 2022 Il y a 13 heures, Lazer a dit : Alors là j'ai appris un truc... mais je ne comprends pas comment ça peut fonctionner Petit retour d'expérience de ce que j'ai fait hier.... et ben ça marche nickel... déclenchement aux bon moments tout est nickel. Dommage que ça ne puisse pas tenir sur une ligne avec une commande ELSE ou un truc du style. Bon après, je ne sais pas si c'est plus économique que de laisser l'inertie faire son travail et réguler les temps de chauffe. En été par les chaleur qu'on a en ce moment le métal n'est pas trop froid donc la mise en température n'est pas trop longue mais en hiver, je suis pas sûr que ce soit rentable... il faudrait que je branche ça sur un WP pour calculer a conso moyenne sur 2 ou 3 jours et faire un comparatif avec cette variante.
jojo Posté(e) le 14 juillet 2022 Signaler Posté(e) le 14 juillet 2022 Le 12/07/2022 à 12:36, mprinfo a dit : @Lazer tu fais quoi le WE du 15 août je t'invite à manger une bonne côte de bœuf en Belgique @Lazer, tu es EVIDEMMENT le bienvenu, et s'il fait beau, plouf dans la piscine (j'essaie péniblement de la maintenir < 30 °C) 1
jojo Posté(e) le 14 juillet 2022 Signaler Posté(e) le 14 juillet 2022 Le 12/07/2022 à 12:47, Lazer a dit : @mprinfo je ne suis pas fan des cotes de bœufs, trop gras, je préfère de bonnes brochettes, ou un bon filet Monsieur a ses exigences, mais chut, faut pas le dire trop fort, parait qu'il va falloir arrêter de manger de la viande et passer aux insectes grillés tu n'as qu' passer commande, mais je sais faire des bonnes côtes à l'os saignantes et chaudes (vous n'aurez plus qu'à couper) 1
jojo Posté(e) le 14 juillet 2022 Signaler Posté(e) le 14 juillet 2022 Le 12/07/2022 à 11:02, Yannick a dit : GEA.add({{"Time", "14:35", "16h25"}, {"Time", "21:35", "23:25"}, {"Time", "02:35", "06:25"}}, 30, "Démarrage Sèche-Serviettes depuis 30s", {"turnOn", id[Seche_serviette]}) règle d'or : toutes les conditions dans la même ligne sont des ET. si on veut faire des OU, il faut faire différentes lignes. Ce que tu as écrit : Si l'heure actuelle es comprise entre 14:35 et 16:25 (! syntaxe !) ET quelle est comprise entre 21:35 et 23:25 ET qu'elle est comprise entre 02:35 et 06:25 (c'est une condition impossible à remplir : à 14:35 la première condition serait remplie (si bonne syntaxe) mais donc pas les seconde et troisième) pendant 30 sec Alors allume le sèche serviettes, mais à aucun moment tu lui as dit de s'arrêter. Voici ce qui fonctionnera : GEA.add({"Time", "14:35", "14:40"}, 0, "Démarrage Sèche-Serviettes", {"TurnOn", id[Seche_serviette]}) GEA.add({"Time", "21:35", "21:40"}, 0, "Démarrage Sèche-Serviettes", {"TurnOn", id[Seche_serviette]}) GEA.add({"Time", "02:35", "02:40"}, 0, "Démarrage Sèche-Serviettes", {"TurnOn", id[Seche_serviette]}) GEA.add({"Time", "16:25", "16:30"}, 0, "Arrêt Sèche-Serviettes", {"TurnOff", id[Seche_serviette]}) GEA.add({"Time", "23:25", "23:30"}, 0, "Arrêt Sèche-Serviettes", {"TurnOff", id[Seche_serviette]}) GEA.add({"Time", "06:25", "06:30"}, 0, "Arrêt Sèche-Serviettes", {"TurnOff", id[Seche_serviette]}) j'ai mis la durée à 0s, ce qui revient à dire que l'action s'exécutera au prochain cycle GEA (max 30 sec) 1
Lazer Posté(e) le 14 juillet 2022 Signaler Posté(e) le 14 juillet 2022 Merci @jojo c'est bien comme cela que je l'aurais écrit (en pratique c'est comme cela que sont écrites mes règles de gestion du chauffage depuis des années) Mais @Yannick nous dit que ça fonctionne avec toutes les tranches horaires dans la même règle.... je n'arrive toujours pas à comprendre pourquoi, ça ressemble à un bug... car comme tu l'explique bien, GEA fait un "ET" logique entre toutes les conditions, et par principe l'heure courante ne peut pas être simultanément dans 2 tranches horaires distinctes. Ou alors GEA sait faire de l'intrication quantique, balaise le code de @Steven
jojo Posté(e) le 14 juillet 2022 Signaler Posté(e) le 14 juillet 2022 c'est vraiment étrange cette histoire de "Time". Je préfère garder la logique du "ET" pour toutes les conditions, ce qui en multipliant les lignes GEA, rend le code plus lisible... 1
flacon030 Posté(e) le 16 juillet 2022 Signaler Posté(e) le 16 juillet 2022 (modifié) Bonjour cette solution est la bonne pour une ouverture a une valeur donnée pour mon roller? je voudrais qu'il s'ouvre a 93% GEA.add(true, 30, "ouverture volets dressing 17H30", {{"Time", "17:30", "17:31"}, {"Open", id["ROLLER_DRESSING"], 93}}) Modifié le 16 juillet 2022 par flacon030
Lazer Posté(e) le 17 juillet 2022 Signaler Posté(e) le 17 juillet 2022 La condition Time, il faut la mettre dans les conditions (à la place du true), et non pas dans les actions.
jojo Posté(e) le 17 juillet 2022 Signaler Posté(e) le 17 juillet 2022 @Lazer, j'en reviens à mon GEA alarme étrange ... J'ai laissé un GEAM Alarme (programmé tous nles jours à 15:02, avec l'action d'envoyer un mail ... Je l'avais presque oublié. Et donc hier (SAMEDI) à 15:02 j'ai reçu un mail (que je n'ai vu qu'à 20h => trop tard pour les logs GEA) Mais je me suis souvenu que samedi dernier j'avais également reçu un mail à 15:02. Du coup hier, j'ai modifier l'alarme à 20:02 (oui, oui, ....) et j'ai reçu également un mail. c'est comme si ça na fonctionnait que le samedi. => SUGGESTION : le QA que tu aurais publié ne serait-il pas une version de Test de GEA Alarme, ou pour des raisons de test, tu aurais mis en dur que l'alarme était un samedi, quelque soit le jour sélectionné ? (ce qui pourrait expliquer que chez toi pas de soucis.) ???
Lazer Posté(e) le 17 juillet 2022 Signaler Posté(e) le 17 juillet 2022 Tiens, est-ce que tu peux ajouter ce bout de code dans ta function config(GEA) Cela va remplacer la fonction Alarm originale et ajouter plein de traces. Et tu relances avec GEA.debug = true et GEA.lldebug = true GEA.options.alarm = {name = "Alarm", optimize = true, control = function(id) return GEA.options.number.control(id) end, getValue = function(id, alarm_id) tools:print("pink", "alarm.getValue(", id, ",", alarm_id, ")") local alarms = {} local Nombre_Alarme = tonumber(GEA:getQuickAppVariableValue(id, "Nombre_Alarme")) or 0 tools:print("pink", "Nombre_Alarme =", Nombre_Alarme) if type(alarm_id) == "number" then if alarm_id > 0 and alarm_id <= Nombre_Alarme then alarms[1] = alarm_id else tools:error(string.format(GEA.trad.alarm_unknown, alarm_id)) return false end else for i = 1, Nombre_Alarme do alarms[#alarms+1] = i end end tools:print("pink", "alarms =", tools:tostring(alarms, true, true)) for _, alarm in ipairs(alarms) do tools:print("pink", "alarm :", alarm) if os.date("%H:%M", GEA.runAt) == GEA:getQuickAppVariableValue(id, "_Heure" .. tostring(alarm)) then local days = GEA:getQuickAppVariableValue(id, "_Jours" .. tostring(alarm)) days = days:lower() tools:print("pink", "days :", days) selected = tools:split(days, " ") tools:print("pink", "selected :", tools:tostring(selected, true, true)) for i = 1, #selected do tools:print("pink", "i :", i, "=>", selected[i]) tools:print("pink", "week_short :", tools:tostring(GEA.trad.week_short, true, true)) for j = 1, #GEA.trad.week_short do tools:print("pink", "j :", j, "=>", GEA.trad.week_short[j], "=>", GEA.traduction.en.week[j]:lower(), "<?>", os.date("%A"):lower()) if GEA.trad.week_short[j] == selected[i] then if GEA.traduction.en.week[j]:lower() == os.date("%A"):lower() then return true end end end end end end return false end, isBoolean = true, } GEA Alarm Debug Jojo.lua 2
jojo Posté(e) le 17 juillet 2022 Signaler Posté(e) le 17 juillet 2022 Merci BEACOUP, voici donc les logs [17.07.2022] [21:49:27] [DEBUG] [QA_GEA_167]: ... check running #8 @240s... [17.07.2022] [21:49:27] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() copy.name="Alarm" id=256 property=256 value=256 value2=256 value3=256 value4=256 [17.07.2022] [21:49:27] [DEBUG] [QA_GEA_167]: alarm.getValue( 256 , nil ) [17.07.2022] [21:49:28] [DEBUG] [QA_GEA_167]: Nombre_Alarme = 1 [17.07.2022] [21:49:28] [DEBUG] [QA_GEA_167]: alarms = [1] [17.07.2022] [21:49:28] [DEBUG] [QA_GEA_167]: alarm : 1 [17.07.2022] [21:49:28] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : false, false [17.07.2022] [21:49:28] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() result = false [17.07.2022] [21:49:28] [DEBUG] [QA_GEA_167]: GEA:check() result = false, false [17.07.2022] [21:49:28] [DEBUG] [QA_GEA_167]: GEA:check() ready = false [17.07.2022] [21:49:28] [DEBUG] [QA_GEA_167]: @240s [Validation] #1 : ["Alarm",[256]] => ["Email",["admin","GEA Alarme le #date# à #time#.","Test GEA Alarme"]] *repeat* [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: ... check running #9 @270s... [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() copy.name="Alarm" id=256 property=256 value=256 value2=256 value3=256 value4=256 [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: alarm.getValue( 256 , nil ) [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: Nombre_Alarme = 1 [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: alarms = [1] [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: alarm : 1 [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : false, false [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() result = false [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: GEA:check() result = false, false [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: GEA:check() ready = false [17.07.2022] [21:49:57] [DEBUG] [QA_GEA_167]: @270s [Validation] #1 : ["Alarm",[256]] => ["Email",["admin","GEA Alarme le #date# à #time#.","Test GEA Alarme"]] *repeat* [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: GEA run since 5m - Memory used: 8335.03 KB - CPU consumed: 1481.39 ms ( 0.123 % ) [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: ... check running #10 @300s... [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() copy.name="Alarm" id=256 property=256 value=256 value2=256 value3=256 value4=256 [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: alarm.getValue( 256 , nil ) [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: Nombre_Alarme = 1 [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: alarms = [1] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: alarm : 1 [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: days : lu ma me je ve sa di [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: selected : ["lu","ma","me","je","ve","sa","di"] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: i : 1 => lu [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: i : 2 => ma [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: i : 3 => me [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: i : 4 => je [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: i : 5 => ve [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: i : 6 => sa [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: i : 7 => di [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : false, false [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() result = false [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: GEA:check() result = false, false [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: GEA:check() ready = false [17.07.2022] [21:50:27] [DEBUG] [QA_GEA_167]: @300s [Validation] #1 : ["Alarm",[256]] => ["Email",["admin","GEA Alarme le #date# à #time#.","Test GEA Alarme"]] *repeat* [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: ... check running #11 @330s... [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() copy.name="Alarm" id=256 property=256 value=256 value2=256 value3=256 value4=256 [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: alarm.getValue( 256 , nil ) [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: Nombre_Alarme = 1 [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: alarms = [1] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: alarm : 1 [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: days : lu ma me je ve sa di [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: selected : ["lu","ma","me","je","ve","sa","di"] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: i : 1 => lu [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: i : 2 => ma [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: i : 3 => me [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: i : 4 => je [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: i : 5 => ve [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: i : 6 => sa [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: i : 7 => di [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: week_short : ["mo","tu","we","th","fr","sa","su"] [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 1 => mo => monday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 2 => tu => tuesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 3 => we => wednesday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 4 => th => thursday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 5 => fr => friday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 6 => sa => saturday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: j : 7 => su => sunday sunday [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : false, false [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() result = false [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: GEA:check() result = false, false [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: GEA:check() ready = false [17.07.2022] [21:50:57] [DEBUG] [QA_GEA_167]: @330s [Validation] #1 : ["Alarm",[256]] => ["Email",["admin","GEA Alarme le #date# à #time#.","Test GEA Alarme"]] *repeat* [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: ... check running #12 @360s... [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() copy.name="Alarm" id=256 property=256 value=256 value2=256 value3=256 value4=256 [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: alarm.getValue( 256 , nil ) [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: Nombre_Alarme = 1 [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: alarms = [1] [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: alarm : 1 [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : false, false [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: GEA:encapsule() copy.check() result = false [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: GEA:check() result = false, false [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: GEA:check() ready = false [17.07.2022] [21:51:27] [DEBUG] [QA_GEA_167]: @360s [Validation] #1 : ["Alarm",[256]] => ["Email",["admin","GEA Alarme le #date# à #time#.","Test GEA Alarme"]] *repeat* je t'ai mis le log d'un peut avant 21:50 et d'un peu après ... Mille mercis en tout cas pour l'aide
Lazer Posté(e) le 18 juillet 2022 Signaler Posté(e) le 18 juillet 2022 Euh... ben y'a un souci, ton GEA est en anglais ! Donc le seul jour qui match c'est le samedi, parce que "sa"medi = "sa"turday, Logique, il n'y a pas de bug en fait. Mais du coup pourquoi ton GEA est en anglais ? Tu as forcé la langue dans la config ? Sinon il a pris la langue par défaut de ta box, qui doit être en anglais. Donc soit tu mets la box en français, soit tu forces GEA en français dans config() : GEA.language = "fr" Il me semble que dans tes essais tu avais joué avec les options de langage de la box, c'est surement là que tu es passé et resté en anglais. 1
jojo Posté(e) le 18 juillet 2022 Signaler Posté(e) le 18 juillet 2022 MMEERRCCII ! En effet c'était un "problème" de langue. Ma box était en UK (et donc bien vu pour Saturday) Je l'ai laissée en UK, et ai forcé la langue de GEA en fr, comme ça ça fonctionnera toujours. => suggestion pour une prochaine version d"e GEA Alarme et de GEA (car je ne devrais pas être le seul à avoir ma box dans une langue <> "fr". pour GEA Alarme : forcer l'envoi à GEA des jours en uk pour GEA : pour l'option "Alarm", forcer son interprétation en UK (indépendamment de la langue de la box ou de celle de GEA) et du coup comment cela réagirait en fonction du format de l'heure : 24h, 12h AM/PM ? J'ai un moment eu peur que mes chats noirs étaient revenus en meute ...
Lazer Posté(e) le 18 juillet 2022 Signaler Posté(e) le 18 juillet 2022 En fait il faudrait surtout que le QuickApp GEA Alarme soit compatible avec la langue anglaise, ce qui n'est pas le cas actuellement. La gestion des jours en anglais sera facile, mais comme tu dis les heures vont être bien pénibles à gérer avec les horaires AM/PM. C'est vraiment une aberration cette gestion de l'heure, tout comme leur système impérial d'unités... M'enfin nous on a de la chance, on est né dans des pays civilisés, donc profitons de cet avantage et exploitons les horaires sur 24 heures 1
Yannick Posté(e) le 18 juillet 2022 Signaler Posté(e) le 18 juillet 2022 Le 14/07/2022 à 20:19, jojo a dit : règle d'or : toutes les conditions dans la même ligne sont des ET. si on veut faire des OU, il faut faire différentes lignes. Ce que tu as écrit : Si l'heure actuelle es comprise entre 14:35 et 16:25 (! syntaxe !) ET quelle est comprise entre 21:35 et 23:25 ET qu'elle est comprise entre 02:35 et 06:25 (c'est une condition impossible à remplir : à 14:35 la première condition serait remplie (si bonne syntaxe) mais donc pas les seconde et troisième) pendant 30 sec Alors allume le sèche serviettes, mais à aucun moment tu lui as dit de s'arrêter. Voici ce qui fonctionnera : GEA.add({"Time", "14:35", "14:40"}, 0, "Démarrage Sèche-Serviettes", {"TurnOn", id[Seche_serviette]}) GEA.add({"Time", "21:35", "21:40"}, 0, "Démarrage Sèche-Serviettes", {"TurnOn", id[Seche_serviette]}) GEA.add({"Time", "02:35", "02:40"}, 0, "Démarrage Sèche-Serviettes", {"TurnOn", id[Seche_serviette]}) GEA.add({"Time", "16:25", "16:30"}, 0, "Arrêt Sèche-Serviettes", {"TurnOff", id[Seche_serviette]}) GEA.add({"Time", "23:25", "23:30"}, 0, "Arrêt Sèche-Serviettes", {"TurnOff", id[Seche_serviette]}) GEA.add({"Time", "06:25", "06:30"}, 0, "Arrêt Sèche-Serviettes", {"TurnOff", id[Seche_serviette]}) j'ai mis la durée à 0s, ce qui revient à dire que l'action s'exécutera au prochain cycle GEA (max 30 sec) Salut @Lazerdésolé pour le lapse de temps de réponse... j'étais en graaaaaaaaaaaaaaand week-end !!! je te confirme vraiment que cela fonctionne parfaitement, mon sèche-serviette démarre et s'arrête aux heures prévues. D'ailleurs concernant la syntaxe, le debug ne montre pas un "And" mais un "Or" regarde !!
jojo Posté(e) le 18 juillet 2022 Signaler Posté(e) le 18 juillet 2022 il y a 25 minutes, Lazer a dit : En fait il faudrait surtout que le QuickApp GEA Alarme soit compatible avec la langue anglaise, ce qui n'est pas le cas actuellement. La gestion des jours en anglais sera facile, mais comme tu dis les heures vont être bien pénibles à gérer avec les horaires AM/PM. C'est vraiment une aberration cette gestion de l'heure, tout comme leur système impérial d'unités... M'enfin nous on a de la chance, on est né dans des pays civilisés, donc profitons de cet avantage et exploitons les horaires sur 24 heures J'ai donc ajouté cette remarque dans la v 7.37 de la syntaxe, vu qu'elle n'avait pas encore été publiée officiellement -- "Alarm" : Utilisable uniquement avec le QuickApp GEA_Alarm -- REMARQUE importante : -- la langue de la box (ou celle de GEA (GEA.language = "fr" dans la config GEA)) doit être en français. -- voir que le format des heures de la box est en 24 heures. -- SYNTAXE : GEA v7.36 Syntaxe.lua 1
Messages recommandés