From 54bccf3d682d8bd0f1187f0a30a08c21f4ac8250 Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Mon, 7 Mar 2022 13:58:54 +0100 Subject: [PATCH] added possibility to login to mqtt broker (anonymous login does not work for every broker) --- config/config.template.ini | 3 +++ plugins/mqtt/mqtt.py | 12 +++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/config/config.template.ini b/config/config.template.ini index e20a7eb..b84f6f3 100644 --- a/config/config.template.ini +++ b/config/config.template.ini @@ -555,6 +555,9 @@ commandPOC = #Adress from MQTT-Broker brokeraddress = 192.168.178.27 topic = alarm/data +# username and password for the broker. leave username empty to use anonymous login +brokerusername = +brokerpassword = ##################### ##### Not ready yet # diff --git a/plugins/mqtt/mqtt.py b/plugins/mqtt/mqtt.py index 683d7d6..3abcf53 100644 --- a/plugins/mqtt/mqtt.py +++ b/plugins/mqtt/mqtt.py @@ -77,7 +77,11 @@ def run(typ,freq,data): ########## User Plugin CODE ########## broker_address = globalVars.config.get("mqtt", "brokeraddress") topic = globalVars.config.get("mqtt", "topic") - mqttClient = mqtt.Client() + + broker_username = globalVars.config.get("mqtt", "brokerusername") + broker_password = globalVars.config.get("mqtt", "brokerpassword") + + mqttClient = mqtt.Client() if typ == "FMS": x = { @@ -112,6 +116,12 @@ def run(typ,freq,data): logging.warning("Invalid Typ: %s", typ) y = json.dumps(x) + + + ## only login if there is a username given + if( len(broker_username) > 0 ): + mqttClient.username_pw_set(broker_username, broker_password) + mqttClient.connect(broker_address) mqttClient.publish(topic,y) ########## User Plugin CODE ##########