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

                               )

即可运行成功:

相关推荐
禅思院2 分钟前
总篇:异步组件加载的演进之路
前端·架构·前端框架
酿情师2 分钟前
记第一次打春秋云境-Initial 靶场(没打完,记录一下,不是WP!!!)
服务器·网络安全
ID_180079054734 分钟前
京东商品详情 API 数据分析业务场景 + JSON 返回参考
java·开发语言
我的世界洛天依4 分钟前
洛天依讲编程:调音教学|调性 ——MIDI 里的「钩子函数」
linux·前端·javascript
汽车仪器仪表相关领域5 分钟前
Kvaser U100:工业级单通道CAN/CAN FD转USB接口,恶劣环境下的可靠通信桥梁
linux·运维·服务器·人工智能·功能测试·单元测试·可用性测试
IT_陈寒9 分钟前
JavaScript性能优化完全指南
前端·人工智能·后端
xyyaihxl9 分钟前
springboot系列--自动配置原理
java·spring boot·后端
weyyhdke10 分钟前
Java进阶-在Ubuntu上部署SpringBoot应用
java·spring boot·ubuntu
上海云盾-小余11 分钟前
游戏账号盗刷、数据篡改防护全攻略:前端加密 + 后端 WAF 双重加固
前端·游戏
javaDocker14 分钟前
沉浸式AI编程:IDEA + Claude Code 的终极方案
java·intellij-idea·ai编程