怎么使用python paho-mqtt将设备信息发布到云?

发布于 2022-09-12 02:40:58 字数 1361 浏览 28 评论 0

问题描述

我准备借助paho-mqtt工具模拟设备向云端发布消息,使用的是actorcloud。但是我目前无论怎么写,client.publish()好像都没有起作用。在actorcloud的面板设备事件和功能数据这两栏都没有看见数据。我不知道问题出在哪个步骤,如果有大佬知道请指点一下,谢谢!

问题出现的环境背景及自己尝试过哪些方法

python 3.7.7
连接云端和接收云端消息都已经实现了,原本connect、publish、subscribe都放在一个文件里,介于消息发布一直实现不了,我就拎出来单独写。

2020.05.12更新:
由于python写的脚本无法执行publish的功能,我改用MQTT X终端工具模拟设备进行发布订阅。
发布:
在MQTT X中发布一条信息:
截屏
actorcloud里面看不到:
截屏
订阅:
在actorcloud中发布一条信息:
截屏
MQTT X收到了:
截屏
我不能理解为什么actorcloud里设备事件里一条记录都没有。

相关代码

import paho.mqtt.client as mqtt
import time

actor_client_id = "设备编号"
client = mqtt.Client(client_id=actor_client_id, clean_session=True)

username = "连接用户名"
password = "设备密钥"
client.username_pw_set(username, password)

host_name = "broker.actorcloud.io"
host_port = 1883
client.connect(host_name, host_port, 60)

time.sleep(1)
nData = 1
while 1:
  time.sleep(0.5)
  nData += 1
  nData %= 100
  client.publish('testtopic', nData)

你期待的结果是什么?实际看到的错误信息又是什么?

以上代码可以实现连接,但还是接收不到消息。我想知道我犯了什么样的错误,导致云端不能接收到设备发布的消息。谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

残龙傲雪 2022-09-19 02:40:58

你可以弄个wireshark看一看具体是什么情况,就现在的内容很难分析出结果。

筱果果 2022-09-19 02:40:58

问题基本算解决了。
我在本地运行了EMQ X,更换了hostname等信息,代码是可以正常执行的(我刚开始写python,我更担心是代码的问题)。MQTT X中也可以看到已接收和已发送的信息。但我还不是很清楚actorcloud为什么没有和我预期中一样的显示,如果有大佬清楚,麻烦指点一下,谢谢!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文