Aller au contenu

Messages recommandés

Posté(e)

@pepite: j'ai mis à  jour en 5.32 et la tadam, ce code foncitionne: 

GEA.add({"Value+", id["CO2_SALON"], 900}, 30*60, "", {{"Global", "Karotz", "Le taux de CO2 est trop élevé il faut aérer"}, {"VirtualDevice", id["VD_KAROTZ"],"1"}})
 

Me reste plus qu'à  trouver pour mettre les leds du lapin rouge!!

Merci à  tous

Posté(e) (modifié)

bonjour à  toute et à  tous,

 

j'ai un souci avec le JEUDI, j'ai bien mis à  jour en 5.32 et les autres lignes qui ne comportent  ALL fonctionnent.

voici une ligne de code qui fonctionne pas.

GEA.add(true, 30, "", {{"Scenario", 70},{"Time", "09:25", "09:26"},{"Days", "Monday","Tuesday","Wednesday","Thursday"}})

le debug me dit:

[ Toujours ] !CANCEL! CheckTimes : Aujourd'hui Thursday n'est pas inclus dans (ID:38) [scenario,70] [Time,09:25,9:26] [Days,Monday,Tuesday,Wednesday,Thursday]

 

toutes les lignes qui comportent Thursday me retourne ce message et ne fonctionnent pas.

 

avez vous une idée du problème ?

Modifié par Fredric
Posté(e)

Bonjour,

 

je suis étonnée car mes icones dans les VD ne se change pas lorsque cette action s'execute:

GEA.add({{"Global", "Moisdujour", "03"}}, 24*60*2*30, "" , {{"Global", "Saison1", "Printemps"}, {"CurrentIcon", 274, 1056}})

Merci d'avance

 

Sébastien

Posté(e)

 @Fredric,

C'est carfmann qui avait soulevé le problème avec le jeudi et cela venait dans les lignes de GEA d'un "Thursdays" avec un "s" en trop:

 

J'ai trouvé!

if (string.find(jours, "Lu") or string.find(jours, "Mo")) then days = days .. "Monday" end
if (string.find(jours, "Ma") or string.find(jours, "Tu")) then days = days .. "Tuesday" end
if (string.find(jours, "Me") or string.find(jours, "We")) then days = days .. "Wednesday" end
if (string.find(jours, "Je") or string.find(jours, "Th")) then days = days .. "Thurdays" end
if (string.find(jours, "Ve") or string.find(jours, "Fr")) then days = days .. "Friday" end
if (string.find(jours, "Sa") or string.find(jours, "Sa")) then days = days .. "Saturday" end
if (string.find(jours, "Di") or string.find(jours, "Su")) then days = days .. "Sunday" end

point commun entre mon test à  1h24 du mat et celui de ce soir...

...

allez regarder bien...

...

...

...

...

nous sommes Jeudi

...

...

...

et le jeudi en Anglais?

...

...

thursday  et non pas thurdays

 

 

je suppose que personne n'a testé le Jeudi???

 

Le problème a été corrigé par sebcbien avec une version Github en 5.32 (dans sa signature).

Posté(e)

 Version que je n'arrive pas à  récupérer, je ne peux pas faire le copier/coller car beaucoup trop long et ça rame. Existe-t'il un fichier txt de la v5.32?

Posté(e)
if (string.find(jours, "Lu") or string.find(jours, "Mo")) then days = days .. "Monday" end
					if (string.find(jours, "Ma") or string.find(jours, "Tu")) then days = days .. "Tuesday" end
					if (string.find(jours, "Me") or string.find(jours, "We")) then days = days .. "Wednesday" end
					if (string.find(jours, "Je") or string.find(jours, "Th")) then days = days .. "thursday" end
					if (string.find(jours, "Ve") or string.find(jours, "Fr")) then days = days .. "Friday" end
					if (string.find(jours, "Sa") or string.find(jours, "Sa")) then days = days .. "Saturday" end
					if (string.find(jours, "Di") or string.find(jours, "Su")) then days = days .. "Sunday" end

il y a pas une importance que le premiere lettre soit en majuscule, parce que dans le 5.32, elle est en mini  "thursday"

Posté(e)

@Fredric 

 

C'est quoi cette syntaxe bizarre :-)

 

Voici la bonne syntaxe :

GEA.add(true, 30, "", {{"Scenario", 70},{"Time", "09:25", "09:26"},{"Days", "Monday,Tuesday,Wednesday,Thursday"}})

Les jours sont tous dans entre les mêmes guillemets.

Posté(e)

 Ah pardon Fredric, j'avais déjà  oublier le début de ton message (il ne faut pas faire plusieurs chose en même temps). J'avais bien vu le "s" en trop à  la fin mais pas l'autre au milieu donc j'ai modifié direct dans le GEA et l'alarme fonctionne bien le jeudi.

Posté(e)

oh, purée, le copier/collé est mon ennemi!!

 

devine d'ou ça vient, je transfert Scheduler vers GEA  :rolleyes:

désolé, je passé dessus depuis ce matin,sans même le voir!!

 

Merci @Steven , comme d'hab , on va pouvoir te béatifier tellement que tu es un saint pour nous  ;)

 

est donc, pas d'importance avec le "t"en majuscule ou pas...

  • Upvote 1
Posté(e)

devancé par steven, j'allais lui dire ;-)

 

@sebbrunie : heuuu la bonne question, sur des ID ?

as tu essaye en ecrivant le code lua dans le bouton du VD ?

Posté(e)

@sebbrunie

 

je crois que Stven avait ecrit dans les pages précedentes que CurrentIcon lui causait des soucis, mais ca concernait la version 5.00 de GEA. Je t'avoue que je n'ai aps trop suivi ou surtout je ne me souviens pas lol des suites de ce sujet hihi

 

Essaie avec des guillemets peut-etre, tu as quoi dans le debug concernant cette ligne ?

ta syntaxe a l'air correcte ;-)

Posté(e)

@Steven

 

Salut,

 

En remplaçant "GEA.match" par "string.match", mes règles avec les variables globales se sont mises à  fonctionner bizarrement.

 

...

 

En faisant ces modifications dans le code GEA, je n'est plus de dysfonctionnement.

 

Qu'en penses tu ?

 

J'avais fait mon analyse au plus simple et au moins consommateur de temps .. je l'avoue.

 

Tu as 100% raison et j'approuve ta modification ... comme d'habitude d'ailleurs.

Posté(e)

Bonjour Steven

Tout d'abord félicitation pour le code, je viens d'acquérir une box HC2 depuis qqs jours , je décrouvre donc LUA !

 

J'ai rajouté ces deux lignes de code dans ton script:

 

elseif (type(id) == "table" and string.lower(id[1]) == "property+") then
return "Property [" .. id[2].."|"..id[3].. "] > " ..id[4], GEA.getRoom(tonumber(id[2]))
elseif (type(id) == "table" and string.lower(id[1]) == "property-") then
return "Property [" .. id[2].."|"..id[3].. "] < " ..id[4], GEA.getRoom(tonumber(id[2]))
 
car j'ai besoin de savoir si une prise consomme moins de x watts depuis une certaine durée pour pouvoir déclencher une action, et le seul moyen que j'ai trouvé est de tester la property power de la prise (dans mon cas mon lave linge consomme même arrêté ! bon 0.5W mais ca serait bête de pas profiter de la domotique pour couper la prise entièrement dans ce cas là .
 
Ca serait cool que ce soit intégré à  une prochaine version pour que je n'ai pas à  le remettre à  chaque fois à  la main.
 
Par avance merci
Posté(e)

Bonjour,

 

je suis étonnée car mes icones dans les VD ne se change pas lorsque cette action s'execute:

GEA.add({{"Global", "Moisdujour", "03"}}, 24*60*2*30, "" , {{"Global", "Saison1", "Printemps"}, {"CurrentIcon", 274, 1056}})

Merci d'avance

 

Sébastien

 

Le code de GEA est celui-ci :

 

fibaro:call(<ID>, "setProperty", "currentIcon", tostring(<ICON>) )

 

donc on s'enfiche des guillemets englobant le 1056. Pepite à  raison mais j'avais corrigé cela il y a quelque version en arrière.

 

Par contre ... il faut être 100% sà»r du numéro de l'icone (il a pus changer lors d'une mise à  jour) et du VD.

Posté(e) (modifié)

 

Bonjour Steven

Tout d'abord félicitation pour le code, je viens d'acquérir une box HC2 depuis qqs jours , je décrouvre donc LUA !

 

J'ai rajouté ces deux lignes de code dans ton script:

 

elseif (type(id) == "table" and string.lower(id[1]) == "property+") then
return "Property [" .. id[2].."|"..id[3].. "] > " ..id[4], GEA.getRoom(tonumber(id[2]))
elseif (type(id) == "table" and string.lower(id[1]) == "property-") then
return "Property [" .. id[2].."|"..id[3].. "] < " ..id[4], GEA.getRoom(tonumber(id[2]))
 
car j'ai besoin de savoir si une prise consomme moins de x watts depuis une certaine durée pour pouvoir déclencher une action, et le seul moyen que j'ai trouvé est de tester la property power de la prise (dans mon cas mon lave linge consomme même arrêté ! bon 0.5W mais ca serait bête de pas profiter de la domotique pour couper la prise entièrement dans ce cas là .
 
Ca serait cool que ce soit intégré à  une prochaine version pour que je n'ai pas à  le remettre à  chaque fois à  la main.
 
Par avance merci

 

 

Dans ton cas, j'aurais utilisé le 

 

GEA.add ({"Sensor+", ...}, .........)

ou

GEA.add ({"Sensor-", ...}, .........)

 

Je ne peux plus modifier GEA pour l'instant* mais libre à  toi de modifier la version GitHub disponible ICI.

 

* GEA étant devenu une usine à  gaz et à  pétrole ... et à  charbon, je suis entrain de tester une nouvelle façon d'écrire le code pour une plus grand maintenabilité.

 

 

Edit : suppression de la fin du message qui n'avait juste rien à  voir et résultait d'un coller malheureux.

Modifié par Steven
Posté(e)

@atalata Comme dit Steven une ligne du style:

 GEA.add({"Sensor-", id["LAVE_LINGE"], 10}, 10*60, "", {{"turnOff", id["LAVE_LINGE"]}, {"Repeat"}})

devrait fonctionner si il consomme moins de 10W pendant 10mn. C'est ce que j'utilise pour vérifier le fonctionnement de mon chauffe-eau.

Posté(e)

J'ai pire ... j'ai donc gagné 

 

Si le lave-linge consomme moins de 1.0W (éteint), je coupe la prise. Variable = OFF

Si sa consommation est supérieure à  3.0W (en fonctionnement), Variable = RUNNING

Si sa consommation est entre 1.0 et 2.5 et que la variable = RUNNING alors Variable = Waiting ... Il ne consomme plus donc est terminé

Si la variable est Waiting plus de 30mn alors je rappel qu'il faut ce bouger les fesses.

  -- === Lave-Linge == --
  GEA.add({"Global", "Lave-Linge", "WAITING"}, 30*60, "Le lave-linge est arrêté depuis #duration#", {{"Global", "Karotz", "Le lave-linge est arrêté depuis #durationfull#"},{"VirtualDevice", id["OPENKAROTZ"],"1"},{"Repeat"}})
  GEA.add({"Sensor-", id["LAVE_LINGE"], 1.5}, 2*60, "", {{"turnOff"}, {"Global", "Lave-Linge", "OFF"}}) 
  GEA.add({"Sensor+", id["LAVE_LINGE"], 3}, 2*60, "", {{"Global", "Lave-Linge", "RUNNING"}}) 
  GEA.add({{"Sensor+", id["LAVE_LINGE"], 1},{"Sensor-", id["LAVE_LINGE"], 2.5}, {"Global", "Lave-Linge", "RUNNING"}}, 5*60, "", {{"Global", "Lave-Linge", "WAITING"}})
Posté(e)

J'ai oublié de préciser 

 

Sensor va vérifier la propriété valueSensor (si tu es en 3.x) ou power (si tu es en 4.x)

 

Si Sensor n'est pas clair pour toi ET que tu es en 4.x, tu peux remplacer 

 

GEA.add( {"Sensor-", .....})

par

GEA.add( {"Power-", .....})

 

mais c'est exactement la même chose pour GEA.

Posté(e)

Bonjour à  tous,

 

J'ai ajouté ces quelques fonctions à  GEA: StopScenario, EnableScenario et DisableScenario.

 

Voici le code à  insérer dans la fonction "GEA.sendActions":

elseif (type(entry[GEA.keys["PARAMS"]][i]) == "table" and string.lower(entry[GEA.keys["PARAMS"]][i][1]) == "stopscenario" and #entry[GEA.keys["PARAMS"]][i] > 1) then   if (fibaro:countScenes(entry[GEA.keys["PARAMS"]][i][2])) then
   fibaro:killScene(entry[GEA.keys["PARAMS"]][i][2])
   GEA.log("sendActions", entry, "!ACTION! : Stop Scene " .. entry[GEA.keys["PARAMS"]][i][2], true)
else
   GEA.log("sendActions", entry, "!ACTION! : No Stop Scene " .. entry[GEA.keys["PARAMS"]][i][2], true)
end
elseif (type(entry[GEA.keys["PARAMS"]][i]) == "table" and string.lower(entry[GEA.keys["PARAMS"]][i][1]) == "enablescenario" and #entry[GEA.keys["PARAMS"]][i] > 1) then
    fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], true)
    GEA.log("sendActions", entry, "!ACTION! : Scene enabled " .. entry[GEA.keys["PARAMS"]][i][2], true)
elseif (type(entry[GEA.keys["PARAMS"]][i]) == "table" and string.lower(entry[GEA.keys["PARAMS"]][i][1]) == "disablescenario" and #entry[GEA.keys["PARAMS"]][i] > 1) then
    fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], false)
    GEA.log("sendActions", entry, "!ACTION! : Scene disabled " .. entry[GEA.keys["PARAMS"]][i][2], true)

Et ceci à  mettre en fin de script GEA:

-- {"StopScenario", <id>} -- {"StopScenario", 2} -- Arrête le scénario avec l'identifiant 2 // Stop the scene XXX-- {"EnableScenario", <id>} 
-- {"EnableScenario", 2} -- Active le scénario avec l'identifiant 2 // Enable the scene XXX
-- {"DisableScenario", <id>} -- {"DisableScenario", 2} -- Désactive le scénario avec l'identifiant 2 // Disable the scene XXX
 
  • Upvote 1
Posté(e)

@Shyrka973

Je suis entrain de reécrire GEA pour simplifier justement ce type de maintenance/évolution.
L'idée est de faire un tableau regroupant les fonctions afin de ne pas/plus aller changer les IF dans le code. Le tableau serait décrit ainsi :
 

	_stopscenario	= {
					"name" =  function(id) return "StopScene! : " ..id[2], "" end,
					"action" = function(id, entry)
						if (fibaro:countScenes(entry[GEA.keys["PARAMS"]][i][2])) then
							fibaro:killScene(entry[GEA.keys["PARAMS"]][i][2])
							return true
						else
							return false
						end
					end
				},
	_enablescenario	= {
					"name" = function(id) return "EnableScene! : " ..id[2], "" end,
					"action" =  function(id, entry)
						fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], true)
						return true
					end
				}
	_disablescenario= {
					"name" = function(id) return "DisableScene! : " ..id[2], "" end,
					"action" = function(id, entry)
						fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], false)
						return true
					end
				}

Si tu fais 

 

GEA.add({"StopScenario", 2}, ......)

 

GEA va automatiquement cherché _stopscenario["name"] pour afficher dans le debug et _stopscenario["action"] lorsqu'il doit lancé une action (sendAction). Ainsi, il suffit juste d'ajouter une entrée de ce tableau on on a plus besoin de modifier le code inbuvable du dessous.

 

Il y donc ceci (exemple avec {"Global", variable, valeur})

 

_global["condition"] qui correspond  à  GEA.isActivate() .. retour vrai ou faux si la variable globale a la bonne valeur

_global["name"] qui correspond  à  GEA.getName() ... retour le nom affiché dans le debug

_global["action"] qui correspond  à  GEA.sendActions() ... effectue l'action souhaitée setGlobal() dans ce cas.

 

Que penses-tu de cette idée ?

  • Upvote 2
×
×
  • Créer...