Как прослушивать асинхронно mqtt python?

Я раньше работал с paho-mqtt. Сейчас стоит задача: ждать определенного топика, а уже после того,как он придет, отправлять данные в БД. Ожидается, что с устройства будут приходить параметры в разных темах. Чтобы не писать в базу по одному параметру, хочу собрать массив параметров и потом этот массив закинуть в базу. Структура темы такая:

nameDevice/
   nameDevice/a : a=1
   nameDevice/b : b=1
   nameDevice/c : c=1

Т.е. мне нужно сначала запомнить все параметры(a,b,c), и как только пришел топик nameDevice/c - передать значения (a,b,c) в функцию main_call(a,b,c).

Есть код простой прослушки топика.

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print(f"Connected with result code {rc}")
    client.subscribe("nameDevice/#")


def main_call(args):
    print(args)

def on_message(client, userdata, msg):
    print(msg.topic + " " + str(msg.payload))
    #wait msg.topic == 'nameDevice/c' and after call main_call()


client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("localhost", 1883, 60)
client.loop_forever()



Ответы (0 шт):