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

直连设备获取设备自身的三元组信息,若该设备未注册,将同时完成设备注册。

直连设备获取自身的三元组信息,完成自身注册。

请求格式


POST http(s)://{dps-address}/preview/bootstrap

具体说明,参见 有关设备 API

请求参数(Body)


名称

必需/可选

数据类型

描述

deviceSn

必需

String

设备 SN 号,注册组中设备的唯一标识符,须保持注册组内唯一。

groupId

必需

String

设备所属的注册组 ID。

dpsSignMethod

必需

String

指定签名算法,目前仅支持 sha256

dpsSignTimestamp

必需

Long

时间戳,用于生成 sign 校验值。

dpsSign

必需

String

将注册组密码、deviceSndpsSignTimestamp 作为输入,使用 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}/preview/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"
}