HANSOLO Posté(e) le 27 mai 2014 Signaler Posté(e) le 27 mai 2014 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!
Steven Posté(e) le 27 mai 2014 Auteur Signaler Posté(e) le 27 mai 2014 {"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.
HANSOLO Posté(e) le 27 mai 2014 Signaler Posté(e) le 27 mai 2014 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! --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!
Steven Posté(e) le 27 mai 2014 Auteur Signaler Posté(e) le 27 mai 2014 @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
Diuck Posté(e) le 27 mai 2014 Signaler Posté(e) le 27 mai 2014 Grrrrr.... je viens à peine de finir d'installer la version 3.40
Steven Posté(e) le 27 mai 2014 Auteur Signaler Posté(e) le 27 mai 2014 Grrrrr.... je viens à peine de finir d'installer la version 3.40 Ce coup-ci c'est pas ma faute 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
Diuck Posté(e) le 27 mai 2014 Signaler Posté(e) le 27 mai 2014 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é 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 1
Domodial Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 {"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
Steven Posté(e) le 28 mai 2014 Auteur Signaler Posté(e) le 28 mai 2014 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.
Steven Posté(e) le 28 mai 2014 Auteur Signaler Posté(e) le 28 mai 2014 Un repeat toutes les 30 secondes... Oufff heureusement que c'est un faux lapin
Domodial Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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}})
Diuck Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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})
HANSOLO Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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.
Diuck Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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}})
HANSOLO Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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
Diuck Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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}})
HANSOLO Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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)
Diuck Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 Merci Hansolo en 1 ligne Nickel comme je le souhaité testé et approuvé GEA.add({"Value+",52,98},60,"Chambre Lucas réduction des spots à 50%",{{"Value",50},{"Repeat"}})
HANSOLO Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 Pour une fois que je donne une réponse correcte! 1
Diuck Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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
Steven Posté(e) le 28 mai 2014 Auteur Signaler Posté(e) le 28 mai 2014 @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 1
HANSOLO Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 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.
HANSOLO Posté(e) le 28 mai 2014 Signaler Posté(e) le 28 mai 2014 @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)
Messages recommandés