🛠 Mises à jour sécurisation et nettoyage de Monitor, domo91, scripts MQTT
This commit is contained in:
@@ -3,7 +3,10 @@ import mysql.connector
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
# Charger les variables d'environnement
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
# 📁 Création du dossier de logs s'il n'existe pas
|
# 📁 Création du dossier de logs s'il n'existe pas
|
||||||
dossier_logs = "/var/log/Cuisine_Meudon"
|
dossier_logs = "/var/log/Cuisine_Meudon"
|
||||||
@@ -28,10 +31,10 @@ logging.getLogger('').addHandler(console)
|
|||||||
try:
|
try:
|
||||||
sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages")
|
sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages")
|
||||||
mydb = mysql.connector.connect(
|
mydb = mysql.connector.connect(
|
||||||
host="54.36.188.119",
|
host=os.getenv("DB_HOST"),
|
||||||
user="michel",
|
user=os.getenv("DB_USER"),
|
||||||
password="#SO2&1nf%mZ@jfh",
|
password=os.getenv("DB_PASSWORD"),
|
||||||
database="Sondes"
|
database=os.getenv("DB_NAME")
|
||||||
)
|
)
|
||||||
logging.info("Connexion MySQL réussie.")
|
logging.info("Connexion MySQL réussie.")
|
||||||
except mysql.connector.Error as err:
|
except mysql.connector.Error as err:
|
||||||
|
|||||||
@@ -3,7 +3,10 @@ import mysql.connector
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
# Charger les variables d'environnement
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
# 📁 Création du dossier de logs s'il n'existe pas
|
# 📁 Création du dossier de logs s'il n'existe pas
|
||||||
dossier_logs = "/var/log/Cuisine_Saclay"
|
dossier_logs = "/var/log/Cuisine_Saclay"
|
||||||
@@ -28,10 +31,10 @@ logging.getLogger('').addHandler(console)
|
|||||||
try:
|
try:
|
||||||
sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages")
|
sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages")
|
||||||
mydb = mysql.connector.connect(
|
mydb = mysql.connector.connect(
|
||||||
host="54.36.188.119",
|
host=os.getenv("DB_HOST"),
|
||||||
user="michel",
|
user=os.getenv("DB_USER"),
|
||||||
password="#SO2&1nf%mZ@jfh",
|
password=os.getenv("DB_PASSWORD"),
|
||||||
database="Sondes"
|
database=os.getenv("DB_NAME")
|
||||||
)
|
)
|
||||||
logging.info("Connexion MySQL réussie.")
|
logging.info("Connexion MySQL réussie.")
|
||||||
except mysql.connector.Error as err:
|
except mysql.connector.Error as err:
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
# Purge de la table Sondes.Alertes_Saclay.
|
|
||||||
import mysql.connector
|
|
||||||
|
|
||||||
config = {
|
|
||||||
"host": "54.36.188.119",
|
|
||||||
"user": "michel",
|
|
||||||
"password": "#SO2&1nf%mZ@jfh",
|
|
||||||
"database": "Sondes"
|
|
||||||
}
|
|
||||||
|
|
||||||
conn = mysql.connector.connect(**config)
|
|
||||||
cursor = conn.cursor()
|
|
||||||
cursor.execute("DELETE FROM Alertes_Saclay WHERE Debut_defaut < NOW() - INTERVAL 7 DAY")
|
|
||||||
conn.commit()
|
|
||||||
cursor.close()
|
|
||||||
conn.close()
|
|
||||||
|
|
||||||
print("✅ Alertes de plus de 7 jours supprimées.")
|
|
||||||
35
Purge_alertes.py
Normal file
35
Purge_alertes.py
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Purges des entrées de toutes les tables dans la base Sondes qui commencent
|
||||||
|
# par Alertes_*** et qui sont agées de plus de sept jours.
|
||||||
|
import mysql.connector
|
||||||
|
import os
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
# Charger les variables d'environnement
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
config = {
|
||||||
|
"host": os.getenv("DB_HOST"),
|
||||||
|
"user": os.getenv("DB_USER"),
|
||||||
|
"password": os.getenv("DB_PASSWORD"),
|
||||||
|
"database": os.getenv("DB_NAME")
|
||||||
|
}
|
||||||
|
|
||||||
|
conn = mysql.connector.connect(**config)
|
||||||
|
cursor = conn.cursor()
|
||||||
|
|
||||||
|
# Récupérer toutes les tables d'alertes
|
||||||
|
cursor.execute("SHOW TABLES")
|
||||||
|
tables = [t[0] for t in cursor.fetchall()]
|
||||||
|
alertes_tables = [t for t in tables if t.startswith("Alertes_")]
|
||||||
|
|
||||||
|
# Appliquer la purge à chaque table
|
||||||
|
for table in alertes_tables:
|
||||||
|
query = f"DELETE FROM {table} WHERE Debut_defaut < NOW() - INTERVAL 7 DAY"
|
||||||
|
cursor.execute(query)
|
||||||
|
print(f"✅ Table {table} purgée.")
|
||||||
|
|
||||||
|
conn.commit()
|
||||||
|
cursor.close()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
|
print("🎉 Purge terminée pour toutes les alertes anciennes.")
|
||||||
25
domo91.py
25
domo91.py
@@ -1,4 +1,5 @@
|
|||||||
# Application Gestion de sondes
|
# Application Gestion de sondes
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
import streamlit as st
|
import streamlit as st
|
||||||
import mysql.connector
|
import mysql.connector
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
@@ -9,6 +10,10 @@ from fpdf import FPDF
|
|||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
import datetime
|
import datetime
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
# Charger les variables d'environnement
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
st.set_page_config(page_title="Domo91 - Surveillance", layout="wide")
|
st.set_page_config(page_title="Domo91 - Surveillance", layout="wide")
|
||||||
if "authenticated" not in st.session_state:
|
if "authenticated" not in st.session_state:
|
||||||
@@ -18,21 +23,19 @@ if "authenticated" not in st.session_state:
|
|||||||
|
|
||||||
st.title("📡 Supervision Températures")
|
st.title("📡 Supervision Températures")
|
||||||
|
|
||||||
# --- Configuration base de données ---
|
db_config ={
|
||||||
db_config = {
|
"host": os.getenv("DB_HOST"),
|
||||||
"host": "54.36.188.119",
|
"user": os.getenv("DB_USER"),
|
||||||
"user": "michel",
|
"password": os.getenv("DB_PASSWORD"),
|
||||||
"password": "#SO2&1nf%mZ@jfh",
|
"database": os.getenv("DB_NAME")
|
||||||
"database": "Sondes"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# --- Fonction de génération PDF ---
|
# --- Fonction de génération PDF ---
|
||||||
def generer_pdf(site, date_str):
|
def generer_pdf(site, date_str):
|
||||||
st.info(f"Génération du rapport PDF pour {site} à la date {date_str}")
|
st.info(f"Génération du rapport PDF pour {site} à la date {date_str}")
|
||||||
try:
|
try:
|
||||||
conn = mysql.connector.connect(**db_config)
|
conn = mysql.connector.connect(**db_config)
|
||||||
cursor = conn.cursor(dictionary=True)
|
pdf_cursor = conn.cursor(dictionary=True)
|
||||||
|
|
||||||
cursor.execute(f"SELECT Sonde, Date, Temperature FROM `{site}` WHERE DATE(Date) = %s ORDER BY Sonde, Date",
|
cursor.execute(f"SELECT Sonde, Date, Temperature FROM `{site}` WHERE DATE(Date) = %s ORDER BY Sonde, Date",
|
||||||
(date_str,))
|
(date_str,))
|
||||||
@@ -105,8 +108,8 @@ def generer_pdf(site, date_str):
|
|||||||
mime="application/pdf"
|
mime="application/pdf"
|
||||||
)
|
)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as err1:
|
||||||
st.error(f"Erreur lors de la génération du PDF : {e}")
|
st.error(f"Erreur lors de la génération du PDF : {err1}")
|
||||||
|
|
||||||
|
|
||||||
# --- Initialisation des variables de session ---
|
# --- Initialisation des variables de session ---
|
||||||
@@ -401,7 +404,7 @@ if st.session_state["authenticated"]:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
st.error(f"Erreur lors de la récupération des alertes : {e}")
|
st.error(f"Erreur lors de la récupération des alertes : {e}")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as err:
|
||||||
st.error(f"Erreur MySQL : {e}")
|
st.error(f"Erreur MySQL : {e}")
|
||||||
if st.session_state["role"] == "superviseur":
|
if st.session_state["role"] == "superviseur":
|
||||||
with st.expander("+ Ajouter une nouvelle chambre froide", expanded=False):
|
with st.expander("+ Ajouter une nouvelle chambre froide", expanded=False):
|
||||||
|
|||||||
Reference in New Issue
Block a user