如何在python中使用MQTT将数据发送到ThingsBoard?

物联网 MQTT
2021-05-31 14:19:11

我想将数据发送到 ThingsBoard 并将其显示在仪表板上的小部件中。

通过遵循教程,我有:

  1. 通过登录租户管理员在 ThingsBoard 上创建设备。

设备说明:

在此处输入图片说明

设备创建成功:

在此处输入图片说明

设备访问令牌:

在此处输入图片说明

  1. 使用我设备的访问令牌在 python 中创建 MQTT 客户端并在那里发布数据。

但是平台上没有收到数据,因为我的设备最新遥测没有显示任何数据。

显示DH11设备最新遥测的图像

在此处输入图片说明

蟒蛇代码:

import paho.mqtt.client as paho             #mqtt library
import os
import json
import time
from datetime import datetime

ACCESS_TOKEN='NN7QEiWaX6mxPRnVdJsQ'                 #Token of your device
broker="demo.thingsboard.io"                #host name
port=1883                       #data listening port

def on_publish(client,userdata,result):             #create function for 
    callback
    print("data published to thingsboard \n")
    pass
client1= paho.Client("control1")                    #create client object
client1.on_publish = on_publish                     #assign function to 
callback
client1.username_pw_set(ACCESS_TOKEN)               #access token from 
thingsboard device
client1.connect(broker,port,keepalive=60)           #establish connection

while True:

   payload="{"
   payload+="\"Humidity\":60,"; 
   payload+="\"Temperature\":25"; 
   payload+="}"
   ret= client1.publish("v1/devices/me/telemetry",payload) #topic- 
   v1/devices/me/telemetry
   print("Please check LATEST TELEMETRY field of your device")
   print(payload);
   time.sleep(5)

可能是什么问题?我期待着您修复它的建议。提前致谢。

编辑:我也在github 上报告了这个问题

1个回答

我不熟悉这个应用程序,但如果安全允许使用 MQTT.fx 订阅这个主题并嗅探正在发布的内容。可能是格式错误的 JSON?考虑到它们似乎不需要 TLS,这应该是可能的。

另外,自从我使用 Python 已经有一段时间了,但是您的分号让我感到困惑。