Aller au contenu

Allumage Lampe Sur Détection De Mouvement


Yannick

Recommended Posts

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 !!!

 

 

  1.  
  2. --[[
  3. %% properties
  4. 92 value
  5. 94 value
  6. %% globals
  7. --]]
  8.  
  9. local delayedCheck0 = false;
  10. local tempDeviceState0, deviceLastModification0 = fibaro:get(92, "value");
  11. local HeureActuelle = os.date("*t");
  12.  
  13. if (fibaro:countScenes() > 1) then fibaro:abort() end;
  14.  
  15. fibaro:debug("Il est "..HeureActuelle['hour']..":"..HeureActuelle['min'])
  16. fibaro:debug("le capteur est safe depuis : "..((os.time() - deviceLastModification0)/60).." min")
  17. if ((HeureActuelle['hour']>= 18 or HeureActuelle['hour'] <= 7)
  18. and
  19. ( tonumber(fibaro:getValue(92, "value")) > 0 )
  20. and
  21. ( tonumber(fibaro:getValue(94, "value")) <= 10 )
  22. )
  23. then
  24.     fibaro:call(29, "turnOn");
  25. fibaro:sleep(60*1000);
  26. end
  27.  
  28. if (( tonumber(fibaro:getValue(92, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 60)
  29. then
  30.     delayedCheck0 = true;
  31. end
  32. if
  33. ( delayedCheck0 == true )
  34. then
  35. fibaro:call(29, "turnOff")
  36. end
Lien vers le commentaire
Partager sur d’autres sites

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

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

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

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

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

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

×
×
  • Créer...