:::info 匹配版本:V3.20
页面状态:已完成
原文地址:点击跳转 :::

功能概述

ThingsBoard(TB) 实体视图(EVs) 是 v2.2 开始新增的功能。许多 TB 用户都要求增加这个功能。与 SQL 数据库视图类似,这用来限制底层数据表的公开程度,TB 的实体视图可以限制设备或资产的 遥测属性客户 的开放程度。作为租户管理员,你可以为每个设备或资产创建多个实体视图并将其分配给不同客户。
支持以下使用方式:

  • 同时与多个客户共享特定的设备或资产的数据。由于 TB 安全模型的限制,以往的实体视图功能是不可能实现的。
  • 允许特定的客户用户查看收集到的数据(例如传感器读数),但隐藏调试信息,如电池电量、系统错误等。
  • 设备即服务(device-as-a-service, DaaS)模型,其中设备在不同时间段收集的数据属于不同的客户。

结构

实体视图包含以下信息:

  • TenantId - 指向视图所有者的链接;
  • CustomerId - 指向可以访问视图的客户的链接;
  • EntityId - 指向目标设备或资产的链接;
  • Name and type - 用于显示和搜索目的的常规 ThingsBoard 实体字段;
  • Start and end time - 用于对目标设备的遥测数据访问的时间段的限制。客户将无法看到实体超出指定时间段的遥测数据;
  • Timeseries keys - 查看器可访问的时序数据键的列表;
  • Attribute keys - 查看器可访问的属性的键的列表;

实体视图 - 图1
了解 TB 如何处理遥测数据和属性更新以及这些更改如何影响实体视图是非常重要的。

时序数据查看

所有时序数据都存储在代表目标实体的数据库中。对任何实体视图而言都是没有重复的时序数据。当用户打开一个面板或者调用实体视图的 API 接口时,将会执行以下动作:

  • 验证并调整请求的开始和结束时间戳,以适应实体视图的开始和结束时间。例如,假如仪表板尝试获取一年的数据,但实体视图的配置只允许访问六个月的数据。
  • 根据实体视图中提供的时序数据的键验证和调整请求时序数据的键。因此,如果仪表板试图获取这个视图禁止的遥测数据的键,不能成功执行。

属性数据查看

每当保存或更新此实体视图时,实体视图将自动从目标实体复制指定的属性。由于性能原因,目标实体属性不会在每次属性更改时同步到实体视图。您可以通过配置规则链中的“copy to view” 规则节点,并将“Post attributes”和“Attributes Updated”消息链接到新规则节点,从而启用自动传播。
实体视图 - 图2

开发中的功能

以下功能已在ThingsBoard的开发路线图中:

  • 为设备视图增加启动/禁用RPC 请求的功能;
  • 添加为特定视图配置可访问(传播)的警报列表的功能。

下一步