From 3c9bf70297d1239d8122d7053f020469a175650e Mon Sep 17 00:00:00 2001 From: Michel Date: Thu, 17 Apr 2025 19:25:53 +0200 Subject: [PATCH] =?UTF-8?q?=20(Fichier=20domo91.py=20restructur=C3=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- domo91.py | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/domo91.py b/domo91.py index 4473fe9..660249d 100644 --- a/domo91.py +++ b/domo91.py @@ -171,6 +171,20 @@ if st.session_state["authenticated"]: sonde_choisie = st.selectbox("🧪 Choisissez une sonde :", sondes) df_sonde = df[df["Sonde"] == sonde_choisie] + # Ajouter une colonne Heure pour faciliter les filtres + df_sonde["Heure"] = df_sonde["Date"].dt.hour + + # Filtrage par tranche horaire + tranche = st.radio("🕒 Tranche horaire :", + ["Toute la journée", "Matin (6h-12h)", "Après-midi (12h-18h)", "Nuit (18h-6h)"]) + + if tranche == "Matin (6h-12h)": + df_sonde = df_sonde[(df_sonde["Heure"] >= 6) & (df_sonde["Heure"] < 12)] + elif tranche == "Après-midi (12h-18h)": + df_sonde = df_sonde[(df_sonde["Heure"] >= 12) & (df_sonde["Heure"] < 18)] + elif tranche == "Nuit (18h-6h)": + df_sonde = df_sonde[(df_sonde["Heure"] >= 18) | (df_sonde["Heure"] < 6)] + cursor.execute("SELECT Temp_Max FROM Chambres_froides WHERE Lieu = %s AND Sonde = %s", (site_selectionne, sonde_choisie)) seuil = cursor.fetchone() seuil_temp = seuil["Temp_Max"] if seuil else 10 @@ -178,7 +192,21 @@ if st.session_state["authenticated"]: st.subheader("📊 Tableau des relevés") df_filtré = df_sonde.copy() df_filtré = df_filtré.drop(columns="Id", errors="ignore") - st.dataframe(df_filtré, use_container_width=True) + + + def surlignage_temp(val): + try: + if float(val) > seuil_temp: + return "color: red; font-weight: bold" + except: + pass + return "" + + + # Appliquer le style uniquement à la colonne "Temperature" + styled_df = df_filtré.style.applymap(surlignage_temp, subset=["Temperature"]) + + st.dataframe(styled_df, use_container_width=True) st.subheader("📈 Évolution de la température") fig, ax = plt.subplots(figsize=(10, 4)) @@ -190,6 +218,32 @@ if st.session_state["authenticated"]: ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M')) ax.legend() st.pyplot(fig) + # --- Affichage des alertes du jour --- + afficher_alertes = st.toggle("🚨 Afficher les alertes du jour") + + if afficher_alertes: + try: + conn = mysql.connector.connect(**db_config) + cursor = conn.cursor(dictionary=True) + + table_alertes = f"Alertes_{site_selectionne}" + cursor.execute( + f"SELECT Sonde, Debut_defaut, Status FROM `{table_alertes}` WHERE DATE(Debut_defaut) = %s", + (selected_date.strftime("%Y-%m-%d"),) + ) + alertes = cursor.fetchall() + + if alertes: + df_alertes = pd.DataFrame(alertes) + st.subheader("🚨 Alertes enregistrées") + st.dataframe(df_alertes, use_container_width=True) + else: + st.info("Aucune alerte enregistrée pour cette date.") + + cursor.close() + conn.close() + except Exception as e: + st.error(f"Erreur lors de la récupération des alertes : {e}") else: st.warning("Aucune donnée trouvée pour cette date.")