Modification fichier Chaufferie.py
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user