情况:我有一个python虚拟传感器(一个python程序),该传感器通过MQTT协议将数据提交到ThingsBoard中的设备。我可以在仪表板上可视化数据,因此可以确保已接收到数据。
问题:当我尝试使用paho将python订阅服务器连接到Thingsboard Broker(demo.thingsboard.io)时,我得到连接代码为0,因此连接正常,但是我看到仪表板停止可视化数据从虚拟传感器收到,但订户什么也没收到。
虚拟传感器在v1 / devices / me / telemetry]上发布,并且订阅者在同一主题v1 / devices / me / telemetry上订阅。
[]]谁能帮助我找出如何将虚拟传感器发布的数据推送到我的订户客户端上?
虚拟传感器代码:
import paho.mqtt.client as paho #mqtt library import os import json import time from datetime import datetime ACCESS_TOKEN="vgFztmvT6bps7JCeOEZq" #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)
客户订户代码:
import paho.mqtt.client as mqtt import time token = "vgFztmvT6bps7JCeOEZq" broker="demo.thingsboard.io" # host name port=1883 topic = "v1/devices/me/telemetry" # The callback for when the client receives a CONNACK response from the server. def on_connect(client, userdata, flags, rc) : if (rc==0) : print("connected OK Returned code = ", rc) else : print("Bad connection Returned code = ", rc) def on_message(client, userdata, msg) : print (msg.topic + " " + str(msg.payload)) client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.username_pw_set(token) client.connect(broker , port, 60) client.subscribe(topic) client.loop_forever()
编辑:
添加的代码
情况:我有一个python虚拟传感器(一个python程序),该传感器通过MQTT协议将数据提交到ThingsBoard中的设备。我可以在仪表板上显示数据,因此可以确定数据是...
在发布者客户端中,您正在使用名为:"v1/devices/me/telemetry"
的主题。
但是,您没有使用订户客户端订阅相同的主题。