华为iotda sdk发送消息无法更新quickstartpython问题解决

问题描述:

华为官方智慧路灯python代码: quickstartpython/IoT_device_demo/message_sample.py上报消息时,无法更新设备数据信息。

经过排查和对比后发现:

传递的数据格式与mqtt.fx不一致,导致平台无法解析。

(排查方式: iotda实例网页--设备管理--设备详情--消息跟踪--查看发送的消息内容发现,多了content字段。同时"流转规则触发"失败 )

解决办法:

把IoT_device/client/IoT_client.py中的payload代码改为:payload = device_message

python 复制代码
# 设备发送消息到平台,又用户自定义topic
    def __publish_raw_message(self, topic, device_message):
        # payload = {"content": device_message}
        payload = device_message
        payload = json.dumps(payload)
        self.__publish_result, _ = self.__client.publish(topic, payload, qos=1)

同时,正确的代码实例:

python 复制代码
# 发送用户自定义topic消息 e.g.订阅操作等
iot_client.publish_message(r'$oc/devices/' + str(client_cfg.device_id) + r'/sys/properties/report',
                               {"services": [
                                   {"service_id": "BasicData", "properties": {"luminance": 20}, "event_time": "null"}]}

                               )

即可运行成功:

相关推荐
帅次1 分钟前
Web应用系统全面解析:从架构设计到测试部署的核心要点
前端·javascript·ajax·html5
前端 贾公子3 分钟前
从0到1 使用netlify进行线上部署网站
前端
电商API&Tina4 分钟前
合规电商数据采集 API|多平台实时数据抓取,告别爬虫封号风险
大数据·开发语言·前端·数据库·爬虫·python
05大叔7 分钟前
大事件Day04
java·开发语言
梦6507 分钟前
HTML5 零基础详解
前端·html·html5
zhengxianyi5157 分钟前
ruoyi-vue-pro数据大屏优化——解决go-view同一个大屏报表在数据库中存储大量的图片的问题
前端·vue.js·前后端分离·数据大屏·ruoyi-vue-pro优化
C_心欲无痕8 分钟前
前端网站主题切换原理与实践:CSS 类名切换方案
前端·css
lightningyang9 分钟前
利用 OpenSSL 进行国际算法加密通信实验
服务器·密码学·openeuler·天枢一体化虚拟仿真靶场平台·openssl国际算法加密通信·密码实训
高山上有一只小老虎10 分钟前
解决springboot项目从mybatis切换为集成jpa后dao层方法检查爆红
java·spring boot
D_FW10 分钟前
【Java】Redis五大核心数据结构底层原理解析
java·数据结构·redis