Bootstrap Device¶
Bootstrap Device API 用于设备端获取自身的 EnOS 三元组信息,以及 EnOS MQTT/HTTP 协议公网地址,并完成设备注册。设备端通过当前 API 获取三元组信息后,将使用 EnOS 提供的设备 SDK 尝试连接 EnOS。
Bootstrap Device API 与 Get Device Connection Info API 完全兼容,区别在于:
API 名称 | 功能 | 场景示例 |
---|---|---|
Get Device Connection Info | 获取已注册设备的三元组信息,包括单路设备、多路设备、网关设备和子设备。 | 设备获取自身、支路设备或子设备的三元组信息。 |
Bootstrap Device | 直连设备获取设备自身的三元组信息,若该设备未注册,将同时完成设备注册。 | 直连设备获取自身的三元组信息,完成自身注册。 |
请求参数(Body)¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
deviceSn | 必需 | String | 设备 SN 号,注册组中设备的唯一标识符,须保持注册组内唯一。 |
groupId | 必需 | String | 设备所属的注册组 ID。 |
dpsSignMethod | 必需 | String | 指定签名算法,目前仅支持 sha256 。 |
dpsSignTimestamp | 必需 | Long | 时间戳,用于生成 sign 校验值。 |
dpsSign | 必需 | String | 将注册组密码、deviceSn 和 dpsSignTimestamp 作为输入,使用 SHA256 算法进行哈希运算后生成的校验值。注册组密码可以在 EnOS 管理控制台 > 设备预配置 > 注册组管理 中的注册组详情中查看。 |
deviceName | 必需 | StringI18n | 设备名称。国际化名称表示方法 >> |
timezone | 必需 | String | 设备所在时区。时区表示方法 >> |
响应参数¶
名称 | 数据类型 | 描述 |
---|---|---|
murl | String | 设备所在环境的 EnOS MQTT 协议公网地址。 |
hurl | String | 设备所在环境的 EnOS HTTP 协议公网地址。 |
pk | String | 设备三元组中的 product key。 |
dk | String | 设备三元组中的 device key。 |
ds | String | 设备三元组中的 device secret。 |
错误码¶
代码 | 错误信息 | 描述 |
---|---|---|
10000 | [{sn}] not allocated | 当设备未分配,且注册组的“自动激活”开关未打开时,无法取得三元组,会返回设备未分配的错误信息。 |
示例¶
请求示例¶
url: http://{dps-address}/2.4.4/bootstrap
method: POST
requestBody:
{
"dpsSignMethod":"sha256",
"dpsSignTimestamp":1649147455506,
"dpsSign":"507db95cfff7f648cd80e67b7ced48c13d6913916348cde03ea668ca6b03927a",
"groupId":"groupId",
"deviceSn":"deviceSn",
"deviceName":{"defaultValue":"abc"},
"timezone":"+08:00"
},
Content-Type: application/json
返回示例¶
{
"murl": "tcp://mqtt-{address}:11883",
"hurl": "http://iot-http-{address}",
"pk": "productKey",
"dk": "deviceKey",
"ds": "deviceSecret"
}