1. 自定义设备配置文件
任务说明
在 ThingsBoard 中,设备配置文件(Device Profile)用于定义设备的传输协议、告警规则及默认属性。本案例将创建一个名为“温湿度传感器”的新设备配置文件,并为其分配两个自定义属性(manufacturer 和 location),用于区分普通设备与温湿度传感器设备。完成后的配置文件可在设备创建时直接选用,实现设备类型的快速区分。
实现路径
本案例通过 ThingsBoard REST API 完成全部操作,无需编写额外代码。核心步骤为:先调用 POST /api/deviceProfile 创建设备配置文件,再调用 POST /api/deviceProfile/{profileId} 更新该配置文件的属性信息。整个流程可通过 curl 命令或 Postman 执行,操作结果可在 ThingsBoard 界面“设备配置”页面中直接查看验证。
操作步骤与代码
以下命令假设 ThingsBoard 运行在 http://localhost:8080,且已获取有效 JWT 令牌(YOUR_JWT_)。
1. 创建设备配置文件
curl -X POST "http://localhost:8080/api/deviceProfile" \
-H "Content-Type: application/json" \
-H "X-Authorization: Bearer YOUR_JWT_" \
-d '{
"name": "温湿度传感器",
"description": "用于温湿度采集的设备类型",
"transportType": "DEFAULT",
"profileData": {
"configuration": {
"type": "DEFAULT"
},
"transportConfiguration": {
"type": "DEFAULT"
},
"provisionConfiguration": {
"type": "DISABLED"
},
"alarmRules": {}
}
}'
执行成功后,响应体中将返回包含 id 字段的 JSON 对象,该 id 即为新配置文件的 profileId,请记录备用。
2. 为配置文件分配自定义属性
curl -X POST "http://localhost:8080/api/deviceProfile/{profileId}" \
-H "Content-Type: application/json" \
-H "X-Authorization: Bearer YOUR_JWT_" \
-d '{
"id": {
"id": "{profileId}",
"entityType": "DEVICE_PROFILE"
},
"name": "温湿度传感器",
"description": "用于温湿度采集的设备类型",
"transportType": "DEFAULT",
"profileData": {
"configuration": {
"type": "DEFAULT"
},
"transportConfiguration": {
"type": "DEFAULT"
},
"provisionConfiguration": {
"type": "DISABLED"
},
"alarmRules": {}
},
"additionalInfo": {
"manufacturer": "Acme Corp",
"location": "Room-101"
}
}'
将 {profileId} 替换为第 1 步中获取的真实 ID。此操作通过 additionalInfo 字段写入自定义属性,ThingsBoard 会将 additionalInfo 中的键值对作为配置文件的属性存储。
验证方法
完成上述两步后,可通过以下任一方式验证结果:
- 界面验证:登录 ThingsBoard 界面,进入“实体”→“设备配置”页面,找到“温湿度传感器”条目。点击该条目打开详情,在“属性”或“附加信息”区域应能看到
manufacturer=Acme Corp和location=Room-101两个键值对。 - API 验证:执行以下命令,确认返回的 JSON 中
additionalInfo字段包含上述两个属性:
curl -X GET "http://localhost:8080/api/deviceProfile/{profileId}" \
-H "X-Authorization: Bearer YOUR_JWT_"
判定标准:若 GET 响应中的 additionalInfo 对象包含 "manufacturer": "Acme Corp" 与 "location": "Room-101",且配置文件名称显示为“温湿度传感器”,则本案例操作成功。此后在创建设备时,即可在“设备配置文件”下拉框中选择该配置,实现设备类型的区分。