Remise en route cuisine_meudon

This commit is contained in:
2025-12-11 17:01:29 +01:00
parent dca69728e0
commit 37a00a64b5
2 changed files with 25 additions and 10 deletions

2
.env
View File

@@ -74,7 +74,7 @@ ALERT_SMS_TO_SACLAY=Michel:+33759600180
ALERT_SMS_TO_MEUDON=Michel:+33759600180 ALERT_SMS_TO_MEUDON=Michel:+33759600180
ALERT_SMS_CLIENT_TO_MEUDON=Sekou:+33625903364,Damien:+33680388259 ALERT_SMS_CLIENT_TO_MEUDON=Sekou:+33625903364,Damien:+33680388259
ALERT_SMS_CLIENT_TO_SACLAY=Nicolas:+33682069405,Sabrina:+33650270939,Mirceta:+33601162960 ALERT_SMS_CLIENT_TO_SACLAY=Nicolas:+33682069405,Sabrina:+33650270939
# Activer/désactiver globalement lenvoi client # Activer/désactiver globalement lenvoi client
ALERT_SMS_CLIENT_ENABLED=1 ALERT_SMS_CLIENT_ENABLED=1
# 1) couper les SMS internes # 1) couper les SMS internes

View File

@@ -7,7 +7,7 @@ Récupère les mesures MQTT du site Meudon et les insère dans la table Sondes.M
import os import os
import logging import logging
from logging.handlers import RotatingFileHandler from logging.handlers import RotatingFileHandler
import socket
import mysql.connector import mysql.connector
from mysql.connector import Error from mysql.connector import Error
@@ -28,10 +28,16 @@ DB_PASS = os.getenv("DB_PASS")
DB_NAME = os.getenv("DB_NAME") DB_NAME = os.getenv("DB_NAME")
# --- MQTT Meudon --- # --- MQTT Meudon ---
MQTT_HOST = os.getenv("MQTT_HOST_MEUDON", os.getenv("MQTT_HOST")) MQTT_HOST = os.getenv("MQTT_HOST_MEUDON")
MQTT_USER = os.getenv("MQTT_USER_MEUDON", os.getenv("MQTT_USER")) MQTT_USER = os.getenv("MQTT_USER_MEUDON")
MQTT_PASS = os.getenv("MQTT_PASS_MEUDON", os.getenv("MQTT_PASS")) MQTT_PASS = os.getenv("MQTT_PASS_MEUDON")
MQTT_PORT = int(os.getenv("MQTT_PORT_MEUDON", os.getenv("MQTT_PORT", 1883))) MQTT_PORT = int(os.getenv("MQTT_PORT_MEUDON", "1883"))
# Client ID (configurable, sinon suffixé avec le hostname)
MQTT_CLIENT_ID = os.getenv(
"MQTT_CLIENT_ID_MEUDON",
f"Mqtt_meudon_{socket.gethostname()}"
)
GYRO_TOPIC_MEUDON = os.getenv("GYRO_MQTT_TOPIC_MEUDON", "Meudon/gyrophare") GYRO_TOPIC_MEUDON = os.getenv("GYRO_MQTT_TOPIC_MEUDON", "Meudon/gyrophare")
@@ -113,8 +119,9 @@ def insert_temperature(sonde: str, temperature: float) -> None:
def on_connect(client, userdata, flags, reason_code, properties=None): def on_connect(client, userdata, flags, reason_code, properties=None):
if reason_code == 0: if reason_code == 0:
logging.info("Connecté au broker MQTT Meudon (%s)", MQTT_HOST) logging.info("Connecté au broker MQTT Meudon (%s)", MQTT_HOST)
client.subscribe("Meudon/mod02/#") # Abonnement à TOUT ce qui commence par "Meudon/"
logging.info("Abonné au topic : Meudon/#") result, mid = client.subscribe("Meudon/#")
logging.info("Abonné au topic : Meudon/# (result=%s, mid=%s)", result, mid)
else: else:
logging.error("Échec de connexion MQTT (Meudon), code retour = %s", reason_code) logging.error("Échec de connexion MQTT (Meudon), code retour = %s", reason_code)
@@ -154,13 +161,21 @@ def main():
setup_logging() setup_logging()
logging.info("Démarrage du script Mqtt_meudon") logging.info("Démarrage du script Mqtt_meudon")
# Vérif minimale des variables d'env # Vérif minimale des variables d'env MySQL
for var in ["DB_HOST", "DB_USER", "DB_PASS", "DB_NAME"]: for var in ["DB_HOST", "DB_USER", "DB_PASS", "DB_NAME"]:
if os.getenv(var) in (None, ""): if os.getenv(var) in (None, ""):
logging.error("Variable d'environnement %s manquante !", var) logging.error("Variable d'environnement %s manquante !", var)
# Vérif minimale des variables d'env MQTT
if not MQTT_HOST:
logging.error("MQTT_HOST_MEUDON manquant !")
if not MQTT_USER:
logging.warning("MQTT_USER_MEUDON non défini (connexion sans login ?)")
if not MQTT_PORT or MQTT_PORT <= 0:
logging.error("MQTT_PORT_MEUDON invalide : %s", MQTT_PORT)
client = mqtt.Client( client = mqtt.Client(
client_id="Mqtt_meudon_client", client_id=MQTT_CLIENT_ID,
callback_api_version=CallbackAPIVersion.VERSION2 callback_api_version=CallbackAPIVersion.VERSION2
) )
client.username_pw_set(MQTT_USER, MQTT_PASS) client.username_pw_set(MQTT_USER, MQTT_PASS)