sebcbien Posté(e) le 23 décembre 2014 Signaler Posté(e) le 23 décembre 2014 je pense qu'il ne peut y avoir qu'un seul if et il devrait se trouver tout àla fin des options
Steven Posté(e) le 24 décembre 2014 Auteur Signaler Posté(e) le 24 décembre 2014 Attention un If doit englober des "conditions" et non pas des paramètres. De plus, il faut abandonner les If (trop complexe) et préférer les conditions multiples. GEA les transformera automatiquement en If. GEA.add( {condition1[,condition2[,...]]}, ....) Il y a des exemples dans la version 5 et +. Envoyé de mon portable grâce àmes petits doigts.
Jacquominot Posté(e) le 24 décembre 2014 Signaler Posté(e) le 24 décembre 2014 Je n'avais pas compris la différence entre option et condition En faisant comme suit ça marche : GEA.add({{"Value-",id["TEMP_SALLE_MANGER"], tempChauffeJour},{"Value",id["CHAUFFE_SALLE_MANGER"],0},VacancesOff}, 30, "5", {{"Days", "Weekday"},{"Time", "17:32", "22:00"},{"turnOn",id["CHAUFFE_SALLE_MANGER"]},{"Repeat"}} ) Donc tout ce qui concerne un module ou une variable globale est une condition, et tout ce qui concerne une action ou un paramètre d'action comme une période est une option. à‡a va rentrer petit à petit
PITP2 Posté(e) le 28 décembre 2014 Signaler Posté(e) le 28 décembre 2014 Bonjour à tous, j'ai un ptit problème avec mon module RGBW ... il est actionné via un capteur de présence Enocean => FHEM => HC2 (module RGBW) j'essaie de lui indiquer de s'allumer toujours avec une couleur déterminée voici le code qui ne fonctionne pas Je détecte si le module change d'état et je lui attribue les valeurs RGBW GEA.add(id["LUMIERE_ESCALIER_RGBW"], -1, "", {{"RGB", id["LUMIERE_ESCALIER_RGBW"], 22, 22, 255, 100}}) je n'ai aucun message d'erreur mais la ligne n'est pas exécuté .. J'ai déclaré LUMIERE_ESCALIER_RGBW = 61 dans local_ID et j'ai ceci au début du code --[[ %% autostart %% properties 61 value %% globals --]] A votre bon coeur
sebcbien Posté(e) le 28 décembre 2014 Signaler Posté(e) le 28 décembre 2014 qu'est-ce qui ne marche pas, la détection ou l'ordre d'allumage ?
Steven Posté(e) le 29 décembre 2014 Auteur Signaler Posté(e) le 29 décembre 2014 @PITP2 Juste pour tester, pourrais-tu Allumer ton RGB et constater que la ligne ne s'est pas lancée. Modifier la luminosité de ton RGB et constaté que la ligne c'est bien lancée. En fait, si tu es en firmware 4.x, j'ai constaté que si tu allumes ou éteints le RGB, ce dernier ne change pas de "value" comme il devrait. Au lieu de passer "value" à0, il met Color(0,0,0). Ce qui est tordu et embêtant car il n'est ainsi plus possible de capturer l'allumage/extinction du module.
PITP2 Posté(e) le 29 décembre 2014 Signaler Posté(e) le 29 décembre 2014 @sebcbien, c'est la détection d'allumage qui ne fonctionne pas @Steven, Je constate bien que la ligne ne se lance pas Je constate aussi que la ligne ne se lance pas .... ça c'est moins explicable on dirait ? j'ai modifié la ligne ainsi et celle ci fonctionne , preuve qu'il s'agit bien d'un problème de "condition" de déclenchement GEA.add(true, 1*30, "", {{"RGB", id["LUMIERE_ESCALIER_RGBW"], 22, 22, 255, 100}}) Je suis en version 5.02 de GEA et Firmware V4.24b
sebcbien Posté(e) le 29 décembre 2014 Signaler Posté(e) le 29 décembre 2014 ok ça avance, quand ça ne va pas, il faut décomposer pour trouver ou se trouve le problème. Maintenant fait un fibaro:debug( état de capteur) pour voir quel est l'état renvoyé par ton capteur. Tu peux aussi activer le debug de GEA pour voir ou ça "cale" 1
PITP2 Posté(e) le 29 décembre 2014 Signaler Posté(e) le 29 décembre 2014 je viens d'éditer les propriétés du device RGBW pour voir ce qui changeait ou pas ... comme le dit Steven "value" ne change pas et reste fixe à 99 donc on ne peut pas se baser la dessus. Alors je me suis basé sur la consommation "power" qui elle change. J'ai donc mis cette ligne GEA.add({"Sensor+", id["LUMIERE_ESCALIER_RGBW"], 1}, 1*30, "", {{"RGB", id["LUMIERE_ESCALIER_RGBW"], 22, 22, 255, 100}}) et cela fonctionne. Par contre si je mets -1 au lieu de 1*30 et bien cela ne fonctionne pas. Ce n'est cependant pas dérangeant. Merci à tous les deux pour m'avoir mis sur les bonnes pistes (et pas de ski vu la neige qu'il tombe en ce moment)
Steven Posté(e) le 29 décembre 2014 Auteur Signaler Posté(e) le 29 décembre 2014 Pour le -1 essaie de mettre 61 power dans l'entête au lieu de 61 value.
PITP2 Posté(e) le 29 décembre 2014 Signaler Posté(e) le 29 décembre 2014 En effet cela fonctionne mieux ainsi ... Merci Papa Noel
sebcbien Posté(e) le 29 décembre 2014 Signaler Posté(e) le 29 décembre 2014 j'ai appris quelque-chose avec 61 power... Comment peut'on trouver toutes les "interrupt" possibles pour une scène ?
Steven Posté(e) le 30 décembre 2014 Auteur Signaler Posté(e) le 30 décembre 2014 Aucune idée, c'était juste une déduction. Avant on avait valueSensor ... vu que cela a été remplacé par power ... je me suis dit que ...et voilà. 1
PITP2 Posté(e) le 30 décembre 2014 Signaler Posté(e) le 30 décembre 2014 Ce que Steven ne veut pas nous dire c'est que en tant que grand shaman du Gea il a parfois des visions ... et en plus il a le power ... quel homme
Jacquominot Posté(e) le 30 décembre 2014 Signaler Posté(e) le 30 décembre 2014 Bonsoir à tous, désireux de simplifier mon usine à gaz, je me suis mis au Scheduleur. Je m'en sers donc pour mettre à jour une variable globale. Jusque là pas de soucis (c'est déjà bien ). Maintenant, je récupère la valeur de ma variable dans le GEA par : local ConsigneChauffage = tonumber(fibaro:getGlobalValue("ConsigneChauffage")) Pas de soucis non plus puisque mes consignes suivantes passent correctement : GEA.add({{"Value-",id["TEMP_SALLE_MANGER"], ConsigneChauffage}}, 1*60, "", {{"turnOn",id["CHAUFFE_SALLE_MANGER"]},{"Repeat"}} ) GEA.add({{"Value+",id["TEMP_SALLE_MANGER"], ConsigneChauffage}}, 1*60, "", {{"turnOff",id["CHAUFFE_SALLE_MANGER"]},{"Repeat"}} ) Seul truc qui ne va pas, si je change la valeur de ma variable, j'aimerais que les tâches prennent en compte la nouvelle valeur de la variable.J'avais bien pensé à utiliser : {"Global", <nom variable>, <valeur>} -- Si la variable global X contient la valeur Y Mais ça ne marche pas même avec un Repeat. Du coup, il me manque un truc et j'ai pas envie de faire des tests à tout va sur le changement de valeur, il doit y avoir un truc tout bête. Merci pour votre aide.
Invité chris6783 Posté(e) le 30 décembre 2014 Signaler Posté(e) le 30 décembre 2014 Les changements via le panneau de variables ne sont pas visibles dans GEA ni les trigger en general. Pour declencher GEA ou une autre scene il faudra modifier ta variable via un scirpt/scene/Virtual Device... Ce problème est évoqué dans plein de topic du forum et il n'y a à ma connaissance pas d'autres solutions que celles ci-dessus
Jacquominot Posté(e) le 30 décembre 2014 Signaler Posté(e) le 30 décembre 2014 Chris je change deja ma variable par un script. GEA va checker toutes les minutes la valeur mais le probleme est qu'il ne voit pas que la valeur a changé. Il garde en mémoire la valeur au lancement initial de GEA. Ma question est de savoir comment forcer la lecture de la variable globale àchaque fois pour prendre en compte la valeur comme on peut le faire avec un getglobal.
sebcbien Posté(e) le 30 décembre 2014 Signaler Posté(e) le 30 décembre 2014 Je suppose que tu l'a mise dans l'entête ? (La VG) Sent From my Vic20
Steven Posté(e) le 31 décembre 2014 Auteur Signaler Posté(e) le 31 décembre 2014 @jacquominot Malheureusement comme tu l'as dit GEA stocke les informations au démarrage. Il n'y a donc pas de solution àton soucis àl'heure actuelle. Sauf si tu fais une "function" au lieu de ton Value+. Essaie de trouver un exemple car j'ai plus rien sous la main. Envoyé de mon portable grâce àmes petits doigts.
sebcbien Posté(e) le 31 décembre 2014 Signaler Posté(e) le 31 décembre 2014 Il y a pleins d'exemples dans ma signature (showroom gea) enjoy ! Sent From my Vic20
Sebbrunie1 Posté(e) le 31 décembre 2014 Signaler Posté(e) le 31 décembre 2014 Hello à Tous et très bonne année J'ai ce code qui renvoi un message d'erreur. Quelqu'un sait pourquoi? GEA.add(id["Arosage"], 30, "", {"Global", "duree_pluie", "inc+30"}) message d'erreur: [ERROR] 09:18:45: line 320: bad argument #1 to 'lower' (string expected, got nil) pour la ligne: if (string.lower(arg[i][1]) == "repeat") then repeating = true end Merci Edit, j'ai trouvé..... il me manque des { 1
Jacquominot Posté(e) le 31 décembre 2014 Signaler Posté(e) le 31 décembre 2014 Sur les bons conseils de Steven et grâce à la signature de seccbien , j'ai modifié mon bazar. J'utilise maintenant un module virtuel avec un slider. Mes scènes viennent mettre à jour ce slider à partir du scheduleur. A partir de là , je récupère la consigne du slider dans une fonction que j'ai mise dans GEA : function Chauffage(idmodule,mode) local temperature = fibaro:getValue(tonumber(idmodule),'value') local consigne = fibaro:getValue(88, "ui.slider_0_0.value") if mode == 'egalplus' then if temperature >= consigne then return true else return false end end if mode == 'moins' then if temperature < consigne then return true else return false end end end Ensuite, j'ai remplacé mais value+ et value- par la fonction comme suit : GEA.add({"Function",function() return Chauffage(id["TEMP_SALLE_MANGER"],'egalplus') end}, 1*60, "", {{"Value",id["CHAUFFE_SALLE_MANGER"],1},{"turnOff",id["CHAUFFE_SALLE_MANGER"]},{"Repeat"}} ) GEA.add({"Function",function() return Chauffage(id["TEMP_SALLE_MANGER"],'moins') end}, 1*60, "", {{"Value",id["CHAUFFE_SALLE_MANGER"],0},{"turnOn",id["CHAUFFE_SALLE_MANGER"]},{"Repeat"}} ) Ca marche super à part une chose, j'envoi un ordre turnon toutes les minutes et moi je voudrais envoyer un turnon seulement s'il est éteint pour ne pas envoyer des ordres à tout va toutes les minutes. Il ne me reste que cela. Si vous avez une idée. Bonne soirée à tous.
sebcbien Posté(e) le 31 décembre 2014 Signaler Posté(e) le 31 décembre 2014 Dans mes exemples il y a explicitement ce cas qui est repris. C'est un if dans les options. Sent From my Vic20
Jacquominot Posté(e) le 31 décembre 2014 Signaler Posté(e) le 31 décembre 2014 (modifié) Salt Seb, J'ai fais un If comme ça : GEA.add({"Function",function() return Chauffage(id["TEMP_SALLE_MANGER"],'egalplus') end}, 1*60, "", {{"If",{"Value",id["CHAUFFE_SALLE_MANGER"],1}},{"turnOff",id["CHAUFFE_SALLE_MANGER"]},{"Repeat"}} ) Mais ça ne change rien. A dire vrai il manquait p'tet une {} autour du If je tente La bonne syntaxe du If était : GEA.add({"Function",function() return Chauffage(id["TEMP_SALLE_MANGER"],'egalplus') end}, 1*60, "", {{"If",{{"Value",id["CHAUFFE_SALLE_MANGER"],1}}},{"turnOff",id["CHAUFFE_SALLE_MANGER"]},{"Repeat"}} ) GEA.add({"Function",function() return Chauffage(id["TEMP_SALLE_MANGER"],'moins') end}, 1*60, "", {{"If",{{"Value",id["CHAUFFE_SALLE_MANGER"],0}}},{"turnOn",id["CHAUFFE_SALLE_MANGER"]},{"Repeat"}} ) Modifié le 31 décembre 2014 par Jacquominot
Messages recommandés