:::info
匹配版本:V3.20
页面状态:已完成
原文地址:点击跳转
:::
ThingsBoard 可以自定义实体属性,并且还可以管理这些属性。属性采用键值对格式(key/value)。键值对格式的属性灵活、简洁,可以兼容市场上几乎所有的物联网设备物模型。
视频教程
属性类型
属性主要有三种类型:
- server-side(服务器端) - 服务端实行,属性由服务器端的程序上传和管理。对设备端应用不可见。一些加密数据可能用在 ThingsBoard 的规则上,但不应该用在设备上。任何 ThingsBoard 实体(设备、资产、客户、租户、规则等)都支持服务器端属性。
- client-side (设备端)- 客户端属性,参见下面的设备特定属性
- shared (共享)- 共享属性,请阅读下面设备特定属性
设备特定的属性类型
可以在Rule Engine(规则引擎)组件中使用所有属性:过滤器,处理器和操作。本指南概述了上面列出的功能,并提供了一些有用的链接以获取更多详细信息。
设备特有的属性分为两个类型:
- client-side(客户端) - 属性由设备端的程序提交和管理。例如当前软件/固件版本,硬件规格等。
shared(共享) - 属性由服务器端程序上传和管理。对设备程序可见。例如客户订阅计划,目标软件/固件版本。
设备属性API
ThingsBoard 为设备程序提供了以下 API
上传
client-side
属性到服务器- 从服务器拉取
client-side
和shared
属性. - 订阅
shared
属性的更新。
设备属性API支持以下通信协议。你可以在相应的参考页面中查看API和示例:
- MQTT API 参考;
- CoAP API 参考;
-
遥测服务
遥测服务负责将属性数据永久保存到内部数据存储器中; ThingsBoard 提供了服务器端 API 用来查询和订阅属性更新。
内部数据存储中间件
ThingsBoard 使用 Cassandra NoSQL 数据库或 SQL 数据库存储所有数据。
尽管可以直接查询数据库,但为了简化流程,加强安全,ThingsBoard 提供了一组 RESTful 和 Websocket API: 租户管理员能够管理属于自己的所有实体属性。
- 客户用户只能管理分配给自己的实体属性。
数据查询AP
遥测服务提供以下 REST API 来获取实体数据
注意: 上面列出的 API 可以通过 Swagger UI
查看,请查看通用 REST API 文档了解更多细节。为了 API 能够向下兼容 TB v1.0+
版本,请求链接中包含了 plugin
字段。
属性键的 API
您可以用 GET
的请求方式访问下面链接来获取指定了实体类型和 id 的所有属性键的列表
http(s)://host:port/api/plugins/telemetry/{entityType}/{entityId}/keys/attributes
所用命令如下:
curl -v -X GET http://localhost:8080/api/plugins/telemetry/DEVICE/ac8e6020-ae99-11e6-b9bd-2b15845ada4e/keys/attributes \
--header "Content-Type:application/json" \
--header "X-Authorization: $JWT_TOKEN"
例如查询返回的结果如下:
["model","softwareVersion"]
支持的实体类型有: 租户、客户、用户、规则、仪表板、资产、设备、警报
属性值的 API
你可以通过 GET
的方式访问下面链接来获取指定了实体类型和 id 的所有属性最新值的列表
http(s)://host:port/api/plugins/telemetry/{entityType}/{entityId}/values/attributes?keys=key1,key2,key3
所用命令如下:
curl -v -X GET http://localhost:8080/api/plugins/telemetry/DEVICE/ac8e6020-ae99-11e6-b9bd-2b15845ada4e/values/attributes?keys=model,softwareVersion \
--header "Content-Type:application/json" \
--header "X-Authorization: $JWT_TOKEN"
返回的结果如下:
[
{
"lastUpdateTs": 1479735871836,
"key": "model",
"value": "Model 42"
},
{
"lastUpdateTs": 1479735871836,
"key": "softwareVersion",
"value": "1.0.0"
}
]
支持的实体类型有:租户、客户、用户、规则、仪表板、资产、设备、警报
遥测规则节点
规则引擎中有一些规则节点与遥测服务配合处理。详情请参考节点描述:
- 扩展节点-加载实体的最新遥测
- 保存时序数据
- 保存属性
数据可视化
ThingsBoard 支持配置和定制用于数据可视化的仪表板。这些功能会在单独的指南中讨论。
数据可视化指南规则引擎
ThingsBoard 可以配置数据处理规则。设备属性可以在规则过滤器中使用。这样可以基于某些设备属性来设计规则。你可以在单独的指南中找到更多的细节。
规则引擎指南
个人备注
有关于属性的范围插槽,具体字段为:
SERVER_SCOPE
服务端属性; CLIENT_SCOPE
设备端属性; SHARED_SCOPE
共享端属性; 保存属性的格式 {key:value}:::