Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
razowski Posté(e) le 18 mars 2014 Signaler Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Partager Posté(e) le 18 mars 2014 Ok ! Bon, laisse moi verifier le script que tu as posté. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Partager 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
razowski Posté(e) le 18 mars 2014 Signaler Partager 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Partager 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
razowski Posté(e) le 18 mars 2014 Signaler Partager Posté(e) le 18 mars 2014 Oui ça marche comme ça... Par-contre, je vois pas la différence... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Partager 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
razowski Posté(e) le 18 mars 2014 Signaler Partager 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 --]] Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 18 mars 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
razowski Posté(e) le 18 mars 2014 Signaler Partager 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 18 mars 2014 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 18 mars 2014 Signaler Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
razowski Posté(e) le 18 mars 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 18 mars 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Domodial Posté(e) le 20 mars 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 20 mars 2014 Auteur Signaler Partager 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. ++ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Domodial Posté(e) le 20 mars 2014 Signaler Partager 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 !! Lien vers le commentaire Partager sur d’autres sites More sharing options...
JossAlf Posté(e) le 20 mars 2014 Signaler Partager 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); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 20 mars 2014 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
JossAlf Posté(e) le 20 mars 2014 Signaler Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 2 avril 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Domodial Posté(e) le 2 avril 2014 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 2 avril 2014 Signaler Partager 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? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés