From c91d5b561262c30f8a3ac3330502cd44a038f7e4 Mon Sep 17 00:00:00 2001 From: Michel Date: Sun, 20 Apr 2025 08:55:53 +0200 Subject: [PATCH] Fichiers suivis par logs --- Cuisine_meudon.py | 81 +++++++++++++++++++++++++++++++++-------------- Cuisine_saclay.py | 81 +++++++++++++++++++++++++++++++++-------------- 2 files changed, 116 insertions(+), 46 deletions(-) diff --git a/Cuisine_meudon.py b/Cuisine_meudon.py index e8c1b05..90213ac 100644 --- a/Cuisine_meudon.py +++ b/Cuisine_meudon.py @@ -1,30 +1,65 @@ import paho.mqtt.client as mqttClient -client = mqttClient.Client() import mysql.connector import sys -sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages") +import os +import logging +from datetime import datetime -# Configuration de la connexion MySQL -mydb = mysql.connector.connect( - host="54.36.188.119", - user="michel", - password="#SO2&1nf%mZ@jfh", - database="Sondes" +# 📁 Création du dossier de logs s'il n'existe pas +dossier_logs = "/var/log/Cuisine_Meudon" +os.makedirs(dossier_logs, exist_ok=True) + +# 📝 Configuration du logger +logfile = os.path.join(dossier_logs, "Cuisine_Meudon.log") +logging.basicConfig( + filename=logfile, + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s" ) -# Fonction de callback quand un message est reçu -def on_message(_client, _userdata, msg): - print(f"Message reçu sur {msg.topic}: {msg.payload.decode()}") - cursor = mydb.cursor() - frigo_name = msg.topic.split('/')[-1] # Prend la dernière partie après le "/" - sql = "INSERT INTO Meudon (Sonde, Temperature) VALUES (%s, %s)" - val = (frigo_name, msg.payload.decode()) - cursor.execute(sql, val) - mydb.commit() +# Ajoute aussi un affichage console si utile : +console = logging.StreamHandler() +console.setLevel(logging.INFO) +formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") +console.setFormatter(formatter) +logging.getLogger('').addHandler(console) -# Configuration du client MQTT -client.username_pw_set("Bwps", "scJ5ACj2keRfI^") -client.on_message = on_message -client.connect("54.36.188.119", 1883, 60) -client.subscribe("Meudon/#") # S'abonner à tous les topics commençant par Saclay -client.loop_forever() # Rester connecté en continu pour écouter les messages +# 🔌 Connexion MySQL +try: + sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages") + mydb = mysql.connector.connect( + host="54.36.188.119", + user="michel", + password="#SO2&1nf%mZ@jfh", + database="Sondes" + ) + logging.info("Connexion MySQL réussie.") +except mysql.connector.Error as err: + logging.error(f"Erreur de connexion MySQL : {err}") + sys.exit(1) + +# 📥 Callback MQTT +def on_message(_client, _userdata, msg): + try: + logging.info(f"Message reçu sur {msg.topic}: {msg.payload.decode()}") + cursor = mydb.cursor() + frigo_name = msg.topic.split('/')[-1] + sql = "INSERT INTO Meudon (Sonde, Temperature) VALUES (%s, %s)" + val = (frigo_name, msg.payload.decode()) + cursor.execute(sql, val) + mydb.commit() + logging.info(f"Insertion réussie : {val}") + except Exception as e: + logging.error(f"Erreur lors de l'insertion du message : {e}") + +# 📡 Connexion MQTT +try: + client = mqttClient.Client() + client.username_pw_set("Bwps", "scJ5ACj2keRfI^") + client.on_message = on_message + client.connect("54.36.188.119", 1883, 60) + client.subscribe("Meudon/#") + logging.info("Connexion MQTT réussie et abonnement au topic 'Meudon/#'.") + client.loop_forever() +except Exception as e: + logging.error(f"Erreur MQTT : {e}") diff --git a/Cuisine_saclay.py b/Cuisine_saclay.py index 4e68428..c194121 100644 --- a/Cuisine_saclay.py +++ b/Cuisine_saclay.py @@ -1,30 +1,65 @@ import paho.mqtt.client as mqttClient -client = mqttClient.Client() import mysql.connector import sys -sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages") +import os +import logging +from datetime import datetime -# Configuration de la connexion MySQL -mydb = mysql.connector.connect( - host="54.36.188.119", - user="michel", - password="#SO2&1nf%mZ@jfh", - database="Sondes" +# 📁 Création du dossier de logs s'il n'existe pas +dossier_logs = "/var/log/Cuisine_Saclay" +os.makedirs(dossier_logs, exist_ok=True) + +# 📝 Configuration du logger +logfile = os.path.join(dossier_logs, "Cuisine_Saclay.log") +logging.basicConfig( + filename=logfile, + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s" ) -# Fonction de callback quand un message est reçu -def on_message(_client, _userdata, msg): - print(f"Message reçu sur {msg.topic}: {msg.payload.decode()}") - cursor = mydb.cursor() - frigo_name = msg.topic.split('/')[-1] # Prend la dernière partie après le "/" - sql = "INSERT INTO Saclay (Sonde, Temperature) VALUES (%s, %s)" - val = (frigo_name, msg.payload.decode()) - cursor.execute(sql, val) - mydb.commit() +# Ajoute aussi l'affichage console +console = logging.StreamHandler() +console.setLevel(logging.INFO) +formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") +console.setFormatter(formatter) +logging.getLogger('').addHandler(console) -# Configuration du client MQTT -client.username_pw_set("Bwps", "scJ5ACj2keRfI^") -client.on_message = on_message -client.connect("54.36.188.119", 1883, 60) -client.subscribe("Saclay/#") # S'abonner à tous les topics commençant par Saclay -client.loop_forever() # Rester connecté en continu pour écouter les messages +# 🔌 Connexion MySQL +try: + sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages") + mydb = mysql.connector.connect( + host="54.36.188.119", + user="michel", + password="#SO2&1nf%mZ@jfh", + database="Sondes" + ) + logging.info("Connexion MySQL réussie.") +except mysql.connector.Error as err: + logging.error(f"Erreur de connexion MySQL : {err}") + sys.exit(1) + +# 📥 Callback MQTT +def on_message(_client, _userdata, msg): + try: + logging.info(f"Message reçu sur {msg.topic}: {msg.payload.decode()}") + cursor = mydb.cursor() + frigo_name = msg.topic.split('/')[-1] + sql = "INSERT INTO Saclay (Sonde, Temperature) VALUES (%s, %s)" + val = (frigo_name, msg.payload.decode()) + cursor.execute(sql, val) + mydb.commit() + logging.info(f"Insertion réussie : {val}") + except Exception as e: + logging.error(f"Erreur lors de l'insertion du message : {e}") + +# 📡 Connexion MQTT +try: + client = mqttClient.Client() + client.username_pw_set("Bwps", "scJ5ACj2keRfI^") + client.on_message = on_message + client.connect("54.36.188.119", 1883, 60) + client.subscribe("Saclay/#") + logging.info("Connexion MQTT réussie et abonnement au topic 'Saclay/#'.") + client.loop_forever() +except Exception as e: + logging.error(f"Erreur MQTT : {e}")