diff --git a/.idea/misc.xml b/.idea/misc.xml
index b9974a8..262feb4 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -7,4 +7,7 @@
+
+
+
\ No newline at end of file
diff --git a/app/Monitor_Meudon.py b/app/Monitor_Meudon.py
index 46cd8db..f6423f8 100644
--- a/app/Monitor_Meudon.py
+++ b/app/Monitor_Meudon.py
@@ -103,7 +103,7 @@ def insert_gyro_log(lieu: str, etat: str, topic: str, payload_raw: str,
try:
cur = cnx.cursor()
cur.execute(
- "INSERT INTO `Gyro` (Lieu, Sonde, Etat, Date, Topic, Payload, QoS, Retained) "
+ "INSERT INTO Sondes.Gyro (Lieu, Sonde, Etat, Date, Topic, Payload, QoS, Retained) "
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
(
lieu,
@@ -124,7 +124,7 @@ def insert_gyro_log(lieu: str, etat: str, topic: str, payload_raw: str,
cnx.close()
def should_insert_gyro(lieu: str, etat: str, sonde: str = "Gyro") -> bool:
- sql = "SELECT Etat FROM `Gyro` WHERE Lieu=%s AND Sonde=%s ORDER BY Date DESC LIMIT 1"
+ sql = "SELECT Etat FROM Sondes.Gyro WHERE Lieu=%s AND Sonde=%s ORDER BY Date DESC LIMIT 1"
cnx = get_db()
try:
cur = cnx.cursor()
@@ -170,7 +170,7 @@ def lire_cfg_chambres(site: str):
"""
sql = """
SELECT Sonde, Temp_Max, Etat, En_entretien
- FROM Chambres_froides
+ FROM Sondes.Chambres_froides
WHERE Lieu=%s
"""
cnx = get_db()
@@ -208,7 +208,7 @@ def compute_site_alarm(last_values: list[dict], cfg: dict[str, dict], hysteresis
def lire_seuils_depuis_db(site: str):
sql = """
SELECT Sonde, Temp_Max
- FROM Chambres_froides
+ FROM Sondes.Chambres_froides
WHERE Lieu=%s AND Etat='ON'
"""
cnx = get_db()
@@ -791,7 +791,8 @@ class GyroPulseController:
log.info("Gyro → ON déclenché par %s: %.2f > %.2f (mode %s)",
s, t, se, "CONTINU" if os.getenv("GYRO_MODE_CONTINUOUS","1")=="1" else "PULSE")
# SMS alerte immédiat
- self._send_alert_sms(trigger)
+ if os.getenv("ALERT_INTERNAL_SMS_ENABLED", "0") == "1":
+ self._send_alert_sms(trigger)
elif self.state == _GyroState.PULSE_ON:
if not active:
@@ -802,7 +803,8 @@ class GyroPulseController:
self._normal_count = 0
log.info("Gyro → OFF (retour à la normale confirmé)")
# SMS OK immédiat
- self._send_ok_sms_from_last_trigger()
+ if os.getenv("ALERT_OK_SMS_GYRO", "0") == "1":
+ self._send_ok_sms_from_last_trigger()
else:
self._normal_count = 0
if os.getenv("GYRO_MODE_CONTINUOUS", "1") != "1":
diff --git a/app/Monitor_Saclay.py b/app/Monitor_Saclay.py
index cc0ff46..4dc42e5 100644
--- a/app/Monitor_Saclay.py
+++ b/app/Monitor_Saclay.py
@@ -170,7 +170,7 @@ def lire_cfg_chambres(site: str):
"""
sql = """
SELECT Sonde, Temp_Max, Etat, En_entretien
- FROM Chambres_froides
+ FROM Sondes.Chambres_froides
WHERE Lieu=%s
"""
cnx = get_db()
@@ -208,7 +208,7 @@ def compute_site_alarm(last_values: list[dict], cfg: dict[str, dict], hysteresis
def lire_seuils_depuis_db(site: str):
sql = """
SELECT Sonde, Temp_Max
- FROM Chambres_froides
+ FROM Sondes.Chambres_froides
WHERE Lieu=%s AND Etat='ON'
"""
cnx = get_db()
@@ -789,9 +789,10 @@ class GyroPulseController:
if trigger:
s, t, se = trigger
log.info("Gyro → ON déclenché par %s: %.2f > %.2f (mode %s)",
- s, t, se, "CONTINU" if os.getenv("GYRO_MODE_CONTINUOUS","1")=="1" else "PULSE")
- # SMS alerte immédiat
- self._send_alert_sms(trigger)
+ s, t, se, "CONTINU" if os.getenv("GYRO_MODE_CONTINUOUS", "1") == "1" else "PULSE")
+ # SMS alerte immédiat (optionnel)
+ if os.getenv("ALERT_INTERNAL_SMS_ENABLED", "0") == "1":
+ self._send_alert_sms(trigger)
elif self.state == _GyroState.PULSE_ON:
if not active:
@@ -802,7 +803,8 @@ class GyroPulseController:
self._normal_count = 0
log.info("Gyro → OFF (retour à la normale confirmé)")
# SMS OK immédiat
- self._send_ok_sms_from_last_trigger()
+ if os.getenv("ALERT_OK_SMS_GYRO", "0") == "1":
+ self._send_ok_sms_from_last_trigger()
else:
self._normal_count = 0
if os.getenv("GYRO_MODE_CONTINUOUS", "1") != "1":
diff --git a/app/domo91.py b/app/domo91.py
index 55d7902..e1481c1 100644
--- a/app/domo91.py
+++ b/app/domo91.py
@@ -12,7 +12,10 @@ import pandas as pd
pd.set_option('future.no_silent_downcasting', True)
import streamlit as st
from contextlib import closing
-from dotenv import load_dotenv
+from dotenv import find_dotenv, load_dotenv
+env_file = find_dotenv(usecwd=True)
+if env_file:
+ load_dotenv(env_file)
from fpdf import FPDF
# =========================================================
@@ -45,7 +48,7 @@ def fetch_gyro(site: str):
"""Retourne (etat, ts) depuis la vue v_gyro_last pour le site donné."""
q = """
SELECT Etat, `Date`
- FROM v_gyro_last
+ FROM Sondes.v_gyro_last
WHERE Lieu = %s AND Sonde = 'Gyro'
ORDER BY `Date` DESC
LIMIT 1