Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Posté(e) le 18 mars 2014 Bizare, Juste pour tester, essaye de reprendre mon code d'origine. Moins beau et moins optimisé mais au moins celui le je sais qu'il fonctionne ! Dis moi si ça fonctionne.
razowski Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 En reprenant un pour un ton script et en modifiant juste les ID pour matcher avec mes ID, pareil, la lampe s'éteinte pas.
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Posté(e) le 18 mars 2014 Ok ! Bon, laisse moi verifier le script que tu as posté.
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Posté(e) le 18 mars 2014 Ta variable globale Jour_Nuit, elle existe bien ? Et si oui, elle est bien sur Jour ? Est ce que tu pourrais mettre des log eventuellement pour qu on voit ce qui se passe !
razowski Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 Oui oui ma variable est bien présente et "à jour". Comment est-ce que je peux obtenir un log ?
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Posté(e) le 18 mars 2014 Re, Alors voici le code que tu devrais avoir : --[[ %% properties 10 value 14 value 28 value 30 value %% globals Jour_Nuit --]] local startSource = fibaro:getSourceTrigger(); fibaro:debug("Valeur variable Jour_Nuit :" .. fibaro:getGlobal("Jour_Nuit")) if (fibaro:getGlobal("Jour_Nuit") == "Jour") then if (fibaro:getValue(10, "value") > "0") or (fibaro:getValue(14, "value") > "0") or (fibaro:getValue(28, "value") > "0") or (fibaro:getValue(30, "value") > "0") then fibaro:sleep(20*1000) fibaro:call(10, "turnOff") fibaro:call(14, "turnOff") fibaro:call(28, "turnOff") fibaro:call(28, "turnOff") end end Copie colle ça et dis mois deja si ça marche !
razowski Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 Oui ça marche comme ça... Par-contre, je vois pas la différence...
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Posté(e) le 18 mars 2014 Salut, En fait y'en a pas J' ai juste rajouter un debug Moi y' a na pas comprendre non plus Essaye de l' optimiser avec le code de Gregory qui est nettement plus propre que le mien et tiens nous au courant !
razowski Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 Ah ben j'ai trouvé : ne supporte pas dans l'entête de la scène LUA de mettre des commentaires. Ainsi chez moi, c'était l'entête qui faisait que la scène ne démarrait pas automatiquement. --[[ %% properties 10 value 14 value 28 value 30 value %% globals Jour_Nuit --]]
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Posté(e) le 18 mars 2014 Ah ouai ... pas mal, j' avais pas fait gaffe ! Effectivement, pas de commentaires dans l' entête ! Bon ba voila, comme ça, ça marche et on sait pourquoi ça ne marchait pas
Shad Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 @Razowski: en plus ton dernier debug n'est pas bon tu as écrit fibaro:debug(i); Là tu ne vas avoir qu'un chiffre entre 1 et 4 En tout cas moi j'aime pas trop votre code car si vous allumez une seule lampe, Vous les faites tous travaillé pour rien. Bon c'est de l'optimisation mais c'est mon avis
razowski Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 @Shad : pour le debug, c'était pour faire un check de ma boucle donc volontaire. Pour le code, clair, 100% d'accord, reste àaméliorer ce point car si dans chaque scène on tape tous les devices ben ça va pas le faire sur le plus long terme...
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Posté(e) le 18 mars 2014 Mais y'a pas de problème Shad Je ne l' ai pas posté pour que tout le monde le venere et l' adopte sans concession Le but était simplement d' alimenter le forum en donnant des idées. De plus Gregory l' a deja amélioré, il ne reste plus qu' a utiliser son optimisation et tout roule ! Mais la c'est vrai qu'une seule lampe allumé balance un turnOff a tous les modules. Bon après c'est pas si ils étaient alimentés a pile
Shad Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 @ Romain80: non ce n'est pas une question de consommation, mais plus matériel, autant éviter de fatiguer les switchs à l'intérieur pour rien . Pour optimiser c'est assez rapide, il y a deux solution une plus facile mais légèrement moins optimiser que l'autre. -[[ %% properties 10 value 14 value 28 value 30 value %% globals Jour_Nuit --]] local startSource = fibaro:getSourceTrigger(); lights = {10, 14, 28, 30}; -- id des lampes local lightOn = 0; if (fibaro:getGlobal("Jour_Nuit") == "Jour") then for i = 1, #lights do if (tonumber(fibaro:getValue(lights[i], "value")) > 0) then fibaro:sleep(2*1000) fibaro:call(lights[i], "turnOff"); end end end Tout simplement. Si maintenant vous voulez vraiment apprendre quelque chose qui pourrait vraiment vous resservir dans le futur et réduire le temps pour éteindre les lumière, regardez pour créer un array dans votre première boucle avec les id des modules. Ensuite dans la deuxième boucle, vous éteignez les lumière par rapport a cet array.
razowski Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 Grande question que je me pose sur une scène de ce type là: est-il avantageux de la faire en LUA par rapport àla saisir en mode blocs? Hormis le fait qu'on apprend àscripter du LUA? razowski
Shad Posté(e) le 18 mars 2014 Signaler Posté(e) le 18 mars 2014 perso je te dirais que oui pour deux raisons: 1) le backend du bloc est du lua, je te dirais donc qu'àmon avis tu allèges ton code en le faisant directement en lua 2) Je trouve le lua beaucoup plus simple àlire que du bloc et plus facile àajouter des fonctions dans le futur
Domodial Posté(e) le 20 mars 2014 Signaler Posté(e) le 20 mars 2014 Bonjour, Petite question concernant la ligne SendPush. Je vois que vous avez ceci : fibaro:call(4, "sendPush", "Lumière Ext Allumée. Procedure d extinction."); Alors que j'ai l'habitude de voir plutôt ceci dans mes scripts (ID de la notif et ID de mon mobile) : fibaro:call(83, "sendDefinedPushNotification", "18"); A partir de quoi choisissez-vous l'id 4 ? J'imagine que SendPush envois directement le message "Lumière Ext Allumée. Procedure d extinction." Et l'Id du mobile c'est 4 ? Merci
Romain80 Posté(e) le 20 mars 2014 Auteur Signaler Posté(e) le 20 mars 2014 Salut Domodial, Oui c'est tout a fait ça. 4 est l' id de mon smartphone. la fonction sendPush permet d'envoyer le message que l'on souhaite sans être obligé de le définir auparavant dans le panneau des messages. ++
Domodial Posté(e) le 20 mars 2014 Signaler Posté(e) le 20 mars 2014 C'est vraiment bien, entre temps j'ai essayé et effectivement je recois la notif. Je ne connaissais pas et c'est super Génial ! Comme quoi les débats/tutos servent vraiment !!
JossAlf Posté(e) le 20 mars 2014 Signaler Posté(e) le 20 mars 2014 Il semblerait que l'on ait la même chose pour les mails avec : fibaro:call(123, 'sendEmail', subject, message); local subject = 'Test Subject'; local message = 'Test message'; fibaro:call(123, 'sendEmail', subject, message);
Romain80 Posté(e) le 20 mars 2014 Auteur Signaler Posté(e) le 20 mars 2014 @Domodial : On ne peut plus d'accord. Certaine fois sur les forums, tu n'ose meme pas poser de question car ça semble "pas au niveau" ou trop "stupide". Le niveau parfois élitiste de certains membres empêche justement les gens qui en ont besoin de s'exprimer et de questionner librement ... mais pour ma part je suis carrément d' un avis contraire. Les Forums sont en mon sens, une superbe source d'informations. La moindre petite chose peut avoir un intérêt ! Et on en a la preuve @Jossalf : Oui tout a fait, tu peux également gérer tes mails comme cela. 2
JossAlf Posté(e) le 20 mars 2014 Signaler Posté(e) le 20 mars 2014 C'est quand même beaucoup plus souple que de devoir préparer des messages fixes pour les rappeler par un "SendDefinedPush...". En plus ça permet d'avoir des messages dynamiques : Grace à un Fibaro: getSourceTrigger () on récupère le nom du déclencheur de la scène dans une variable. On l'insère dans un message que l'on envoie en push ou mail.
Fredric Posté(e) le 2 avril 2014 Signaler Posté(e) le 2 avril 2014 @ Romain80: non ce n'est pas une question de consommation, mais plus matériel, autant éviter de fatiguer les switchs à l'intérieur pour rien . Pour optimiser c'est assez rapide, il y a deux solution une plus facile mais légèrement moins optimiser que l'autre. --[[ %% properties 10 value 14 value 28 value 30 value %% globals Jour_Nuit --]] local startSource = fibaro:getSourceTrigger(); lights = {10, 14, 28, 30}; -- id des lampes local lightOn = 0; if (fibaro:getGlobal("Jour_Nuit") == "Jour") then for i = 1, #lights do if (tonumber(fibaro:getValue(lights[i], "value")) > 0) then fibaro:sleep(2*1000) fibaro:call(lights[i], "turnOff"); end end end Tout simplement. Si maintenant vous voulez vraiment apprendre quelque chose qui pourrait vraiment vous resservir dans le futur et réduire le temps pour éteindre les lumière, regardez pour créer un array dans votre première boucle avec les id des modules. Ensuite dans la deuxième boucle, vous éteignez les lumière par rapport a cet array. Il manqué un tiré en début de première ligne Celui là , je prends , je vais remplacer mes bloc Merci Shad, je crois bien que je dois avoir au moins 60% de code made in Shad dans ma box
Domodial Posté(e) le 2 avril 2014 Signaler Posté(e) le 2 avril 2014 humm mon message n'est plus là alors que je l'avais posté... Bonjour, Le script fonctionne bien, cependant j'ai un soucis. Avec yahoo, quand je décide malgré tout d'allumer une lumière (vers 18h30 - 19h), la lumière s'éteint. Ok il fait jour dehors, mais lorsqu'on a besoin de lumière dans une partie sombre de la maison, impossible d'en avoir, la lumière s'éteint. Avez-vous le probleme ? Comment compenser en plus ou moins 1h pour palier yahoo ? Merci
Fredric Posté(e) le 2 avril 2014 Signaler Posté(e) le 2 avril 2014 c'est vrai que je n'ai pas ce problème avec mes lumières extérieur, elles sont exposés donc, si il fait jour, même un peux, les lumières ne servent àrien, mais justement, je n'ai pas associer l'ID de la lumière de mon entrée car c'est exactement le problème que j'ai. donc, je pensé utiliser un capteur de luminosité, ça devrait le faire?
Messages recommandés