无效的MQTT Publis ...
通知
清除全部

在Google Cloud IoT上发表主题无效MQTT

RSS

(@ganesh)
贵族成员
加入:2年前
帖子:1362
19/03/2021 9:41 AM

因此,我正在尝试在Google Cloud IoT的此特定主题中发布:Projects/My_project/topics/sm1。我正在与Python客户端一起使用Paho-MQTT。

代码:

进口pahomqtt客户作为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=“/projects/my_project/topics/sm1”Project_ID=“我的项目”cloud_region=“ us-Central1”Registry_id=“ SM1”设备ID=“ SM1”Connflag=错误的防守error_str((RC):“”“将paho错误转换为人类可读字符串。”“”返回“发生了一些错误。{}:{}”格式((RC,,,,mqtterror_string((RC))防守on_disconnect((Unused_client,,,,UNUSUS_USERDATA,,,,RC):“”“设备断开连接时的paho回调。”“”打印((“ on_disconnect”,,,,error_str((RC))防守on_connect((客户,,,,用户数据,,,,标志,,,,response_code):全球的Connflag Connflag=真的打印((“与状态连接:{0}”格式((response_code))防守on_publish((客户,,,,用户数据,,,,):打印((“用户数据:{0}  -  MID:{1}”格式((用户数据,,,,))#client.disconnect()如果__姓名__==“__主要的__”客户=mqtt客户((“ projects/{}/locations/{}/registries/{}/decections/{}”格式((Project_ID,,,,cloud_region,,,,Registry_id,,,,设备ID))客户username_pw_set((用户名='没用过',,,,密码=jwt_makercreate_jwt((Project_ID,,,,private_key,,,,算法=“ RS256”))客户TLS_SET((root_ca,,,,certfile=public_crt,,,,钥匙文件=private_key,,,,cert_reqs=SSLcert_required,,,,tls_version=SSL协议_tlsv1_2,,,,密码=没有任何客户on_connect=on_connect客户端on_publish=on_publish客户端on_disconnect=on_disconnect打印((“连接到Google IoT经纪人...”客户连接((mqtt_url,,,,mqtt_port,,,,活着=60客户loop_start()尽管真的睡觉((0.5打印Connflag如果Connflag==真的打印((“出版...”ap_测量=随机的制服((25.0,,,,150.0#payload =“ sm1/sm1-payload- {}”。格式(ap_measurement)res=客户发布((mqtt_topic,,,,ap_测量,,,,QoS=1如果不是resIS_PEBLED():打印((“数据未发布!!”别的打印((“ ActivePower已发布:%.2F”ap_测量别的打印((“等待连接...”

错误信息:

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

输出:

连接到Google IoT经纪人...
与状态连接:0- msg:接收连接。
真的
出版...
数据未发布!!
('on_disconnect',“发生了一些错误。1:退出记忆。')

欢迎任何帮助,将不胜感激。


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

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

您的客户ID必须是:

“ projects/{}/locations/{}/registries/{}/devices/{}”。格式(project_id,cloud_region,gument_id,device_id)

然后您的主题必须是:

/devices/{}/config/develices/{}/state/devices/{}/events/devesties/devices/{}/events/some其他/其他/主题


回复引用
分享:
Baidu