From db944fc3c3bb38e18292a2ce074a79dde17500dc Mon Sep 17 00:00:00 2001 From: Dorian Zedler Date: Wed, 18 Aug 2021 19:08:57 +0200 Subject: [PATCH] Added basic pairing workflow --- backend/mlmAccess.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/backend/mlmAccess.py b/backend/mlmAccess.py index a8f93d5..da7db0b 100644 --- a/backend/mlmAccess.py +++ b/backend/mlmAccess.py @@ -1,5 +1,7 @@ import paho.mqtt.client as mqtt from dbHelper import MaDbHelper +import random +import string class MlmAccess: def __init__(self): @@ -29,6 +31,16 @@ class MlmAccess: self.mqtt.loop_forever() + def _handleActorPairRequest(self, id): + print(f"Pair request for type actor with ID {id}") + if not self.db.userExists(id): + password = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) + self.db.addUser(f"actor-{id}", password, [f"mlmAccess/actor/{id}/status"], [f"mlmAccess/actor/{id}/action"]) + + self.mqtt.publish("mlmAccess/pair/response/actor", password) + else: + self.mqtt.publish("mlmAccess/pair/response/actor", "") + def _mqttOnConnect(self, client, userdata, flags, rc): print("Connected with result code "+str(rc)) @@ -38,10 +50,9 @@ class MlmAccess: print(client.subscribe("mlmAccess/pair/request/actor")) def _mqttOnMessage(self, client, userdata, message): - print("message received " ,str(message.payload.decode("utf-8"))) - print("message topic=",message.topic) - print("message qos=",message.qos) - print("message retain flag=",message.retain) + if message.topic == "mlmAccess/pair/request/actor": + self._handleActorPairRequest(str(message.payload.decode("utf-8"))) + if __name__ == "__main__":