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:
2025-04-27 19:55:32 +02:00
parent 6939b9911c
commit 1f26f66226
2 changed files with 16 additions and 21 deletions

View File

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

View File

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