Aller au contenu

Recommended Posts

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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é :94:

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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.....:60:

 

 

Modifié par Yannick

Partager ce message


Lien à poster
Partager sur d’autres sites



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ût
je t'invite à manger une bonne côte de bœuf en Belgique

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
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.....:60:

 

 

ç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 :D 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 :wacko:

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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})

image.thumb.png.40b6edd4934799d7e313d109ae071b70.png

Modifié par Yannick

Partager ce message


Lien à poster
Partager sur d’autres sites
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 !!!

Partager ce message


Lien à poster
Partager sur d’autres sites
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})

image.thumb.png.40b6edd4934799d7e313d109ae071b70.png

Alors là j'ai appris un truc... mais je ne comprends pas comment ça peut fonctionner :huh:

  • Like 1
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
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 :D 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 :wacko:

 

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 :D

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 13 heures, Lazer a dit :

Alors là j'ai appris un truc... mais je ne comprends pas comment ça peut fonctionner :huh:

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.

Partager ce message


Lien à poster
Partager sur d’autres sites
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 Belgiqueemoji4.png

@Lazer, tu es EVIDEMMENT le bienvenu, et s'il fait beau, plouf dans la piscine (j'essaie péniblement de la maintenir < 30 °C)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
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 :D 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 :wacko:

 

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)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
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)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :D

Partager ce message


Lien à poster
Partager sur d’autres sites

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...

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

La condition Time, il faut la mettre dans les conditions (à la place du true), et non pas dans les actions.

Partager ce message


Lien à poster
Partager sur d’autres sites

@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.

image.png.e9faa3ad6e3ec9be5352d247e6c8f546.png

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.) ???

Partager ce message


Lien à poster
Partager sur d’autres sites

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

  • Thanks 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci BEACOUP, voici donc les logs

image.png.45eedf9eec8343bd4d07f7e354811391.png

[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

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

 

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ...

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :)

 

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites
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 !!

image.png.3e4cd3808d014728c1000e7c71dc2931.png

 

Partager ce message


Lien à poster
Partager sur d’autres sites
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

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×