通知
清除所有

谷歌云物联网上无效的MQTT发布主题

RSS

(@anamika)
贵族成员
加入:1年前
帖子:1381
18/03/2021上午11点

因此,我试图在谷歌云物联网的这个特定主题中发表:projects/my_project/topics/sm1。我在Python客户端中使用paho-mqtt。

代码:

进口泛美卫生组织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_port8883mqtt_topic“/项目/ my_project /主题/ sm1”project_id“my_project”cloud_region“us-central1”registry_id“sm1”device_id“sm1”connflagdeferror_str钢筋混凝土):"""将Paho错误转换为人类可读的字符串。"""返回“一些错误发生。{}:{}”格式钢筋混凝土mqtterror_string钢筋混凝土))defon_disconnectunused_clientunused_userdata钢筋混凝土):"""当设备断开时的Paho回调。"""打印“on_disconnect”error_str钢筋混凝土))defon_connect客户端用户数据旗帜response_code):全球connflag connflag真正的打印“连接状态:{0}”格式response_code))defon_publish客户端用户数据中期):打印“用户数据:{0}——mid:{1}”格式用户数据中期))# client.disconnect ()如果__name__==“__main__”客户端mqtt客户端“项目/{}/位置/{}/注册/{}/设备/{}”格式project_idcloud_regionregistry_iddevice_id))客户端username_pw_set用户名“未使用”密码jwt_makercreate_jwtproject_idprivate_key算法“RS256”))客户端tls_setroot_cacertfilepublic_crt密钥文件private_keycert_reqssslCERT_REQUIREDtls_versionsslPROTOCOL_TLSv1_2密码没有一个)客户端on_connecton_connect客户on_publishon_publish客户on_disconnecton_disconnect打印“连接到谷歌物联网代理…”)客户端连接mqtt_urlmqtt_portkeepalive60)客户端loop_start()真正的睡眠0.5)打印connflag如果connflag==真正的打印“出版……”)ap_measurement随机统一的25.0150.0)#载荷= " sm1 / sm1-payload——{}“.format (ap_measurement)res客户端发布mqtt_topicap_measurementqos1)如果resis_published():打印“数据没有公布! !”)其他的打印“ActivePower发表:% .2f”%ap_measurement)其他的打印“等待连接…”)

错误信息:

无效的MQTT发布主题:projects/my_project/topics/sm1

输出:

连接到谷歌物联网代理…
连接状态:0——msg:连接已接受。
真正的
出版…
数据没有公布!
('on_disconnect', '发生错误。1:内存不足。

任何帮助都是欢迎和将感激。


报价
(@sathish)
成员 主持人
加入:1年前
帖子:1391
18/03/2021他们是

这很简单。您的主题名称不正确。

您的客户端ID必须为:

“项目/{}/位置/{}/注册/{}/设备/{}”。格式(project_id,cloud_region,registry_id,device_id)

你们的主题必须是:

/devices/{}/config /devices/{}/state /devices/{}/events/ devices/{}/events/some/other/topic


回复报价
分享:
Baidu