Aller au contenu

Recommended Posts

je pense qu'il ne peut y avoir qu'un seul if et il devrait se trouver tout àla fin des options

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

qu'est-ce qui ne marche pas, la détection ou l'ordre d'allumage ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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)

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour le -1 essaie de mettre 

 

61 power 

 

dans l'entête au lieu de 61 value.

Partager ce message


Lien à poster
Partager sur d’autres sites

En effet cela fonctionne mieux ainsi ...

Merci Papa Noel  :)

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

 Mais c'est bien sà»r!  :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suppose que tu l'a mise dans l'entête ? (La VG)

Sent From my Vic20

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a pleins d'exemples dans ma signature (showroom gea) enjoy !

Sent From my Vic20

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans mes exemples il y a explicitement ce cas qui est repris. C'est un if dans les options.

Sent From my Vic20

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

×