From 3cd7167e9032ac02acc110b4cf8835787d54ff85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Sun, 26 Jul 2020 19:38:10 +0200 Subject: [PATCH] rework mqtt api --- src/app.py | 3 ++- src/mqtt_helper.py | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/app.py b/src/app.py index 9db1079..0e5c178 100644 --- a/src/app.py +++ b/src/app.py @@ -45,7 +45,8 @@ def on_message(channel, method_frame, header_frame, body): if msg_json['probability'] > 0.5: r = requests.get(f"http://{config.INPUT_HOSTNAME}/sample/{msg_json['tag']}") r.raise_for_status() - mqtt.publish(json.dumps({"deviceID": r.json()['device_id'], "sensorID": "", "command": "doAlert"})) + mqtt.publish(subtopic=r.json()['device_id'], + message=json.dumps({"command": "doAlert"})) if __name__ == "__main__": diff --git a/src/mqtt_helper.py b/src/mqtt_helper.py index 19b1363..2f4d043 100644 --- a/src/mqtt_helper.py +++ b/src/mqtt_helper.py @@ -61,10 +61,14 @@ class MQTT: transport="tcp") self.client.connect(host=self.host, port=self.port, keepalive=60) - def publish(self, message: str) -> None: + def publish(self, message: str, subtopic: str = "") -> None: """ Publish a message :param message: + :param subtopic: :return: """ - self.client.publish(self.topic, message, qos=self.qos, retain=self.retain) + if subtopic: + self.client.publish(f"{self.topic}/{subtopic}", message, qos=self.qos, retain=self.retain) + else: + self.client.publish(self.topic, message, qos=self.qos, retain=self.retain)