You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.4 KiB
37 lines
1.4 KiB
import paho.mqtt.client as mqtt
|
|
|
|
|
|
class MQTTPublisher:
|
|
def __init__(self, config, logger):
|
|
self.broker = config["broker"]
|
|
self.port = config["port"]
|
|
self.username = config["username"]
|
|
self.password = config["password"]
|
|
self.logger = logger
|
|
|
|
def publish(self, message, topic):
|
|
"""Publiceert een bericht naar het MQTT-topic."""
|
|
try:
|
|
self.logger.debug(f"Verbinden met MQTT broker {self.broker}...")
|
|
client = mqtt.Client()
|
|
# Authenticatie toevoegen
|
|
client.username_pw_set(self.username, self.password)
|
|
client.connect(self.broker, self.port, 60)
|
|
self.logger.debug(
|
|
f"Verbonden met MQTT broker op poort {self.port}.")
|
|
|
|
# Zet het bericht om naar een string als het geen string is
|
|
# Zorg ervoor dat het bericht een string is
|
|
message_str = str(message)
|
|
|
|
self.logger.debug(f"Publiceren naar MQTT-topic: {topic}")
|
|
# Publiceer de string versie van het bericht
|
|
client.publish(topic, message_str)
|
|
self.logger.debug(
|
|
f"Bericht gepubliceerd naar {topic}: {message_str}")
|
|
|
|
client.disconnect()
|
|
self.logger.debug("Verbinding met MQTT broker gesloten.")
|
|
except Exception as e:
|
|
self.logger.error(f"MQTT fout: {e}")
|