固件升级
## 固件升级
### 设备上报固件版本
数据上行。
Topic:`/ota/device/inform/${YourProductKey}/${YourDeviceName}`
设备通过这个Topic上报当前使用的固件版本信息。
请求数据格式如下:
```
{
"id": "123",
"params": {
"version": "1.0.1"
}
}
```
请求参数说明
|参数|类型|说明|
|-|-|-|
|id|string|消息ID号。需定义为String类型的数字,且设备维度唯一。|
|version|string|设备固件的版本信息。|
### 物联网平台推送固件信息
数据下行。
Topic:`/ota/device/upgrade/${YourProductKey}/${YourDeviceName}`
物联网平台通过这个Topic推送固件信息, 设备订阅该Topic可以获得固件信息。
请求数据格式如下:
```
{
"code": "1000",
"data": {
"size": 432945,
"version": "2.0.0",
"url": "https://iotx-ota-pre.oss-cn-shanghai.aliyuncs.com/nopoll_0.4.4.tar.gz?Expires=1502955804&OSSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&Signature=XfgJu7P6DWWejstKJgXJEH0qAKU%3D&security-token=CAISuQJ1q6Ft5B2yfSjIpK6MGsyN1Jx5jo6mVnfBglIPTvlvt5D50Tz2IHtIf3NpAusdsv03nWxT7v4flqFyTINVAEvYZJOPKGrGR0DzDbDasumZsJbo4f%2FMQBqEaXPS2MvVfJ%2BzLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B%2Fr6%2F5gdc9FcQSkL0B8ZrFsKxBltdUROFbIKP%2BpKWSKuGfLC1dysQcO1wEP4K%2BkkMqH8Uic3h%2Boy%2BgJt8H2PpHhd9NhXuV2WMzn2%2FdtJOiTknxR7ARasaBqhelc4zqA%2FPPlWgAKvkXba7aIoo01fV4jN5JXQfAU8KLO8tRjofHWmojNzBJAAPpYSSy3Rvr7m5efQrrybY1lLO6iZy%2BVio2VSZDxshI5Z3McKARWct06MWV9ABA2TTXXOi40BOxuq%2B3JGoABXC54TOlo7%2F1wTLTsCUqzzeIiXVOK8CfNOkfTucMGHkeYeCdFkm%2FkADhXAnrnGf5a4FbmKMQph2cKsr8y8UfWLC6IzvJsClXTnbJBMeuWIqo5zIynS1pm7gf%2F9N3hVc6%2BEeIk0xfl2tycsUpbL2FoaGk6BAF8hWSWYUXsv59d5Uk%3D",
"md5": "93230c3bde425a9d7984a594ac55ea1e",
"sign": "93230c3bde425a9d7984a594ac55ea1e",
"signMethod": "Md5"
},
"id": "1507707025",
"message": "success"
}
```
请求参数说明
|参数|类型|说明|
|-|-|-|
|id|string|消息ID号。需定义为String类型的数字,且设备维度唯一。|
|message|string|结果信息。|
|code|string|状态码。|
|version|string|设备固件的版本信息。|
|size|long|固件大小,单位:字节。|
|url|string| 固件在对象存储(OSS)上的存储地址。|
|sign|string|固件签名。|
|signMethod|string|签名方法, 目前支持Md5,Sha256两种签名方法。|
|md5|string|当签名方法为Md5时,除了会给sign赋值外还会给md5赋值。|
### 设备请求固件信息
数据上行。
请求Topic:`/sys/{productKey}/{deviceName}/thing/ota/firmware/get`
响应Topic:`/sys/{productKey}/{deviceName}/thing/ota/firmware/get_reply`
请求数据格式如下:
```
{
"id": "123",
"version": "1.0",
"params": {},
"method": "thing.ota.firmware.get"
}
```
请求参数说明
|参数|类型|说明|
|-|-|-|
|id|string|消息ID号。需定义为String类型的数字,且设备维度唯一。|
|version|string|Dlink协议版本,目前取值固定为`1.0`。 |
|params|string|请求参数。|
|method|string|请求方法,取值`thing.ota.firmware.get`。|
返回数据格式如下:
```
{
"id": "123",
"code": 200,
"data": {
"size": 93796291,
"sign": "f8d85b250d4d787a9f483d89a9747348",
"version": "1.0.1.9.20171112.1432",
"url": "https://the_firmware_url",
"signMethod": "Md5",
"md5": "f8d85b250d4d787a9f483d89a9747348"
}
}
```
返回参数说明
|参数|类型|说明|
|-|-|-|
|id|string|消息ID号。需定义为String类型的数字,且设备维度唯一。|
|code|string|状态码。|
|version|string|设备固件的版本信息。|
|size|long|固件大小,单位:字节。|
|url|string| 固件在对象存储(OSS)上的存储地址。|
|sign|string|固件签名。|
|signMethod|string|签名方法, 目前支持Md5,Sha256两种签名方法。|
|md5|string|当签名方法为Md5时,除了会给sign赋值外还会给md5赋值。|