Problème execution .py dans terminal
Posté : ven. 2 juil. 2021 09:32
Bonjour à tous,
Je suis sur un projet de fermeture automatique d'une trappe suivant l'heure de coucher du soleil.
J'ai un programme qui défini l'heure théorique de coucher du soleil. Variable que j'ai appelé "heure_de_fermeture"
Une fois l'heure défini je la compare à l'heure actuelle dans une boucle while, si l'heure_actuelle_new est >= à l'heure_de_fermeture je ferme la trappe.
Dans cette boucle while si la condition est ok, alors je lance un programme de fermeture.
Pour être sur de ne pas louper l'heure de coucher en hiver j’exécute le programme automatiquement avec crontab tout les jours à 16h.
Et c'est la que ça pose problème!
Prenons pour exemple l'heure de fermeture que le programme à calculé il y a quelques jours: 21h53
Le programme est bien exécuté à 16h, il tourne correctement et la trappe se ferme, mais surprise il n'est que 21h00.
Je ré ouvre la trappe, j’exécute le programme dans le terminal et la trappe se ferme de nouveau alors qu'il n'est toujours pas 21h53.
Je ré ouvre la trappe de nouveau
Je décide d'ouvrir le programme avec le logiciel Python du raspberry et je fait "run", la le programme fonctionne et ferme la trappe à 21h53.
Le lendemain même problème ...
Du coup après plusieurs essais le programme fonctionne avec le logiciel Python, mais si il est exécuté dans le terminal ou automatiquement avec crontab la porte se ferme avant l'heure demandée.
Et la je bloque, avez vous des idées?
Ci-dessous une photo du code de la boucle.
Merci d'avance
#Comparaison des heures pour fermeture de la porte
while True:
___date = datetime.datetime.now ()
___heure_actuelle_new = date.hour + (date.minute/60)
___print('Il est:',date.hour,":",date.minute)
___if heure_actuelle_new >= heure_fermeture :
_____print('Fermeture')
_____subprocess.call([sys.executable, "fermeture.py"])
_____sys.exit()
___print('Ce n est pas l heure')
___time.sleep(60)
Je suis sur un projet de fermeture automatique d'une trappe suivant l'heure de coucher du soleil.
J'ai un programme qui défini l'heure théorique de coucher du soleil. Variable que j'ai appelé "heure_de_fermeture"
Une fois l'heure défini je la compare à l'heure actuelle dans une boucle while, si l'heure_actuelle_new est >= à l'heure_de_fermeture je ferme la trappe.
Dans cette boucle while si la condition est ok, alors je lance un programme de fermeture.
Pour être sur de ne pas louper l'heure de coucher en hiver j’exécute le programme automatiquement avec crontab tout les jours à 16h.
Et c'est la que ça pose problème!
Prenons pour exemple l'heure de fermeture que le programme à calculé il y a quelques jours: 21h53
Le programme est bien exécuté à 16h, il tourne correctement et la trappe se ferme, mais surprise il n'est que 21h00.
Je ré ouvre la trappe, j’exécute le programme dans le terminal et la trappe se ferme de nouveau alors qu'il n'est toujours pas 21h53.
Je ré ouvre la trappe de nouveau
Je décide d'ouvrir le programme avec le logiciel Python du raspberry et je fait "run", la le programme fonctionne et ferme la trappe à 21h53.
Le lendemain même problème ...
Du coup après plusieurs essais le programme fonctionne avec le logiciel Python, mais si il est exécuté dans le terminal ou automatiquement avec crontab la porte se ferme avant l'heure demandée.
Et la je bloque, avez vous des idées?
Ci-dessous une photo du code de la boucle.
Merci d'avance
#Comparaison des heures pour fermeture de la porte
while True:
___date = datetime.datetime.now ()
___heure_actuelle_new = date.hour + (date.minute/60)
___print('Il est:',date.hour,":",date.minute)
___if heure_actuelle_new >= heure_fermeture :
_____print('Fermeture')
_____subprocess.call([sys.executable, "fermeture.py"])
_____sys.exit()
___print('Ce n est pas l heure')
___time.sleep(60)