首页 > 解决方案 > 无法在 paho mqtt 消息回调上创建模型对象

问题描述

我正在使用 python 与 mqtt 一起工作,我是这方面的新手,但 paho 库一直运行良好。我无法实现的是在消息回调上创建一个模型对象。这背后的逻辑是每当主题监听某事时它会验证味精,验证后它将创建一个对象,但由于某种原因没有发生,我已经打印了一些内容来检查它是否在回调中函数,并在 if 语句中,它确实如此,但是我无法保存要保存的对象。就好像它忽略了这句话。

这是我的课:

class currentConsumer(APIView):
    def on_message(mqttc, obj, msg):
        print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload))
        if (float(msg.payload)>=10):
            e = SwitchEvents(aerator=1, switch_type=1)
            e.save()

        else:
            e = SwitchEvents(aerator_id=1, switch_type=0)
            e.save()

    mqttc = mqtt.Client(transport='websockets')  
    mqttc.username_pw_set(username=MQTT_USERNAME, password=MQTT_PASSWORD) 
    mqttc.on_message = on_message
    mqttc.on_connect = on_connect
    mqttc.on_publish = on_publish
    mqttc.on_subscribe = on_subscribe

    mqttc.connect(MQTT_HOST, MQTT_PORT, 60)

    mqttc.subscribe("/SENSOR/+/CORRIENTE", 0)
    #mqttc.subscribe("$SYS/#", 0)

    mqttc.loop_forever()

我没有在此处粘贴其他功能(on connect、on_publish 等),因为我觉得它们没有必要。我一直认为 create 方法在这种函数中不起作用,但真的不知道。没有错误,什么都没有。

任何建议都会有所帮助。提前致谢 :)

标签: pythonmqtt

解决方案


推荐阅读