仪表板基础操作:创建仪表板、添加别名、配置时间窗口、仪表板状态与权限管理
仪表板是 ThingsBoard 数据可视化的核心载体。本章将系统讲解仪表板的四大基础操作:从零创建仪表板、通过别名机制解耦数据源、灵活配置时间窗口,以及利用状态与权限实现多角色协作。掌握这些操作是后续自定义图表与报表开发的前提。
2.1 创建仪表板
在 ThingsBoard 中,仪表板是一个包含多个小部件(Widget)的容器。创建仪表板有两种主要入口:
- 实体仪表板(Entity Dashboard):绑定到特定实体(如设备、资产),打开时自动加载该实体的数据。
- 普通仪表板(Regular Dashboard):独立存在,可通过别名手动指定数据源。
创建步骤(以普通仪表板为例):
- 登录 ThingsBoard,进入左侧菜单 仪表板(Dashboards)。
- 点击右上角 “+” 按钮,选择 “创建新仪表板”。
- 输入仪表板标题(如“工厂产线监控”),可选填描述。
- 点击 “添加”,系统自动进入仪表板编辑模式。
- 在编辑模式下,点击 “添加新小部件”,选择小部件类型并配置数据源。
提示: 创建仪表板时,建议在标题中包含项目或场景关键词(如“车间A_温度监控”),便于后期搜索与权限分配。
2.2 添加别名
别名(Alias)是 ThingsBoard 仪表板中数据源的逻辑引用。它允许小部件通过别名名称访问实体,而不直接绑定实体 ID。当实体发生变化(如设备替换)时,只需更新别名定义,无需逐个修改小部件。
别名类型及适用场景:
| 别名类型 | 说明 | 典型场景 |
|---|---|---|
| 单个实体 | 直接指定一个设备或资产 | 监控单一关键设备 |
| 实体列表 | 指定多个实体,小部件可遍历显示 | 批量查看同类传感器 |
| 实体组 | 引用一个实体组(Entity Group) | 按区域或类型分组监控 |
| 资产/设备类型 | 按类型动态匹配所有实体 | 新增设备自动纳入仪表板 |
| 关系查询 | 基于实体关系链查找目标实体 | 从资产向下查找关联设备 |
添加别名步骤:
- 在仪表板编辑模式下,点击顶部 “实体别名” 图标(或通过菜单 “仪表板设置” → “实体别名”)。
- 点击 “添加别名”,输入别名名称(如
温度传感器组)。 - 选择别名类型(如“实体组”),并配置过滤条件。
- 点击 “测试” 验证别名是否能正确解析到实体。
- 保存别名配置,返回小部件编辑时即可在数据源中选择该别名。
最佳实践: 别名名称建议使用有意义的英文或拼音(如
temp_sensor_group),避免使用中文或特殊字符,确保在表达式和脚本中稳定引用。
2.3 配置时间窗口
时间窗口决定了小部件展示数据的时间范围。ThingsBoard 提供多种时间窗口模式,满足实时监控与历史分析需求。
时间窗口配置入口:
- 仪表板级时间窗口:在仪表板设置中统一配置,所有小部件默认继承。
- 小部件级时间窗口:在单个小部件的“高级”设置中覆盖仪表板级配置。
常见时间窗口类型:
| 类型 | 配置方式 | 示例 |
|---|---|---|
| 实时窗口 | 指定最近 N 分钟/小时 | 最近 30 分钟 |
| 固定区间 | 指定起止时间 | 2025-01-01 00:00 ~ 2025-01-02 00:00 |
| 动态区间 | 基于当前时间偏移 | 昨天全天、本周至今 |
| 聚合窗口 | 按固定间隔聚合历史数据 | 过去 7 天,按小时聚合 |
配置时间窗口时,需注意 聚合策略 与 数据点限制:
- 聚合策略:支持 AVG、MIN、MAX、SUM、COUNT、NONE(原始值)。
- 数据点限制:默认最大 500 点,超出时系统自动降采样。
注意: 时间窗口设置过大会导致前端渲染卡顿。建议实时窗口不超过 24 小时,历史窗口配合聚合策略使用,并适当降低数据点限制。
2.4 仪表板状态与权限管理
ThingsBoard 的仪表板状态(State)机制允许在一个仪表板内创建多个视图,通过状态切换实现多页面导航。权限管理则控制不同用户对仪表板的访问与操作级别。
2.4.1 仪表板状态
状态可以理解为仪表板的“页面”或“标签页”。每个状态可以包含不同的小部件布局和数据源配置。
创建与管理状态:
- 在仪表板编辑模式下,点击顶部 “管理仪表板状态” 按钮。
- 点击 “添加状态”,输入状态名称(如“总览”、“设备详情”)。
- 设置状态的根状态(默认进入的页面)和状态间的导航关系。
- 通过 “状态切换小部件”(如按钮、下拉框)实现用户交互切换。
状态切换支持两种模式:
- 静态切换:用户点击按钮直接跳转到指定状态。
- 动态切换:根据实体或数据值动态决定跳转目标(如点击设备卡片跳转到该设备详情状态)。
2.4.2 权限管理
仪表板权限基于 ThingsBoard 的角色体系(租户管理员、客户用户、匿名用户)。权限分为三个层级:
| 权限级别 | 可执行操作 | 适用角色 |
|---|---|---|
| 只读 | 查看仪表板、查看数据 | 客户用户、访客 |
| 编辑 | 修改小部件、调整布局、添加/删除小部件 | 租户管理员、高级用户 |
| 管理 | 修改仪表板设置、管理别名、管理状态、分配权限 | 租户管理员 |
权限分配步骤:
- 在仪表板列表页,点击目标仪表板的 “分配权限” 图标。
- 选择用户或用户组,设置权限级别(只读/编辑/管理)。
- 可选:勾选 “公开” 使仪表板对匿名用户可见(需系统配置支持)。
- 保存后,被授权用户登录即可按权限操作仪表板。
提示: 对于需要分发给客户的仪表板,建议创建只读权限的客户用户,并开启“隐藏仪表板工具栏”选项,防止客户误操作。
2.5 综合操作示例
以下是一个完整的仪表板创建与配置示例,涵盖别名、时间窗口、状态与权限的协同使用:
// 场景:为“车间A”创建监控仪表板
// 1. 创建仪表板
// 标题:车间A_环境监控
// 描述:监控温度、湿度、PM2.5
// 2. 添加别名
// 别名1:temp_sensors(类型:实体组,过滤:类型=温度传感器,标签=车间A)
// 别名2:humidity_sensors(类型:实体组,过滤:类型=湿度传感器,标签=车间A)
// 别名3:pm_sensors(类型:实体组,过滤:类型=PM2.5传感器,标签=车间A)
// 3. 配置时间窗口
// 仪表板级:最近1小时,聚合策略=AVG,数据点限制=200
// 小部件级(历史趋势图):最近24小时,聚合策略=AVG,数据点限制=500
// 4. 创建状态
// 状态1:总览(根状态,显示所有传感器实时值)
// 状态2:温度详情(显示温度趋势图与报警列表)
// 状态3:湿度详情(显示湿度趋势图与报警列表)
// 5. 分配权限
// 租户管理员:管理权限
// 车间主任(客户用户):编辑权限
// 巡检员(客户用户):只读权限
关键点: 别名是仪表板灵活性的基石。通过实体组别名,新增传感器自动出现在仪表板中;通过状态切换,一个仪表板可承载多个分析视图;通过权限分层,不同角色各司其职。