无效的MQTT Publis ...
通知
清除所有

Google Cloud IoT上的MQTT发布主题无效


(@ganesh)
诺贝尔成员
加入:1年前
帖子:1362
19/03/2021 9:41 AM

所以,我正在尝试在Google Cloud IoT的这个特定主题中发布:项目/ my_project /主题/ sm1。我正在使用paho-mqtt与python客户端。

代码:

进口帕霍MQTT.客户作为MQTT.进口SSL.随机的jwt_maker.时间进口睡眠root_ca.='./../roots.pem'public_crt.='./../my_cert.pem'private_key.='./../my_pr.pem'mqtt_url.=“mqtt.googleapis.com”mqtt_port.=8883mqtt_topic.=“/项目/ my_project /主题/ sm1”project_id.=“我的项目”cloud_region.=“美国 - 中央1”Registry_ID.=“sm1”设备编号=“sm1”Connflag.=错误的deferror_str.rc.):“”“将paho错误转换为人类可读的字符串。”“”返回“发生了一些错误。{}:{}”格式rc.MQTT.error_string.rc.))defon_disconnect.unused_client.unused_userdata.rc.):“”“Paho回调,当设备断开连接时。”“”打印“on_disconnect”error_str.rc.))defon_connect.客户用户数据旗帜response_code.):全球的connflag connflag.=真的打印“与状态连接:{0}”格式response_code.))defon_publish.客户用户数据):打印“用户数据:{0}  - 中期:{1}”格式用户数据))#client.disconnect()如果__名称__==.“__主要的__”客户=MQTT.客户“项目/ {} / locations / {} /注册表/ {} / devices / {}”格式project_id.cloud_region.Registry_ID.设备编号))客户USERNME_PW_ET.用户名='没用过'密码=jwt_maker.create_jwt.project_id.private_key.算法=“rs256”))客户tls_set.root_ca.CERTFILE.=public_crt.键填充=private_key.CERT_REQS.=SSL.cert_required.tls_version.=SSL.protocol_tlsv1_2.密铃=没有任何的)客户on_connect.=on_connect客户端on_publish.=on_publish客户端on_disconnect.=on_disconnect.打印“连接到Google IoT Broker ......”的)客户连接mqtt_url.mqtt_port.活着=60.的)客户Loop_start.()尽管真的睡觉0.5的)打印Connflag.如果Connflag.==.真的打印“出版...”的)ap_measurement.=随机的制服25.0150.0的)#payload =“sm1 / sm1-payload  -  {}”格式(ap_measurement)res.=客户发布mqtt_topic.ap_measurement.QoS.=1的)如果不是res.is_published.():打印“数据未发布!!”的)别的打印“ActivePower发布:%.2f”ap_measurement.的)别的打印“等待连接......”的)

错误信息:

无效的MQTT发布主题:项目/ my_project /主题/ sm1

输出:

连接到Google IoT Broker ...
连接状态:0 - msg:接受连接。
真的
出版...
数据未发布!!
('on_disconnect','发生一些错误。1:内存不足。')

欢迎任何帮助,并会受到赞赏。


引用
(@sathish)
成员 主持人
加入:1年前
帖子:1391
19/03/2021上午9:42

这很简单。您有错误的主题名称。

您的客户ID必须是:

“项目/ {} / locations / {} /注册表/ {} / devices / {}”。格式(project_id,cloud_region,registry_id,device_id)

然后你的主题必须是:

/设备/ {} / / config / devices / {} /状态/设备/ {} /事件/设备/ {} /事件/某些/其他/主题


回复引用
分享:
Baidu