Aller au contenu

Recommended Posts

Le 30 = si le test est OK pendant 30s alors j'exécute (selon les conditions paramétrées dans la suite {"Days", "Tuesday"}, {"Time", "19:30", "20:00"} le mardi entre 19H30 et 20H00.)

 

Le problème est que n'as pas défini le truc à  surveiller.

A priori tu veux surveiller une variable globale? Il faut indiquer le nom de cette variable et la valeur qu'elle doit avoir pour que la condition fonctionne.

{"Global", "NomVariable", "ValeurVariable"}

 

En espérant avoir été aussi clair que Steven!

Partager ce message


Lien à poster
Partager sur d’autres sites

{"Global", "", ""} est une petite astuce qui retourne toujours vrai ... ainsi ... on s'en fiche de la condition :)

 

Dans notre cas, on n'a pas de condition, on veux juste actionner ce fichu lapin donc Global de rien = rien n'est pas trop mal ;)

 

Mais en effet, cela aurait pu être une erreur de saisie.

Partager ce message


Lien à poster
Partager sur d’autres sites

Encore un truc d'appris!

 

Donc ça veux dire qu'il est possible de lancer une action toute les XXX secondes! (30s dans l'exemple)

 

Pour me faire pardonner voici une suggestion de modification du code.

Le contexte: j'ai une station météo Netatmo et une bouche hydro d'aération pouvant être commandée électriquement (Si on coupe le 220V, la bouche s'ouvre au max pour 30 mn au retour du 220V) et pilotée par un FGS-211.

 

J'ai des variables globales qui sont renseignées par un périphériques virtuel d'après les mesures de la station météo.

 

Mon but et d'ouvrir en grand la bouche hydro si le taux de CO2 > 800, or le GEA ne compare les variables globales qu'en mode texte (Si variableGlobale = "OUI" alors ...). Dans mon cas ayant besoin de faire une comparaison numérique j'ai ajouté le code suivant dans le GEA (des copier/coller du code déjà  présent) dans la section (ajout en ligne 501 de la V3.40)

	-- ---------------------------------------------------------------------------
	-- V?rification sp?cifique pour savoir si un p?riph?rique est activ? 
	-- ou non
	-- ---------------------------------------------------------------------------

Le code ajouté pour avoir les conditions Global+ et Global- faisant une comparaison numérique d'une variable globale

--Modif Hansolo
		elseif (type(id) == "table" and id[1] == "Global+" and #id > 2) then
			GEA.log("isActivate", entry, "type : Global+", false)
			result = tonumber(fibaro:getGlobalValue(id[2])) > tonumber(id[3])
			--mainid = tonumber(id[2])
			if (main) then entry[GEA.keys["VALUE"]] = fibaro:getGlobalValue(id[2]) end
		elseif (type(id) == "table" and id[1] == "Global-" and #id > 2) then
			GEA.log("isActivate", entry, "type : Global-", false)
			result = tonumber(fibaro:getGlobalValue(id[2])) < tonumber(id[3])
			--mainid = tonumber(id[2])
			if (main) then entry[GEA.keys["VALUE"]] = fibaro:getGlobalValue(id[2]) end
		--Fin modif Hansolo

Le pire c'est que ça à  l'air de fonctionner! :60:

--Ouverture bouche cuisine si CO2 > 800
GEA.add({"Global+","NetCO2Int", "600"}, 10*60, "", {{"Scenario",id["ScnVMC"]}})

Si tu inclus cette modification, le fait d'avoir mon pseudo mentionné dans ton code sera un tout petit peu plus justifié par rapport à  ma première modif!

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@Hansolo

 

Peux-tu tester la 3.50 Beta ci-jointe. Elle inclus tes ajouts (ainsi que mes correctifs). Elle fonctionne relativement bien chez moi.

 

Merci à  toi et félicitations ... t'as tout compris à  mon code qui devient gentiment monstrueux :)

GEA.lua

Partager ce message


Lien à poster
Partager sur d’autres sites

Grrrrr....  je viens à  peine de finir d'installer la version 3.40 :(

Partager ce message


Lien à poster
Partager sur d’autres sites

Grrrrr....  je viens à  peine de finir d'installer la version 3.40 :(

 

 

Ce coup-ci c'est pas ma faute :P  et si la 3.40 te suffit, tu n'as pas besoin d'appliquer toutes les versions, regarde juste si une modification t'intéresse.  :)

 

De plus, si Hansolo s'y met ... on est mal ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Sache que tous ce que tu fait dans ton code m'interresse fortement donc je me sens obligé d'installer la dernière version ca évolue vite Très Très vite c'est dingue ce que tu arrives à  faire je suis vraiment impressionné :huh: je suis complètement dépassé quand je lis tous ca  je passe des heures entière à  essayer de comprendre c'est  pas facile mais j'apprends de jour en jour j'apprends alors continue temps que tu veux.

 

Un grand merci Steven :)  

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

{"Global", "", ""} est une petite astuce qui retourne toujours vrai ... ainsi ... on s'en fiche de la condition :)

Dans notre cas, on n'a pas de condition, on veux juste actionner ce fichu lapin donc Global de rien = rien n'est pas trop mal ;)

Mais en effet, cela aurait pu être une erreur de saisie.

en meme temps en faisant ça mon lapin a tendance a rebooter (3fois hier). J'ai désactivé les lignes ey plus de reboot. Tu as ça aussi ?

Envoyé de mon GT-N7105 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Non je n'ai pas ce problème. De plus la ligne que tu décrit précédemment ne charge pas le lapin car tu n'as pas de condition ni de repeat donc GEA envoi une seule fois la demande au lapin. Le mien n'a pas encore planté depuis 3 jours. Mais je suis en version 218 et je dois faire une mise àjour.

Partager ce message


Lien à poster
Partager sur d’autres sites

J'avais mis un repeat le soir...

Partager ce message


Lien à poster
Partager sur d’autres sites

Un repeat toutes les 30 secondes... Oufff heureusement que c'est un faux lapin

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Dans la série "Bernie et ses galères" il m'arrive une chose alors que je n'ai franchement rien touché depuis que tout fonctionne.

 

Voila, je reçois bien mes notifications, sauf depuis aujourd'hui, les notifications portail et garage.

 

La variable change bien.

Je fais le test avec des (open/close)

--[[
%% properties
%% globals
--]]


fibaro:setGlobal("etat_garage","open");
Et sur cette ligne tout est ok aussi, sauf que je ne reçois plus les notifs.
Quel peuvent en être la cause ?
GEA.add({"Global", "etat_garage", "open"}, -1, "Le garage vient de s'ouvrir à  #time# le #date#", {{"Portable", 83},{"Portable", 6}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Steven

 

Je cherche à  avancer un peux plus dans le GEA mais je t'avouerais que je bloc grave !! avec les  GROUP si toutefois tu pouvais m'en dire un peux plus ce serais vraiment sympas. ;)

 

Encore une chose sans vouloir abuser ;)   je cherche à  faire une scène du style 

 

Chambre enfant,  si les spots sont allumés à  100/100 pendant 1 mn alors réduire à  50/100  merci de me corriger stp

 

Merci d'avance ;)

local si_allume_a_100 = {"If", {{ "value", 52, 50}}}
GEA.add({"value",52,100}, 1*60, "Chambre Lucas réduction à  50%", {{"Time", "18:00", "06:00"},si_allume_a_100})

Partager ce message


Lien à poster
Partager sur d’autres sites

Je mettrais pour ta seconde ligne

GEA.add({"Value+", id["SPOT_CHAMBRE_LUCAS"],99}, 3*60, "Chambre Lucas réduction à  50%", {{"Time", "18:00", "06:00"}, {"Value", 50}})

 

Si le spot est allumé à  100% (>99%) plus de 3mn entre 18H00 et 06H00 alors dimm à  50%

 

Attention au V de value.

Ton exemple de la seconde ligne fait: (si je ne me plante pas encore une fois!)

Si le spot est allumé plus de 3mn entre 18H00 et 06H00 alors dimm à  50%

 

Mais attends la confirmation de maitre Steven.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Hansolo je test de suite  :)

 

No Valide

GEA.add({"Value+", id["SPOTS_CHAMBRE_LUCAS"],99}, 1*60, "Chambre Lucas réduction à  50%", {{"Time", "18:00", "06:00"}, {"Value", 50}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors, ligne 1

Tu veux une notification si les spots sont allumés à  100% plus d'une minute.

Je mettrais 99 au lieu de 100, le test logique de Value+ est > (plus grand que) pas >= (plus grand que OU égale)

 

Ligne 2

Tu veux une notification si les spots sont à  50%

Comme tu n'indique pas une durée je suppose que tu veux la notification dés que les spots sont à  50%

Pas sur que ça fonctionne (help Steven), mais essaye

 

GEA.add(id["SPOTS_CHAMBRE_LUCAS"], -1, "Chambre Lucas réduction à  #value# à  #time#", {"If", {{"Value+", id["SPOTS_CHAMBRE_LUCAS"], 49},{"Value-", id["SPOTS_CHAMBRE_LUCAS"],51}})

 

Si un changement d'état arrive sur les spots (je ne suis pas sà»r que de dimmer déclencheras la ligne)  et que la valeur est comprise entre 49% et 51% (soit 50%) alors notification

 

Il faut ajouter dans l'entête du script GEA entre %% properties et %% global XX value (XX = id des spots)

 

%% properties

XX value

%% globals

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce code est ok mais il y a peut être plus simple sur un seul ligne 

 

en résumé  lorsque les spots sont a 100/100 pendant un temps déterminé  je souhaite les baisser à  50/100 et ça à  toutes heures de la journée et de la nuit.

GEA.add( id["SPOTS_CHAMBRE_LUCAS"], 1*60, "", {{"Time", "18:00", "06:00"}, {"Value", 100}})
GEA.add( id["SPOTS_CHAMBRE_LUCAS"],  2*60, "Chambre Lucas réduction à  50%", {{"Time", "18:00", "06:00"}, {"Value", 50}})

Partager ce message


Lien à poster
Partager sur d’autres sites
GEA.add({"Value+",54,98},60,"",{{"Value",50}})

Testé et approuvé sur un module dimmable Fibaro, au bout d'une minute il passe bien à  50%

 

J'ai mis 98 comme valeur à  tester car j'ai vérifié avec HC2 Toolkit, la valeur max de Value est 99 (pas 100)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Hansolo en 1 ligne Nickel comme je le souhaité testé et approuvé  :60:

GEA.add({"Value+",52,98},60,"Chambre Lucas réduction des spots à  50%",{{"Value",50},{"Repeat"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon ok je te pose une colle ;)  maintenant que les spots baisse d’intensité 60 secondes après les 98/100 j'aimerais les descendre a 30/100  5mn plus tard tous ça sur une ligne !!

 

Allez au boulo  :P

Partager ce message


Lien à poster
Partager sur d’autres sites

@Domodial

Les serveurs du Karotz sont mort donc le tts ne fonctionne plus.

@Hansolo

Tu as vu, tu l'aide et droit derrière il en veux plus, il te teste le bourge de Diuck ... vas y ... mord le :)

@Diuck

Tu copies la ligne d'avant

Tu remplace 98 par 49, 60 par 300 (5 minutes) et 50 par 30

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

En deux lignes:

GEA.add({"Value+",54,98},60,"",{{"Value",50}})
GEA.add(54,5*60,"",{{"If",{{"Value+",54,49},{"Value-",54,51}}},{"Value",30}})

La ligne 2 test si la lumière est à  50% (>49 ET <51) durant 5 mn alors dimm à  30%

 

Testé en live, c'est pourquoi je me suis fait griller par maitre GEA.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Hansolo

 

Peux-tu tester la 3.50 Beta ci-jointe. Elle inclus tes ajouts (ainsi que mes correctifs). Elle fonctionne relativement bien chez moi.

 

Merci à  toi et félicitations ... t'as tout compris à  mon code qui devient gentiment monstrueux :)

La 3.50 m'as l'air bien.

 

J'ai un souci avec mon RGB qui reste allumé alors que ça marchait pendant au moins 10H. Je suis en train de tester, je ne pense pas que ça vient du GEA (j'ai viré mes anciennes scènes même si elles étaient désactivées)

Partager ce message


Lien à poster
Partager sur d’autres sites

×