华为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"}]}

                               )

即可运行成功:

相关推荐
一 乐3 分钟前
个人健康系统|健康管理|基于java+Android+微信小程序的个人健康系统设计与实现(源码+数据库+文档)
android·java·数据库·vue.js·spring boot·生活
数据雕塑家11 分钟前
Linux下的花式「隔空」文件传输魔法
linux·运维·服务器
倚肆15 分钟前
CSS中transition属性详解
前端·css
bagadesu20 分钟前
28.<Spring博客系统⑤(部署的整个过程
java·后端
百锦再23 分钟前
第14章 智能指针
android·java·开发语言·git·rust·go·错误
快递鸟24 分钟前
物流信息总滞后?快递鸟在途监控 API,毫秒级响应让物流透明不等待
前端
zhong liu bin28 分钟前
Java并发编程【JUC】【一】
java·开发语言·juc
fruge38 分钟前
前端注释规范:如何写“后人能看懂”的注释(附示例)
前端
老华带你飞39 分钟前
医疗保健|医疗养老|基于Java+vue的医疗保健系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·医疗保健
小飞大王6661 小时前
JavaScript基础知识总结(四):常见内置构造函数,正则表达式,作用域与闭包
前端·javascript·正则表达式