35 lines
954 B
Python
35 lines
954 B
Python
import paho.mqtt.client as mqttClient
|
|
import mysql.connector
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
# Site figé ici
|
|
site = "Meudon"
|
|
|
|
# Connexion MySQL
|
|
mydb = mysql.connector.connect(
|
|
host=os.getenv("DB_HOST"),
|
|
user=os.getenv("DB_USER"),
|
|
password=os.getenv("DB_PASSWORD"),
|
|
database=os.getenv("DB_NAME")
|
|
)
|
|
|
|
# Callback MQTT
|
|
def on_message(_client, _userdata, msg):
|
|
print(f"[{site}] Message reçu sur {msg.topic}: {msg.payload.decode()}")
|
|
cursor = mydb.cursor()
|
|
frigo_name = msg.topic.split('/')[-1]
|
|
sql = f"INSERT INTO {site} (Sonde, Temperature) VALUES (%s, %s)"
|
|
val = (frigo_name, msg.payload.decode())
|
|
cursor.execute(sql, val)
|
|
mydb.commit()
|
|
|
|
# Client MQTT
|
|
client = mqttClient.Client()
|
|
client.username_pw_set(os.getenv("MQTT_USER"), os.getenv("MQTT_PASSWORD"))
|
|
client.on_message = on_message
|
|
client.connect(os.getenv("MQTT_HOST"), 1883, 60)
|
|
client.subscribe(f"{site}/#")
|
|
client.loop_forever() |