(Fichier domo91.py restructuré)
This commit is contained in:
56
domo91.py
56
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.")
|
||||
|
||||
Reference in New Issue
Block a user