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

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 logging
from logging.handlers import RotatingFileHandler
import socket
import mysql.connector
from mysql.connector import Error
@@ -28,10 +28,16 @@ DB_PASS = os.getenv("DB_PASS")
DB_NAME = os.getenv("DB_NAME")
# --- MQTT Meudon ---
MQTT_HOST = os.getenv("MQTT_HOST_MEUDON", os.getenv("MQTT_HOST"))
MQTT_USER = os.getenv("MQTT_USER_MEUDON", os.getenv("MQTT_USER"))
MQTT_PASS = os.getenv("MQTT_PASS_MEUDON", os.getenv("MQTT_PASS"))
MQTT_PORT = int(os.getenv("MQTT_PORT_MEUDON", os.getenv("MQTT_PORT", 1883)))
MQTT_HOST = os.getenv("MQTT_HOST_MEUDON")
MQTT_USER = os.getenv("MQTT_USER_MEUDON")
MQTT_PASS = os.getenv("MQTT_PASS_MEUDON")
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")
@@ -113,8 +119,9 @@ def insert_temperature(sonde: str, temperature: float) -> None:
def on_connect(client, userdata, flags, reason_code, properties=None):
if reason_code == 0:
logging.info("Connecté au broker MQTT Meudon (%s)", MQTT_HOST)
client.subscribe("Meudon/mod02/#")
logging.info("Abonné au topic : Meudon/#")
# Abonnement à TOUT ce qui commence par "Meudon/"
result, mid = client.subscribe("Meudon/#")
logging.info("Abonné au topic : Meudon/# (result=%s, mid=%s)", result, mid)
else:
logging.error("Échec de connexion MQTT (Meudon), code retour = %s", reason_code)
@@ -154,13 +161,21 @@ def main():
setup_logging()
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"]:
if os.getenv(var) in (None, ""):
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_id="Mqtt_meudon_client",
client_id=MQTT_CLIENT_ID,
callback_api_version=CallbackAPIVersion.VERSION2
)
client.username_pw_set(MQTT_USER, MQTT_PASS)