Skip to content

ThingsBoard 实现设备认领 ​

正文与配图来自原稿。租户生产设备卖给客户后,由客户认领,成为设备拥有者。

1、使用场景 ​

租户已生产并注册设备,售出后客户通过认领把设备划到自己名下,客户成为拥有者。

2、两种方式 ​

2.1、设备生成密钥 ​

设备出厂开机连服务器,自行生成密钥(含过期时间)并上报,设备进入待认领状态。

向主题发布:

text
v1/devices/me/claim

数据格式:

json
{"secretKey": "value", "durationMs": 60000}

客户登录后,在「认领设备」部件输入设备名称和密钥完成认领:

设备生成密钥流程

2.2、服务端生成密钥 ​

租户随机生成密钥,写入该设备的服务端属性 claimingData,设备待认领。示例:

json
{"secretKey": "YOUR_SECRET_KEY", "expirationTime": 1640995200000}

expirationTime 为可认领截止时间的 Unix 毫秒时间戳。配置后客户同样用认领部件输入设备名与密钥:

服务端密钥流程

3、客户认领设备 ​

租户在部件库创建「设备认领」部件并分配给客户;客户登录后可见,输入密钥即可认领。

3.1、调用接口认领 ​

接口认领

3.2、认领界面输入密钥 ​

界面认领

4、案例实操 ​

4.1、设备端生成密钥 ​

创建设备 device123456:

创建设备

MQTT 连接后向 v1/devices/me/claim 发送:

json
{"secretKey": "test123456", "durationMs": 600000}

MQTT 连接

发送 claim

租户创建认领部件并分配给客户:

创建部件

分配给客户

客户登录认领:

客户认领

客户下已有该设备:

客户设备列表

租户侧可见设备已分配给客户 A:

租户侧归属

4.2、服务端生成密钥 ​

  1. 租户创建设备 deviceB:

创建设备 B

  1. 服务端属性 claimingData:
json
{"secretKey": "test123456", "expirationTime": 1697874582000}

写 claimingData 1

写 claimingData 2

属性结果

  1. 客户认领:输入设备名与密钥 → 成功 → 客户下可见设备:

客户认领 B

认领成功

客户设备


补充(辅) ​

相关文章 ​