Aller au contenu

Support Gea


Steven

Messages recommandés

Pour le moment j'ai mis un inter va et vient. Du coup j'ai activé le sceneactivation, et làje peux faire qque chose, mais je voulais directement commander depuis GEA, mais je ne vois pas comment faire.

Lien vers le commentaire
Partager sur d’autres sites

Dans GEA 5.34 je pense qu'une correction proposée par @Shyrka973 n'a pas été complètement implémentée.

					if (GEA.match(entry[GEA.keys["PARAMS"]][i][3], "inc%+")) then
						local number = tonumber(fibaro:getGlobalValue(entry[GEA.keys["PARAMS"]][i][2]))
						if (type(value) ~= "nil") then fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number + value) else fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number + 1) end
					elseif (GEA.match(entry[GEA.keys["PARAMS"]][i][3], "dec%-")) then
						local number = tonumber(fibaro:getGlobalValue(entry[GEA.keys["PARAMS"]][i][2]))
						if (type(value) ~= "nil") then fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number - value) else fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number - 1) end
					else
						fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], GEA.getMessage(entry,entry[GEA.keys["PARAMS"]][i][3]))
					end

Devrait être;

					if (string.match(entry[GEA.keys["PARAMS"]][i][3], "inc%+")) then
						local number = tonumber(fibaro:getGlobalValue(entry[GEA.keys["PARAMS"]][i][2]))
						if (type(value) ~= "nil") then fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number + value) else fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number + 1) end
					elseif (string.match(entry[GEA.keys["PARAMS"]][i][3], "dec%-")) then
						local number = tonumber(fibaro:getGlobalValue(entry[GEA.keys["PARAMS"]][i][2]))
						if (type(value) ~= "nil") then fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number - value) else fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], number - 1) end
					else
						fibaro:setGlobal(entry[GEA.keys["PARAMS"]][i][2], GEA.getMessage(entry,entry[GEA.keys["PARAMS"]][i][3]))
					end

GEA.match àremplacer par string.match lignes 1 et 5

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

J'ai remplacé ces deux lignes par:

if (string.find(entry[GEA.keys["PARAMS"]][i][3], "inc+", 1, true)) then

et

elseif (string.find(entry[GEA.keys["PARAMS"]][i][3], "dec-", 1, true)) then

Le quatrième paramètre de la fonction string.find à  true permet une recherche simple à  la différence de string.match qui lui va réaliser une recherche complexe.

 

Lien vers le commentaire
Partager sur d’autres sites

Tiens, j'ai un truc anormal. Dans GEA, j'utilise cette ligne :

--Ouverture véranda au couché du soleil
GEA.add(true, 1, "Ouverture véranda",{{"Days","Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"},{"Time","Sunset-15","Sunset-16"},{"VirtualDevice",91,"7"}})
  

Souci : Quand je modifie qque chose dans GEA autre, et donc que j'effectue une sauvegarde, cela lance cette action... Pourtant elle ne devrait se lancer qu'àSunset-x.

Lien vers le commentaire
Partager sur d’autres sites

@Nico:

 

GEA.add(true, 1, "Ouverture véranda",{{"Days","Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"},{"Time","Sunset-15","Sunset-16"},{"VirtualDevice",91,"7"}})


Sunset est le couché du Jour donc ton action est valide de Sunset-15 à  Sunset-16 soit pendant 23H59 minutes.... donc normal le déclenchement. Si tu veux entre 15 et 16 avant le couché, c'est {"Time","Sunset-16","Sunset-15"} Ou alors j'ai mal compris et désolé :)
 

GEA.add(true, 1, "Ouverture véranda",{{"Days","WeekDay"},{"Time","Sunset-16","Sunset-15"},{"VirtualDevice",91,"7"}})

Nicolas

 

Lien vers le commentaire
Partager sur d’autres sites

Merci ! Je croyais que c'était l'heure moi... Pourtant je suis sur que cela fonctionnait sur une autre action.

Mais donc si je veux que cela s'ouvre 15 minute avant le Sunset du jour, je mets juste Time avec Sunset-15. En fait je mettais toujours une borne -15-16 pour être sûr qu'ils le prennent, cela date du début de GEA, je peux les virer maintenant, c'est hyper stable.

Lien vers le commentaire
Partager sur d’autres sites

en fait si je veux être sà»r qu'il s'ouvre à  sunset-15 ET que si à  sunset-15 la HC2 n'était pas disponible (panne de courant, backup, ...)

je mettrais  (et ainsi si la HC2 revient à  elle avant 23:00, les stores s'ouvrent)

{"Time","Sunset-15","23:00"}

Teste aussi sans le {"Days", ...} cela surcharge selon moi le script

Lien vers le commentaire
Partager sur d’autres sites

 

STOP :)

 

Utilisé un sleep de 20mn dans GEA va planté GEA .. on a le droit d'y mettre des petit sleep (sans jeu de mot) pour autant que le total des "sleep" ne dépasse pas les 30 secondes. Sinon GEA ne sera pas capable de ce lancer toutes les 30 secondes.

 

Il y a des solutions à  cela :


local varecsoui = {"Global", "varecs", "oui"}
local varecsnon = {"Global", "varecs", "non"}

-- Tache en sommeil (NotStarted)
-- Cette tache va passer la variable à  Non si elle est à  Oui depuis plus de 20 minutes
local autoOff = GEA.add(varecsoui, 20*60, "Variable ECS à  OUI depuis #durationfull#", {varecsnon, {"NotStarted"}}) -- Tache en sommeil cas non démarrée

-- Cette tache va passer la variable à  Oui si la lumière de la douche est allumée et que la variable est à  non
-- Elle va aussi redémarrer la tache si dessus
GEA.add({id["lumrdc_douche"], varecsnon}, 30, "",{varecsoui, {"RestartTask", autoOff}})

Steven,

Je constate (grâce à  ton code qui traque les changements de variables :13: ) que ma varecs repasse à  non après 20 min SI la tâche GEA qui fait le RestartTask de autoOff a tourné.

 

Donc si ma varecs est à  oui autrement que par la lumrdc_douche elle ne repasse pas à  non après 20 min SAUF si UNE fois le RestartTask de autoOff a fait son oeuvre.

 

En fait ce que je voudrais, c'est que le RestartTask ne fonctionne qu'une seule fois. Et donc dès que la tâche a tourné un fois, elle se remette en NotStarted, jusqu'au prochain RestartTask. Cela ne semble pas être le cas.

 

Fonctionnellement, je veux que varecs repasse à  non (après 20 min) seulement si elle est passée à  oui "à  cause" de lumrdc_douche (qui entre temps peut avoir été éteinte).

 

Je sais, c'est tiré par les cheveux, mais c'est hyper simple en mode BLOC (ça c'est proche de l'insulte, mais c'en n'est pas !)

 

Merci de vos idées

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...