MQTT的Python中ThingsBoard代理订阅者

问题描述 投票:0回答:1

情况:我有一个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中的设备。我可以在仪表板上显示数据,因此可以确定数据是...

python mqtt iot paho thingsboard
1个回答
1
投票

在发布者客户端中,您正在使用名为:"v1/devices/me/telemetry"的主题。

但是,您没有使用订户客户端订阅相同的主题。

© www.soinside.com 2019 - 2024. All rights reserved.