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。
请求参数(Header)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
Content-type |
必需 |
String |
内容或文件类型,仅支持 |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
deviceSn |
必需 |
String |
设备 SN 号,注册组中设备的唯一标识符,须保持注册组内唯一。 |
groupId |
必需 |
String |
设备所属的注册组 ID。 |
dpsSignMethod |
必需 |
String |
指定签名算法,目前仅支持 |
dpsSignTimestamp |
必需 |
Long |
时间戳,用于生成 |
dpsSign |
必需 |
String |
将注册组密码、 |
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"
}