Shyrka973 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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.
HANSOLO Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 J'ai un RGB piloté par GEA le turnOff fonctionne bien chez moi, je jeterais un coup d'oeil ce WE.
jmg38 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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
Shyrka973 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 Le problème ne vient pas du turnOff. Pour faire court, l'erreur si situe ici: not a = b est différent de not ( a = b )
pepite Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 pour le RGB, essaie de l'eteindre en le rajoutant comme ceci pour vérifier : {"turnOff", id["RGB concerné"]}
jojo Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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
Shyrka973 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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"] })
pepite Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 @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
Shyrka973 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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.
jojo Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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
jojo Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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 ?
pepite Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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.
Shyrka973 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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.
jojo Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 oui, tu as probablement raison, mais as-tu validé avec ton RGB ?
Shyrka973 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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. 1
jmg38 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 Pour le RGB, après essai avec la correction du bug ça marche...
Shyrka973 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 @jmg38 Tu confirmes qu'avant la correction du bug, ça ne fonctionnait pas ?
jmg38 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 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 1
Shyrka973 Posté(e) le 8 janvier 2016 Signaler Posté(e) le 8 janvier 2016 Merci. J'ai vérifié le code et je n'ai pas trouvé d'autres erreurs avec le not sans parenthèse.
mickeys Posté(e) le 10 janvier 2016 Signaler Posté(e) le 10 janvier 2016 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"}})
jojo Posté(e) le 10 janvier 2016 Signaler Posté(e) le 10 janvier 2016 @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
HANSOLO Posté(e) le 10 janvier 2016 Signaler Posté(e) le 10 janvier 2016 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.
jojo Posté(e) le 10 janvier 2016 Signaler Posté(e) le 10 janvier 2016 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)
Shyrka973 Posté(e) le 10 janvier 2016 Signaler Posté(e) le 10 janvier 2016 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.
Messages recommandés