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}/2.4.0/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}/2.4.0/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"
}