Aller au contenu

Activation D'un Module Si Lumière Allumée Pendant X Sec ?


oufman

Messages recommandés

Bonjour à  tous,

 

Tout est dans le titre.

 

J'aimerai pouvoir lancer la ventilation si ma lumière est allumée depuis 2 min par exemple.

 

C'est possible en bloc ?

 

J'arrive pas trop à  voir dans quel sens executer cette règle.

 

D'avance merci.

 

Bonne soirée à  tous.

Lien vers le commentaire
Partager sur d’autres sites

Salut Oufman

 

essaye un truc comme çà  remplace volet de cuisine par ta ventilation ensuite tu peux programmer l’arrêt en ajoutant un bloc style ventilation éteindre 240s elle tournera pendant 2 mn

Lien vers le commentaire
Partager sur d’autres sites

bonjour oufman

 

sur les modules,,,la barre verte sert pour indiquer l'action pendant x temps, en rouge l'action après x temps.

 

tu fais en bloc,,, module lumière dans le vert 120sec alors module vmc on.

 

dans ce cas tu dois aussi faire une scène inverse, et de laisser un petit délai pour éviter les on/off intempestif de la lumière, quand lumière off (dans vert 60sec) alors vmc off.

Lien vers le commentaire
Partager sur d’autres sites

on pourrait penser a créer une scene de ce type en code lua

 

--[[
%% autostart
%% properties
%% globals
--]]
local light = 34; -- l'ID de votre lumiere
local ventilateur = 47; -- l'ID de votre ventilateur


while true do
   if (tonumber(fibaro:getValue(light, "value")) == 99)
   then
    fibaro:sleep(60000); -- delais de 2 minutes
    fibaro:call(ventilateur, 'turnOn');
   end 
   fibaro:sleep(60000); -- on vérifie apres 2 min
   
  if (tonumber(fibaro:getValue(light, "value")) == 0)
 then 
   fibaro:call(ventilateur, 'turnOff');
  end
end
 
 
ce qui donne concrètement 
 
si la lumière est allumée depuis 2 minutes alors on allume le ventilateur pour 2 minutes
si après ces 2 minutes la lumière est éteinte alors on éteint le ventilateur
si la lumière est toujours allumée on repart pour 2 minutes de patience
jusqu’à  ce que la lumière soit éteinte. une fois celle ci eteinte, le ventilateur s’éteindra aussi
 
En espérant que cela vous aidera
 
Coolride.
Modifié par Coolride
Merci d'utiliser l'éditeur de code ( bouton "<>" )
Lien vers le commentaire
Partager sur d’autres sites

Non ton code n'est absolument pas bon, comment tu veux démarrer ta scène si tu ne récupères pas la valeur.

En plus je veux pas dire, ton dimmer va prendre cher avec des doubles mouvements d'affiler à  chaque fois que tu allumes la lumières.

 

essaye plus un truc comme sa

--[[
%% properties
34 value
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
local light = 34; -- l'ID de votre lumiere
local ventilateur = 47; -- l'ID de votre ventilateur

if (startSource['type']=='property') then
  if (tonumber(fibaro:getValue(light, "value")) > 0) then
    fibaro:sleep(120*1000); -- delais de 2 minutes
    if (tonumber(fibaro:getValue(light, "value")) > 0) then
      fibaro:call(ventilateur, 'turnOn');
    end
  else
    if (tonumber(fibaro:getValue(ventilateur, "value")) == 1) then
      fibaro:call(ventilateur, 'turnOff');
    end
  end
end

Je n'ai pas testé, je l'ai fais en moins de 5 min sans contrôler.  ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir Shad,

 

Effectivement ton code semble bien plus optimisé... j'ai fait quelques tests avec le mien et cela fonctionnait aussi si ce n'est que ma boucle chargeait pas mal la box.

 

Cependant je vois pas a quoi sert la ligne suivante ni ce qu'elle récupère.

 

  1. local startSource = fibaro:getSourceTrigger();

elle va de paire avec

 

  1. if (startSource['type']=='property') then

 

étant ici pour apprendre autant que les autres, pourrais-tu m'éclairer  ?

 

bien à  toi

 

Coolride 

Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos codes, je vais testé demain pour voir ce que ça donne.

 

Il me semblais bien que avec les blocs ça paraissait bizzare la méthode proposée... mais j'avais un peu d'espoir de passer sans LUA.

 

Merci pour votre aide :)

 

Bonne soirée.

Lien vers le commentaire
Partager sur d’autres sites

@Coolride: Premièrement ta scène tourne en permanence et attend que la lumière soit allumé, c'est là  qu'intervient le code que tu vois.

En mettant à  la place de %%autostart  id value en haut, la scène démarre lorsque le device change d'état.

Ensuite le code que tu demande te permet de vérifier quel id à  changer d'état, donc sa te permet de faire une scène général d'association et de regroupé plusieurs module.

Regarde ici si tu veux plus d'information:

http://www.domotique-fibaro.fr/index.php/topic/194-lua-le%C3%A7on-2-%E2%80%93-association-de-modules/#entry1147

Lien vers le commentaire
Partager sur d’autres sites

@Shad,

 

 

En effet c'est bien plus clair maintenant.  :)  J'irai dormir moins bête ce soir  grâce toi !

 

Merci encore pour cette explication. je vais lire attentivement les leçons.

 

Bien à  toi

 

Coolride.

Lien vers le commentaire
Partager sur d’autres sites

Aucun de ces codes n'est vraiment optimale car on ne vérifie jamais l'état de la lumière pendant ces 2 minutes. Si la lumière est allumée 3 fois pendant ces deux minutes, cela risque de faire un peu discothèque àla maison :)

De plus, il n'est pas demandé d'éteindre la ventilation si la lumière est éteint.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
×
×
  • Créer...