emanet Posté(e) le 20 août 2015 Auteur Signaler Posté(e) le 20 août 2015 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 ;-)
jojo Posté(e) le 20 août 2015 Signaler Posté(e) le 20 août 2015 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
Messages recommandés