Aller au contenu

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


Messages recommandés

Posté(e)

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.

Posté(e)

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

Posté(e)

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.

Posté(e)

Merci pour vos réponses, dans les barres verte on peut également indiquer en seconde ? Je peux sans autre indiqué 120s ? Ou uniquement 120 ? Je pensais que c'était uniquement prévu pour l'intensité.

Envoyé de mon MI 3W en utilisant Tapatalk

Posté(e)

En scène bloc ,ça me paraît difficile voir pas possible (en connaissances de causes :/)

Pour que ça fonctionne tu dois passer par du code

Posté(e) (modifié)

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 "<>" )
Posté(e)

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.  ;)

Posté(e)

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 

Posté(e)

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.

Posté(e)

@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

Posté(e)

@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.

Posté(e)

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.

Posté(e)

Steven c'est un exemple, après àlui de mettre une boucle s'il veut vérifier que la lumière s'allume ou d'enlever le code pour le ventilateur.

  • 2 semaines après...
Posté(e)

Salut Steven,

 

Merci pour ton lien et ton magnifique travail, je garde ça sous le coude, car je risque d'en avoir besoin pour d'autre cas de figure...

 

Sinon je confirme, ma méthode marche tip top :)

  • Upvote 1
×
×
  • Créer...