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

                               )

即可运行成功:

相关推荐
01_ice1 分钟前
Java抽象类和接口
java·开发语言
雾岛心情1 分钟前
【邮件管理】小铭邮件管理之IMAP收取特定的目录和特定时间邮件
服务器·工具·o365·小铭邮件工具箱(公司版)
青梅橘子皮2 分钟前
Linux---进程状态与优先级
linux·运维·服务器
朱涛的自习室3 分钟前
30天11万行代码,我用 Trae 和 Gemini 造了个 AI 测试引擎
android·前端·人工智能
小马爱打代码7 分钟前
Spring源码 第七篇:Spring Boot 自动配置原理深度拆解
java·spring boot·spring
大连好光景7 分钟前
登录凭证 | Session+Cookie | Redis Token | JWT
前端·javascript
deepin_sir9 分钟前
11 - 模块与包
前端·数据库·python
日取其半万世不竭15 分钟前
给 Docker 容器设置 CPU 和内存限制,避免单个服务拖垮整机
java·docker·容器
invicinble17 分钟前
设计模式(类的拓扑结构)(为什么会产生设计模式,以及什么是设计模式)
linux·服务器·设计模式
铁皮哥19 分钟前
【agent 开发】Claude Code 的 Skill 是怎么被加载的?从 name/description 到 SKILL.md 再到资源文件
java·服务器·数据库·python·gitee·github·软件工程