Version fonctionnelle

This commit is contained in:
2025-08-20 15:23:01 +02:00
parent 7429fd466c
commit 4e5cd2ec74
5 changed files with 275 additions and 856 deletions

View File

@@ -1,23 +1,68 @@
import mysql.connector
from dotenv import load_dotenv
import os
import sys
import logging
def connect_to_mysql(db_name: str = None):
load_dotenv()
def connect_to_mysql():
return mysql.connector.connect(
host=os.getenv("DB_HOST"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
database=os.getenv("DB_NAME")
)
def get_latest_chaufferie():
conn = connect_to_mysql()
cursor = conn.cursor(dictionary=True)
query = """
SELECT Sonde, Temperature, Date, Topic
FROM Chaufferie
WHERE Date >= NOW() - INTERVAL 5 MINUTE
ORDER BY Date DESC
"""
Se connecte à MySQL. Par défaut, utilise la base spécifiée dans DB_NAME,
mais peut être redirigé vers une autre base en passant db_name.
cursor.execute(query)
result = cursor.fetchall()
cursor.close()
conn.close()
return result
def get_history_by_sonde(sonde):
conn = connect_to_mysql()
cursor = conn.cursor(dictionary=True)
query = """
SELECT Sonde, Temperature, Date
FROM Chaufferie
WHERE Sonde = %s
AND Date >= NOW() - INTERVAL 1 DAY
ORDER BY Date ASC
"""
try:
sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages") # à ajuster si inutile
mydb = mysql.connector.connect(
host=os.getenv("DB_HOST"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
database=db_name if db_name else os.getenv("DB_NAME")
)
logging.info(f"Connexion MySQL à la base {mydb.database} réussie.")
return mydb
except mysql.connector.Error as err:
logging.error(f"Erreur de connexion MySQL : {err}")
sys.exit(1)
cursor.execute(query, (sonde,))
result = cursor.fetchall()
cursor.close()
conn.close()
return result
def lire_alertes_sondes():
conn = connect_to_mysql()
cursor = conn.cursor(dictionary=True)
query = """
SELECT Id, Sonde, Debut_defaut, Etat
FROM Alertes_Chaufferie
WHERE Etat != 'Acquitté'
ORDER BY Debut_defaut DESC
"""
cursor.execute(query)
result = cursor.fetchall()
cursor.close()
conn.close()
return result
def acquitter_alerte(id_alerte):
conn = connect_to_mysql()
cursor = conn.cursor()
query = "UPDATE Alertes_Chaufferie SET Etat = 'Acquitté' WHERE Id = %s"
cursor.execute(query, (id_alerte,))
conn.commit()
cursor.close()
conn.close()