Version fonctionnelle
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user