Yannick Posté(e) le 5 septembre 2015 Signaler Partager Posté(e) le 5 septembre 2015 Salut à tous, je viens d'écrire un scénario et je voulais juste vous le soumettre. Ce que je veux faire, c'est entre 18 h et 7h du matin, si la luminosité de ma pièce passe en dessous de 10 lux, j'allume la lampe qui reste allumer tant qu'il y a du mouvement dans la pièce et si après 1 minute de calme rien ne se passe, elle s'éteint. Je vais l'essayer ce soir mais je voulais quand même votre avis. s'il vous plaît Merci les gars !!! --[[ %% properties 92 value 94 value %% globals --]] local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(92, "value"); local HeureActuelle = os.date("*t"); if (fibaro:countScenes() > 1) then fibaro:abort() end; fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min']) fibaro:debug("le capteur est safe depuis : "..((os.time() - deviceLastModification0)/60).." min") if ((HeureActuelle['hour']>= 18 or HeureActuelle['hour'] <= 7) and ( tonumber(fibaro:getValue(92, "value")) > 0 ) and ( tonumber(fibaro:getValue(94, "value")) <= 10 ) ) then fibaro:call(29, "turnOn"); fibaro:sleep(60*1000); end if (( tonumber(fibaro:getValue(92, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 60) then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(29, "turnOff") end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 5 septembre 2015 Auteur Signaler Partager Posté(e) le 5 septembre 2015 Comme ça c'est mieux --[[ %% properties 92 value 94 value %% globals --]] local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(92, "value"); local HeureActuelle = os.date("*t"); if (fibaro:countScenes() > 1) then fibaro:abort() end; fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min']) fibaro:debug("le capteur est safe depuis : "..((os.time() - deviceLastModification0)/60).." min") if ((HeureActuelle['hour']>= 18 or HeureActuelle['hour'] <= 7) and ( tonumber(fibaro:getValue(92, "value")) > 0 ) and ( tonumber(fibaro:getValue(94, "value")) <= 10 ) ) then fibaro:call(29, "turnOn"); fibaro:sleep(60*1000); end if (( tonumber(fibaro:getValue(92, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 60) then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(29, "turnOff") end Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 5 septembre 2015 Signaler Partager Posté(e) le 5 septembre 2015 et pourquoi pas en GEA ? => 2 lignes GEA.add ({id["détecteur_mvt"], {"Value-", id["lix"], 10}}, -1, "Allumer lumière", {{"Time", "18:00", "07:00"}, {"turnOn",id["Lampe"]}}) GEA.add (id["détecteur_mvt"], 1*60, "Eteindre lampe car pas mouvement depuis #duration#", {{"Inverse"}, {"turnOff", id["Lampe]}}) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 5 septembre 2015 Auteur Signaler Partager Posté(e) le 5 septembre 2015 ah cher Jojo, Salut à toi Pas GEA parce que je ne m'y suis tout simplement pas mis et j'ai envie d'apprendre à coder en LUA. Qu'en pense tu ? 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 5 septembre 2015 Signaler Partager Posté(e) le 5 septembre 2015 le meilleur verdict, est est-ce que ça fonctionne ou pas ? Je t'avoue ne pas avoir essayer de comprendre toutes la logique que tu as mise en place (pas fait de rétro-engineering). Maintenant de ce que j'ai lu, c'est propre et clair. Peut-être une petite remarque pour encore plus de lisibilité. assigne pour chaque device une variable locale au début, comme ça en plus si tu veux partager ton code ou que l'id d'un d"vice change, c'est plus simple Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 5 septembre 2015 Auteur Signaler Partager Posté(e) le 5 septembre 2015 pas faux !! je vais faire ça ... A priori ça fonctionne bien .. à part 1 fois où la lampe est restée toute la nuit et je ne sais pas pourquoi. Est ce que je dois mettre un fibaro:getSourceTrigger en début de code ? j'avoue ne pas bien comprendre l'utilité de cette commande. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 5 septembre 2015 Signaler Partager Posté(e) le 5 septembre 2015 non, le fibaro:getSourceTrigger est utile si tu veux connaitre l'origine du démarrage de la scène Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 5 septembre 2015 Signaler Partager Posté(e) le 5 septembre 2015 meme avis que @jojo sur les id des devices sinon code tres comprehensible.. Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 5 septembre 2015 Signaler Partager Posté(e) le 5 septembre 2015 Enfin des gens qui veulent apprendre le lua c'est cool @jojo arrête des les détourner vers GEA Grrrrr Je sur mon téléphone donc pas simple àlire Il faudrait ajouter un test pour qu'en cas de problème la lampe s'éteigne du style si allumé depuis une heure on refait un test de présence Envoyé de mon SM-G900F en utilisant Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 6 septembre 2015 Auteur Signaler Partager Posté(e) le 6 septembre 2015 Putain de module !! 66% de batterie hier à 16h et d'un seul coup vers 18h... rideau !! module éteint. Je comprends rien j'ai dà» merder sur un paramètre parce que j'en ai un autre dans mons salon qui lui fonctionne toujours depuis plus de 6 mois sans soucis !!! et le pire c'est que le niveau de la batterie est à ... 100 % !!!! plus qu'à racheter une stock de pile à 10 balles la pile.... Sinon je viens de voir sur un autre sujet @mprinfo, tu demandais les paramètres du module pour que cela remonte les bonnes infos. moi j'ai fait ça Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés