ThingsBoard 设备自注册(允许创建新设备)
正文与配图来自原稿。厂商希望设备上电后自动注册并绑定设备配置,拿到凭证写入 Flash,再正式登录。
1、概述
作为设备生产商,希望设备在 ThingsBoard 中自动注册并指定设备配置。自注册期间,设备可生成唯一凭证,或由服务器下发唯一凭证;设备拿到凭证后存入 Flash,再登录平台。
2、设备自注册流程
流程图:

3、案例实操
第一步:设备配置开启「允许创建新设备」
新建设备配置(如「测试设备自注册」),一直到 设备预配置,选择 允许创建新设备,并配置:
- 密钥名(provisionDeviceKey)
- 设备密钥(provisionDeviceSecret)
同一类设备共用这对密钥:


保存成功:

第二步:模拟设备用 provision 连接
连接 MQTT 时,Client ID 与 Username 必须使用 provision(源码中 DataConstants.PROVISION):


模拟连接:

连接后先订阅响应主题:
text
/provision/response第三步:发自注册请求
向 /provision/request 发布:
json
{
"deviceName": "自注册设备-001",
"provisionDeviceKey": "test",
"provisionDeviceSecret": "123456"
}| 字段 | 含义 |
|---|---|
deviceName | 要注册的设备名称 |
provisionDeviceKey | 设备配置中的密钥名 |
provisionDeviceSecret | 设备配置中的密钥 |

第四步:确认平台已创建设备
平台出现「自注册设备-001」即注册成功:


响应示例:
json
{
"credentialsValue": "slHbk6SvQBHZaYxayvcK",
"credentialsType": "ACCESS_TOKEN",
"status": "SUCCESS"
}用其中的 credentialsValue 作为后续正式连接的 Client ID / Username(Token) 登录:

第五步:上报遥测验证


4、总结
厂商在平台建好设备配置并设置密钥 → 设备用 provision 身份连 MQTT → /provision/request 注册 → 平台建设备并返回 Token → 设备存 Flash 后改用 Token 登录。该能力对量产设备非常实用。
补充(辅)
- 正式连接后 Topic 与普通设备相同(如
v1/devices/me/telemetry)。 - 密钥勿硬编码进公开固件仓库;可按批次烧录或安全元件存储。
- 官方文档:Device provisioning。
