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

                               )

即可运行成功:

相关推荐
xiaofeichaichai6 小时前
Vite配置实战
前端
zhanghaofaowhrql6 小时前
为CSDN博客编辑器安装自定义CSS主题,打造个性化写作界面
前端·css·编辑器
娇气的红酒6 小时前
关于.NET VS JavaEE平台争论的沉思录
java·java-ee·.net
ZhengO_Oz6 小时前
虚拟机CentOS 网络配置【实操】
运维·服务器·网络
折哥的程序人生 · 物流技术专研6 小时前
第3篇:手写一个饮品制作模板(附代码)
java·设计模式·行为型模式·模版方法模式·钩子方法·代码复用·编程实战
SamDeepThinking6 小时前
为什么很多人学了Java,还是没真正理解类和对象?
java·后端·面试
utf8mb4安全女神6 小时前
如果复制windows 内容到 Linux,带入不可见特殊符,怎么解决
linux·运维·服务器
懒得不想起名字6 小时前
flutter 使用go_router 和 page_transition定义页面动画
前端
fei_sun6 小时前
网卡、网关、网桥、交换机、路由器
linux·服务器·网络
多加点辣也没关系6 小时前
JavaScript|第6章:流程控制语句
开发语言·前端·javascript