Remise en route cuisine_meudon
This commit is contained in:
2
.env
2
.env
@@ -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 l’envoi client
|
# Activer/désactiver globalement l’envoi client
|
||||||
ALERT_SMS_CLIENT_ENABLED=1
|
ALERT_SMS_CLIENT_ENABLED=1
|
||||||
# 1) couper les SMS internes
|
# 1) couper les SMS internes
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user