Modification fichier Chaufferie.py

This commit is contained in:
2025-05-30 14:19:49 +02:00
parent 71cac529a2
commit 5f1e3325b7
2 changed files with 24 additions and 49 deletions

View File

@@ -48,11 +48,12 @@ def on_message(_client, _userdata, msg):
logging.info(f"Message reçu sur {msg.topic}: {msg.payload.decode()}") logging.info(f"Message reçu sur {msg.topic}: {msg.payload.decode()}")
cursor = mydb.cursor() cursor = mydb.cursor()
frigo_name = msg.topic.split('/')[-1] topic_mqtt = msg.topic.split('/')[1] # ex: 'ECS'
frigo_name = msg.topic.split('/')[-1] # ex: 'Dietrich_1'
temperature = float(msg.payload.decode()) temperature = float(msg.payload.decode())
sql = "INSERT INTO Chaufferie (Sonde, Temperature, Date) VALUES (%s, %s, %s)" sql = "INSERT INTO Chaufferie (Sonde, Temperature, Date, Topic) VALUES (%s, %s, %s, %s)"
val = (frigo_name, temperature, datetime.now()) val = (frigo_name, temperature, datetime.now(), topic_mqtt)
cursor.execute(sql, val) cursor.execute(sql, val)
mydb.commit() mydb.commit()

View File

@@ -1,59 +1,33 @@
import ovh def send_sms(message: str, site: str) -> None:
import os
from dotenv import load_dotenv
from datetime import datetime
from pathlib import Path
load_dotenv()
# Dictionnaire des numéros par site
PHONE_NUMBERS_BY_SITE = {
'Saclay': os.getenv('PHONE_SACLAY', '').split(','),
'Meudon': os.getenv('PHONE_MEUDON', '').split(','),
# ajoute d'autres sites ici
}
# Dossier de logs
log_dir = Path("/home/debian/Gestion_sondes/Logs") if os.name != "nt" else Path.cwd() / "Logs"
log_dir.mkdir(parents=True, exist_ok=True)
log_file = log_dir / "journal_sms.csv"
def journaliser_sms(message, site, phone_number):
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
lignes = [f"{timestamp};{site};{num};{message}" for num in phone_number]
with open(log_file, "a", encoding="utf-8") as f:
for ligne in lignes:
f.write(ligne + "\n")
def envoyer_sms_ovh(message, site):
phone_numbers = PHONE_NUMBERS_BY_SITE.get(site) phone_numbers = PHONE_NUMBERS_BY_SITE.get(site)
if not phone_numbers or phone_numbers == ['']: if not phone_numbers or phone_numbers == ['']:
print(f"[!] Aucun numéro défini pour le site {site}. SMS non envoyé.") print(f"[!] Aucun numéro défini pour le site {site}. SMS non envoyé.")
return None return
client = ovh.Client(
endpoint=os.getenv("OVH_ENDPOINT"),
application_key=os.getenv("OVH_APP_KEY"),
application_secret=os.getenv("OVH_APP_SECRET"),
consumer_key=os.getenv("OVH_CONSUMER_KEY"),
)
account = os.getenv("OVH_SMS_ACCOUNT")
try: try:
sender = os.getenv("OVH_SMS_SENDER") client = ovh.Client(
endpoint=os.getenv("OVH_ENDPOINT"),
application_key=os.getenv("OVH_APP_KEY"),
application_secret=os.getenv("OVH_APP_SECRET"),
consumer_key=os.getenv("OVH_CONSUMER_KEY"),
)
result = client.post(f'/sms/{account}/jobs', sender = os.getenv("OVH_SMS_SENDER")
account = os.getenv("OVH_SMS_ACCOUNT")
result = client.post(f"/sms/{account}/jobs",
sender=sender, sender=sender,
message=message, message=message,
receivers=phone_numbers, receivers=phone_numbers,
priority='high', priority='high',
noStopClause=True, noStopClause=True,
) charset='UTF-8',
print(f"[✓] SMS envoyé pour {site} à {phone_numbers}") class_='phoneDisplay',
journaliser_sms(message, site, phone_numbers) coding='7bit',
return result senderForResponse=False,
validityPeriod=2880)
print(f"[✓] SMS envoyé à {phone_numbers} pour {site}")
# Optionnel : journaliser_sms(message, site, phone_numbers)
except Exception as e: except Exception as e:
print(f"[!] Erreur envoi SMS OVH : {e}") print(f"[!] Erreur envoi SMS OVH : {e}")
return None