Aller au contenu

Messages recommandés

Posté(e)

En LUA, la virgule en trop est supprimée par le compilateur car il n'y a pas d'élément qui suit après la virgule.

 

Et ceci n'a rien avoir avec le bug découvert. Ceux qui ont un RGB peuvent facilement tester.

Posté(e)

Bonjour,

Suite à  ma demande d'aide concernant le blocage de GEA, je remercie tous ceux qui m'ont répondu. J'ai repris l'idée d'une base test et d'une base PRO et du coup j'ai fait le ménage dans les value et Id inutiles. Tout fonctionne maintenant. Comme quoi il faut toujours respecter le protocole!! 

Cdt

Posté(e)

en effet, c'est toujours plus sûr de préciser ce qu'on arrêter.

Mais si on ne le précise pas, il arrête le device qui était le premier dans les conditions

Posté(e)

La ligne suivante:

GEA.add(id["ID_LAMPE"], 2*60 ,"Lampe Off après 2mn", { {"turnOff"} })
est équivalente à  la ligne suivante:
GEA.add(id["ID_LAMPE"], 2*60 ,"Lampe Off après 2mn", { {"turnOff"}, id["ID_LAMPE"] })

 

Posté(e)

@jojo normalement oui, mais on ne sait jamais, je me souviens qu'on avait eu ce bug non ?

@Shyrka, oui tout a fait on est d'accord, mais c'est pour en être sûr, ce que je disais c'est que je crois qu'àun moment on avait cela qui ne fonctionnait pas tout le temps, mais je ne sais plus pourquoi ni quand hihi

Posté(e)

Il semble que l'on ne comprenne pas l'erreur de programmation: not a = b est différent de not ( a = b )

 

Quelqu'un possédant un RGB pourrait confirmer le problème de temps pour l'extinction avec une ligne comme celle-ci ?

GEA.add(id["ID_RGB"], 2*60 ,"RGB Off après 2mn", { {"turnOff"} })

Quand on allume le RGB, il doit s'éteindre dans 2mn après.

 

Merci.
Posté(e)

en effet, le "bug" qu"on avait observé était qu'il essayait d'éteindre le premier device des conditions.

C'est pourquoi, pour le lever tout risque/douite, je mets systématiquement le device que je veux actionner

Posté(e)

en effet, vu comme ça, j'interprète

not a = b

comme

not(a) = b

ie, est-ce que (le contraire de a) = b ?

 

 

et dans

not ( a = b )

retourner le contraire de la réponse à  la question a = b ?

Posté(e)

si Shyrka, nous avons bien compris, sauf que je n'ai pas de RGB, donc je ne peux pas modifier la ligne et tester avec ou sans parenthese, alors attendons @Hansolo ou un autre forumeur pour le savoir.

Posté(e)

Exact !

 

Donc dans le même principe, cette ligne:

not fibaro:getValue(tonumber(id), "color") == "0,0,0,0"

est différente de celle-ci:

not (fibaro:getValue(tonumber(id), "color") == "0,0,0,0"))

Et voilà  donc où se trouve le bug.

 

Posté(e)

Justement, je ne comprenais pas pourquoi l'arrêt après un temps donné fonctionne sur FGD ou autres, mais pas sur un RGB. De mon point de vue, cela venait d'un bug car ça fonctionnait en firmware 3.x. Le problème est apparu depuis la 4.x.

 

Après recherche, je l'ai trouvé et corrigé; juste un oubli de parenthèse, maintenant, le RGB s'éteint après un temps donné.

 

Maintenant, je le signale sur le forum pour les autres.

  • Upvote 1
Posté(e)

Oui, j'avais mis en GEA deux scènes RGB et je n'arrivais pas à  les éteindre avec : GEA.add(id["RGB"], 2x60 ,"",{ {"turnOff"}}) et la correction de ( ) ça marche

  • Upvote 1
Posté(e)
Bonjour,
Je avoir un capteur Flood (443). Si il ya une alarme, je voudrais obtenir une poussée et puis aussi tourner de l'eau (444, ON / OFF Popp).

 

Comment puis-je écrire cela?

 

 

Hi,

 

I have a FloodSensor (443). If there is an alarm I would like to get an push and then also turn of the water (444, ON/OFF Popp).

 

How can I write that?

GEA.add(DeviceID["FLOOD_ALARM"], -1, "FLOOD ALARM. (#date# #time#)", {{"Push", MobileID["Iphone_6_Plus_Svart"], "FLOOD ALARM"}})

Posté(e)

@mickeys,

1) this is a very good idea to provide the google translate of your message in french AND the original UK message.

 

this is what you should enter

GEA.add(DeviceID["FLOOD_ALARM"], -1, "FLOOD ALARM. (#date# #time#)", {{"Portable", MobileID["your user"]}, {"turnOff", 444}})

for the push, this is not the option "push", but "portable" you have to use. There is not subject in the push, but his message will be the GEA message. You have to refer the mobileID to who you would like to push:

-- ID des users => for mails
local UserID = {
    Vincent = 5,
    Annabelle = 4,
    }

-- ID des mobiles => for pushes
local MobileID = {
    None = 9999,
    V_Nexus5 = 177,
    A_SGS3m = 999,
    }

do not forget to have your "FLOOD_ALARM" deviceID defined in the header since you requested immédiate action (-1).

But for the fllod, you could "wait" for the next run of GEA, that runs every 30 sec ? Than set in the time 1 instad of -1 and no need to define it in the header

Posté(e)

 

Bonjour à  tous,

 

Il y a un bug dans GEA: une histoire de parenthèse.

 

La ligne suivante devrait éteindre la lampe ID_LAMPE après deux minutes qu'elle soit allumée.

GEA.add(id["ID_LAMPE"], 2*60 ,"Lampe Off après 2mn",  { {"turnOff"}, })

C'est la cas mais pas pour le module RGB de Fibaro. Il ne s'éteindra pas.

 

Le bug se situe à  cette ligne:

result = (tonumber(fibaro:getValue(tonumber(id), "value")) > 0 and not fibaro:getValue(tonumber(id), "color") == "0,0,0,0") or tonumber(fibaro:getValue(tonumber(id), "currentProgramID")) > 0

Elle doit être remplacer par celle-ci:

result = (tonumber(fibaro:getValue(tonumber(id), "value")) > 0 and not (fibaro:getValue(tonumber(id), "color") == "0,0,0,0")) or tonumber(fibaro:getValue(tonumber(id), "currentProgramID")) > 0
Vous constatez qu'il manque les parenthèses pour not s'applique la condition: fibaro:getValue(tonumber(id), "color") == "0,0,0,0".

 

 

Je viens de tester avec mon RGB, j'ai ajouté la ligne

GEA.add(id["RGBChb"], 1*30, "", {{"turnOff"}})

Je n'ai pas ajouté les parenthèses préconisées par @Shyrka973, mon RGB s'est bien éteins après 30s.

 

Si il y avait plusieurs conditions, les parenthèses seraient utiles mais dans le cas présent la version sans parenthèses et avec parenthèse sont équivalentes.

Posté(e)

très intéressant ton retour, mais comment cela se fait que @Shyrka973 a le problème (il n'a qu'une condition) et qu'en rajoutant les () ça passe ?

(perso, ça m'est égal, je n'ai pas de RGBW, mais c'est toujours bon àsavoir)

Posté(e)

Bizarre.

 

Tu es bien en firmware 4.x ?

Le type du RGB est bien "com.fibaro.FGRGBW441M" ?

 

Voici les lignes de code avec la correction :

if (GEA.find(type, "rgb_driver")) then
  -- verison 3.x
  result = (tonumber(fibaro:getValue(tonumber(id), "value")) > 0 ) or tonumber(fibaro:getValue(tonumber(id), "currentProgramID")) > 0
elseif (GEA.find(type, "com.fibaro.FGRGBW441M")) then
  -- verison 4.x
  result = (tonumber(fibaro:getValue(tonumber(id), "value")) > 0 and not (fibaro:getValue(tonumber(id), "color") == "0,0,0,0")) or tonumber(fibaro:getValue(tonumber(id), "currentProgramID")) > 0
else
  result = tonumber(fibaro:getValue(tonumber(id), "value")) > 0
end

Jmg38 a eu le problème et avec la correction, ça fonctionne pour lui.

 

Si il y avait plusieurs conditions, les parenthèses seraient utiles mais dans le cas présent la version sans parenthèses et avec parenthèse sont équivalentes.

 

 

Je ne comprends pas.

 

Le not ne s'applique pas au retour de la fonction fibaro:getValue(tonumber(id), "color") mais au résultat de l'expression fibaro:getValue(tonumber(id), "color") == "0,0,0,0") donc les parenthèses sont de rigueur.

 

×
×
  • Créer...