Amélioration de la vérification de la connectivité Internet avec un ping vers 8.8.8.8 et suppression de la vérification de connexion dans le script principal.
This commit is contained in:
16
Automate.py
16
Automate.py
@@ -23,21 +23,6 @@ def main():
|
||||
logging.info("==================== AUTOMATISATION TIMELAPSE ====================")
|
||||
|
||||
try:
|
||||
# Vérifier la connectivité Internet avant de continuer
|
||||
if not api_client.check_connection():
|
||||
logging.warning("Connexion Internet perdue. Tentative de rétablissement...")
|
||||
from timelapse.sensors import micro_controller
|
||||
micro_controller.reconnect_wifi()
|
||||
|
||||
if not api_client.check_connection():
|
||||
logging.error("Impossible de rétablir la connexion Internet. Passage en mode hors ligne.")
|
||||
online_status = False
|
||||
else:
|
||||
logging.info("Connexion Internet rétablie avec succès.")
|
||||
online_status = True
|
||||
else:
|
||||
online_status = True
|
||||
|
||||
# Récupérer le statut de la caméra depuis l'API
|
||||
camera_status = api_client.get_camera_status()
|
||||
|
||||
@@ -66,6 +51,7 @@ def main():
|
||||
|
||||
# Prendre une image et l'envoyer
|
||||
logging.info("Prise d'image en mode maintenance pour projet en cours")
|
||||
online_status = api_client.check_connection()
|
||||
timelapse_manager.single_capture(online=online_status)
|
||||
|
||||
# Décrémenter le compteur d'images restantes
|
||||
|
||||
@@ -11,6 +11,8 @@ import logging
|
||||
import requests
|
||||
from requests.exceptions import RequestException
|
||||
from .config import config
|
||||
import subprocess
|
||||
import platform
|
||||
|
||||
|
||||
class APIClient:
|
||||
@@ -131,16 +133,23 @@ class APIClient:
|
||||
return False
|
||||
|
||||
def check_connection(self):
|
||||
"""Vérifie la connectivité Internet en effectuant un ping vers l'API."""
|
||||
"""Vérifie la connectivité Internet en effectuant un ping vers 8.8.8.8."""
|
||||
|
||||
try:
|
||||
response = requests.get(self.base_url, headers=self.headers, timeout=5)
|
||||
if response.status_code == 200:
|
||||
logging.info("Connectivité Internet vérifiée avec succès")
|
||||
# Définir la commande ping en fonction du système d'exploitation
|
||||
param = '-n' if platform.system().lower() == 'windows' else '-c'
|
||||
command = ['ping', param, '1', '8.8.8.8']
|
||||
|
||||
# Exécuter la commande ping
|
||||
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=5)
|
||||
|
||||
if result.returncode == 0:
|
||||
logging.info("Connectivité Internet vérifiée avec succès (ping 8.8.8.8)")
|
||||
return True
|
||||
else:
|
||||
logging.warning(f"Connectivité Internet non disponible: {response.status_code}")
|
||||
logging.warning("Connectivité Internet non disponible (échec du ping)")
|
||||
return False
|
||||
except RequestException as e:
|
||||
except Exception as e:
|
||||
logging.error(f"Erreur lors de la vérification de la connectivité: {e}")
|
||||
return False
|
||||
|
||||
|
||||
Reference in New Issue
Block a user