资产实体详解:资产类型、资产属性、资产元数据、资产在IoT场景中的典型用途
资产(Asset)是 ThingsBoard 中用于抽象物理或逻辑实体的核心模型。与设备(Device)侧重于数据采集和通信不同,资产更关注业务层面的组织、归属和层级关系。理解资产实体的构成,是构建复杂 IoT 数据链路的基础。
4.1 资产类型(Asset Type)
资产类型是资产实体的分类标签,用于区分不同业务含义的资产。在 ThingsBoard 中,资产类型是一个字符串字段,由用户自定义,一旦创建不可修改。常见的资产类型包括:
| 资产类型 | 典型场景 | 说明 |
|---|---|---|
| Building | 智能楼宇 | 代表一栋物理建筑,可关联楼层、房间、温控设备 |
| Factory | 工业制造 | 代表一个工厂或车间,关联生产线、PLC、传感器 |
| Vehicle | 车联网 | 代表一辆运输车辆,关联 GPS 追踪器、OBD 设备 |
| CustomerSite | 能源管理 | 代表客户站点,关联电表、逆变器、储能设备 |
| Warehouse | 仓储物流 | 代表仓库区域,关联温湿度传感器、门禁设备 |
最佳实践:资产类型命名建议采用大驼峰(PascalCase)风格,如
ProductionLine、HVACUnit。避免使用空格或特殊字符,以方便后续规则链和仪表板中的过滤操作。
4.2 资产属性(Asset Attributes)
资产属性是附着在资产实体上的键值对数据,用于描述资产的静态特征或运行时状态。ThingsBoard 将属性分为三类作用域:
- 服务端属性(Server Attributes):由后端应用写入,通常用于存储资产配置、校准参数、维护记录。例如:
installation_date、warranty_expiry。 - 客户端属性(Client Attributes):由关联设备或外部系统通过 MQTT/HTTP 上报,反映资产的实时状态。例如:
current_load、operating_mode。 - 共享属性(Shared Attributes):可在服务端和客户端之间双向同步,常用于下发配置指令。例如:
target_temperature、setpoint_power。
属性与遥测的区别:属性通常用于描述状态或配置(如“当前模式”),而遥测(Telemetry)用于记录时序数据(如“温度每5秒采样值”)。资产实体本身不产生遥测,但可以通过关联设备间接聚合遥测数据。
4.3 资产元数据(Asset Metadata)
资产元数据是资产实体创建时附加的结构化信息,以 JSON 对象形式存储。与属性不同,元数据在资产生命周期中通常不频繁变更,主要用于:
- 地理信息:经纬度、地址、时区。
- 组织归属:部门、负责人、成本中心。
- 资产标识:资产编号、序列号、二维码内容。
- 合规标签:安全等级、维护周期、认证状态。
// 资产元数据示例(JSON)
{
"assetCode": "BLD-2024-089",
"floorCount": 12,
"address": "上海市浦东新区张江高科技园区",
"timezone": "Asia/Shanghai",
"responsiblePerson": "张三",
"safetyLevel": "A"
}
注意:元数据一旦创建,只能通过 REST API 或规则链中的“更新资产”节点修改。在仪表板中无法直接编辑元数据字段,建议将需要频繁调整的参数放在服务端属性中。
4.4 资产在 IoT 场景中的典型用途
资产实体在 IoT 数据链路中扮演“业务容器”的角色,以下是四种最典型的应用模式:
- 设备分组与聚合:将多个设备关联到同一资产下,实现按资产维度的数据聚合。例如:一个“工厂”资产下关联 50 台“电机”设备,仪表板可展示工厂级的总能耗。
- 层级建模:资产之间可以建立父子关系,形成树形结构。例如:
园区 → 楼宇 → 楼层 → 房间,每个层级都是一个资产,上层资产自动聚合下层数据。 - 告警关联:告警可以关联到资产而非具体设备,便于运维人员从业务视角处理问题。例如:当“制冷机组”资产下的多个温度传感器同时超限时,生成一条资产级告警。
- 规则链路由:在规则链中,可以根据资产类型或资产属性进行消息路由。例如:将所有类型为
HVACUnit的资产数据转发到独立的温控处理规则链。
4.5 资产层级建模示例
在大型 IoT 部署中,资产层级建模是数据治理的关键。以下是一个典型的智能园区资产树:
层级建模优势:通过资产树,上层资产(如园区)可以自动聚合下层所有设备的遥测数据。在 ThingsBoard 仪表板中,只需配置一个“园区”资产的数据源,即可展示整个园区的总能耗、平均温度等聚合指标,无需逐个设备配置。
4.6 资产与设备数据链路设计要点
| 设计维度 | 推荐做法 | 避免做法 |
|---|---|---|
| 资产类型定义 | 按业务域划分,保持类型数量在 10 个以内 | 为每个设备单独创建资产类型 |
| 属性作用域选择 | 静态配置用服务端属性,动态状态用客户端属性 | 将遥测数据存入属性字段 |
| 元数据使用 | 存储创建后几乎不变的结构化信息 | 在元数据中存储频繁更新的计数器 |
| 层级深度 | 建议不超过 5 层,避免性能开销 | 创建超过 10 层的资产树 |
| 设备关联 | 一个设备只关联一个主要资产 | 将设备同时关联到多个平级资产 |
进阶提示:在规则链中,可以使用“Originator Type”过滤器区分消息来自资产还是设备。当需要从设备消息中提取资产上下文时,使用“Related Entity Data”节点通过关联关系查询资产属性,实现设备数据到资产维度的自动映射。