Aller au contenu

Messages recommandés

Posté(e)

Voilàle code mise àjour avec tes remarques jojo. Mais j'ai du ajouter ajouter une condition < pour l'enclenchement pour que cela fonctionne.

J'ai ajouté également les variables début/fin pour plus de clairvoyance dans le code.

--[[
%% autostart
%% properties
%% globals
--]]

while true do
  local startTime = "21:00" --Heure de démarrage de la pompe
  local stopTime = "23:59" --Heure d'arrêt de la pompe
  
  local currentDate = os.date("*t");
  local triggerTime = string.format("%02d",currentDate.hour)..":"..string.format("%02d",currentDate.min);
  local triggerDay = currentDate.wday;
  local statutDevice = fibaro:getValue(22, "value");

  fibaro:debug("Contrôle conditions démarrage")
  fibaro:debug("Etat de la pompe de filtration: "..statutDevice)
  
  if statutDevice == "0" and (triggerTime >= startTime) and (triggerTime < stopTime) then
    fibaro:call(22, "turnOn");
    fibaro:debug("Démarrage pompe de filtration piscine");
        
    elseif statutDevice == "1" and (triggerTime >= stopTime) then
    fibaro:call(22, "turnOff");
    fibaro:debug("Arrêt pompe de filtration piscine"); 
  end
  
  fibaro:debug("Programme filtration piscine en stand-by");
  fibaro:sleep(60*1000);
end

Alors ça fonctionne très bien, sauf si je veux lancer la pompe à21h et la stopper le jour suivant. Car 1h sera plus petit que 21h, donc logiquement ça ne va pas fonctionner.

Je n'ai pas eu le temps de creuser, mais si quelqu'un a une idée, il est le bienvenu ;-)

Posté(e)

:74:

je modifierais légèrement le script pour qu'il ne réinitialise pas la valeur des variables de départ et d'arrêt àchaque boucle. (ok, ça ne changera rien au cours de l'histoire, mais c'est mieux)

--[[
%% autostart
%% properties
%% globals
--]]
 
  local startTime = "21:00" --Heure de démarrage de la pompe
  local stopTime = "23:59" --Heure d'arrêt de la pompe

 while true do
  local currentDate = os.date("*t");
  local triggerTime = string.format("%02d",currentDate.hour)..":"..string.format("%02d",currentDate.min);
  local triggerDay = currentDate.wday;
  local statutDevice = fibaro:getValue(22, "value");
 
  fibaro:debug("Contrôle conditions démarrage")
  fibaro:debug("Etat de la pompe de filtration: "..statutDevice)
 
  if statutDevice == "0" and (triggerTime >= startTime) and (triggerTime < stopTime) then
    fibaro:call(22, "turnOn");
    fibaro:debug("Démarrage pompe de filtration piscine");
 
    elseif statutDevice == "1" and (triggerTime >= stopTime) then
    fibaro:call(22, "turnOff");
    fibaro:debug("Arrêt pompe de filtration piscine"); 
  end
 
  fibaro:debug("Programme filtration piscine en stand-by");
  fibaro:sleep(60*1000);
end

je me creuse la tête pour ton histoire de 1h du matin

×
×
  • Créer...