1. Provision 解决什么问题
当你不想在网关侧手工配置 token/账号,而希望网关“启动后自动获取凭据”时,可以使用 Provision。
插件会:
- 连接到 TB 的 provision MQTT broker(通常同 host/port)
- 订阅
/provision/response - 发布
/provision/request - 等待响应并提取凭据
- 将凭据持久化到 extension storage(下次启动复用)
2. 你需要在 ThingsBoard 侧准备什么
你需要在 TB 中配置 Device Profile 配置,获得:
provision_device_keyprovision_device_secret

device_name 的来源
当前实现中,ProvisionRequest 的 device_name 使用 App 名称(app_name)。
因此建议:把 App 命名为你期望在 TB 中出现的网关名(稳定、可运维)。
3. 重试与超时语义
Provision 配置字段:
timeout_ms:整个 provision 流程的总超时max_retries:最大重试次数0表示无限重试(直到总超时耗尽)1表示只尝试一次(失败立即返回)
retry_delay_ms:重试间隔
WARNING
即使 max_retries=0,也会受 timeout_ms 约束,超时后会返回 Timeout。
4. 常见排障
- 一直超时:检查 TB 是否启用了 provision、端口是否可达、ACL/防火墙
- NotFound/Failure:device key/secret 不匹配,或 TB已存在同名设备
- 证书模式失败:确认 TB 返回的证书字段格式(certificate/privateKey)与网关解析一致
