Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

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 ;)

Posté(e)

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  :)

Posté(e)

@PITP2

Juste pour tester, pourrais-tu

  1. Allumer ton RGB et constater que la ligne ne s'est pas lancée.
  2. 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.

Posté(e)

@sebcbien, c'est la détection d'allumage qui ne fonctionne pas

 

@Steven,

  1. Je constate bien que la ligne ne se lance pas
  2. Je constate aussi que la ligne ne se lance pas .... ça c'est moins explicable on dirait ?   :huh:

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

Posté(e)

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"

  • Upvote 1
Posté(e)

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  :P  vu la neige qu'il tombe en ce moment)

Posté(e)

j'ai appris quelque-chose avec 61 power...

 

Comment peut'on trouver toutes les "interrupt" possibles pour une scène ?

Posté(e)

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à.

  • Upvote 1
Posté(e)

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 :D

Posté(e)

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. :D  :D  :D  :D  :D  :D  :D 

Invité chris6783
Posté(e)

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

Posté(e)

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.

Posté(e)

@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.

Posté(e)

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 { ;)

  • Upvote 1
Posté(e)

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.

Posté(e) (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é par Jacquominot
×
×
  • Créer...