1、使用MQTT.fx模拟设备接入平台,详情请参考连接鉴权。
2、用MQTT.fx订阅平台下行信息Topic,MQTT.fx会收到平台服务端下发的查询版本命 令。
Topic
下行: $oc/devices/{device_id}/sys/events/down
文档版本 29 (2021-07-22) 版权所有 © 华为技术有限公司 164
图2-69 订阅通知
3、通过MQTT.fx上报软固件版本信息。
Topic
上行: $oc/devices/{device_id}/sys/events/up 参数说明
services 可选 List<ServiceEv
ent> 事件服务列表。
ServiceEvent定义表
字段名 必选/可选 类型 参数描述
service_id 必选 String $ota。
event_type 必选 String version_report。
event_time 可选 String 事件时间。
paras 必选 Object 事件参数JSON对象。
paras参数列表
文档版本 29 (2021-07-22) 版权所有 © 华为技术有限公司 165
字段名 必选/可选 类型 参数描述 sw_version 可选 String 软件版本。
fw_version 可选 String 固件版本。
示例
Topic: $oc/devices/{device_id}/sys/events/up 数据格式: {
"object_device_id": "{object_device_id}", "services": [{
字段名 必选/可选 类型 参数描述 services 可选 List<ServiceEv
ent> 事件服务列表。
ServiceEvent定义表
字段名 必选/可选 类型 参数描述
service_id 必选 String $ota。
event_type 必选 String 固件升级:firmware_upgrade。
软件升级:software_upgrade。
event_time 可选 String 事件时间。
paras 必选 Object 事件参数JSON对象。
paras参数列表
字段名 必选/可选 类型 参数描述
version 必选 String 软固件包版本号。
url 必选 String 软固件包下载地址。
file_size 必选 Integer 软固件包文件大小。
access_token 可选 String 软固件包url下载地址的临时token。
expires 可选 Integer access_token的超期时间。
sign 必选 String 软固件包MD5值。
文档版本 29 (2021-07-22) 版权所有 © 华为技术有限公司 167
图2-71 获取升级通知
5、设备收到升级通知后,可通过Http请求下载升级包。
本次演示使用Curl命令代替。
图2-72 下载升级包
示例
curl -X GET -H "Authorization:Bearer ****************************" "https://100.93.28.202:8943/iodm/dev/v2.0/
upgradefile/applications/ddecccc223574aee9466fe8f7e16a205/devices/
6079042873515a02c16ffd82_123456789/packages/4f201f38c281ca5d40794a3f" -v -k
文档版本 29 (2021-07-22) 版权所有 © 华为技术有限公司 168
注意
上行: $oc/devices/{device_id}/sys/events/up 参数说明
services 可选 List<ServiceEv
ent> 事件服务列表。
ServiceEvent定义表
字段名 必选/可选 类型 参数描述
service_id 必选 String $ota。
event_type 必选 String upgrade_progress_report。
event_time 可选 String 事件时间。
paras 必选 Object 事件参数JSON对象。
paras参数列表
文档版本 29 (2021-07-22) 版权所有 © 华为技术有限公司 169
字段名 必选/可选 类型 参数描述
result_code 必选 Integer 设备的升级状态,结果码定义如 下:
progress 可选 Integer 设备的升级进度,范围:0到100。
version 必选 String 设备当前版本号。
description 可选 String 升级状态描述信息,可以返回具体 升级失败原因。
示例
Topic: $oc/devices/{device_id}/sys/events/up 数据格式:
{ "object_device_id": "{object_device_id}", "services": [{
"service_id": "$ota",
"event_type": "upgrade_progress_report", "event_time": "20151212T121212Z", "paras": {
图2-73 上报升级进度 50%
图2-74 查询升级进度
7、完成升级
上报升级进度为100%,且当前版本为升级的目标版本,可以在平台查询到升级完成。
文档版本 29 (2021-07-22) 版权所有 © 华为技术有限公司 171
图2-75 上报升级进度 100%
图2-76 查询升级状态
----结束
2.13 设备通过微信小程序接入到平台
场景说明
平台支持基于WebSocket的MQTT协议,使基于浏览器的应用程序或者小程序可以快 速接入到物联网平台。本文以“智慧路灯”为示例,通过微信小程序模拟设备,带您 体验设备通过MQTT over WebSocket协议连接到物联网平台、上报数据和接收命令的 全过程。
假设:
路灯设备上报一条包含光照强度(luminance)的消息;路灯支持远程控制开关状态的 命令(switch),路灯上报的数据格式为JSON格式。
前提条件
● 已注册华为云官方帐号。未注册可单击注册页面完成注册。
文档版本 29 (2021-07-22) 版权所有 © 华为技术有限公司 172
● 已完成实名制认证。未完成可在华为云上单击实名认证完成认证,否则无法使用
产品名称 自定义,如Streetlight。支持字母、数字、下划线(_)、连字符
(-)的字符组合。
协议类型 选择MQTT。
数据格式 选择JSON。
厂商名称 自定义,如Huawei。支持中英文字符、数字、下划线(_)、连字 符(-)的字符组合。
所属行业 请根据产品模型的所属行业填写。
设备类型 Streetlight
----结束