产品定价 立即试用
专业版
文档 > 报告 > 报告入门指南
入门
指南 安装 架构 API 常见问题
目录

报告功能入门

4.2及以上版本
文档信息图标
ThingsBoard PE 功能

专业版支持Reporting功能。
请使用ThingsBoard Cloud自行安装平台实例。

在ThingsBoard中,报表是用于以报表形式收集、组织并自动交付数据的强大而灵活的工具。

报表系统围绕两个关键组件构建:

  • 报表模板 — 定义报表的结构、内容和格式。模板可以是PDFCSV格式,并可包含任意支持的组件
  • 调度器事件 — 在指定时间自动触发报表生成,并通过可用渠道(如email、Slack或其他集成)将其发送给所选收件人。

简而言之:模板定义报表内容,而调度器决定何时以及发给谁

本指南将介绍在ThingsBoard中使用报表的基本步骤,并创建一个报表模板,配置为向两个不同客户自动交付。

前提条件

需有一台运行中的 ThingsBoard 服务器:

重要:

  • 本示例中已创建三台设备和拥有这些设备的两名客户。部分设备上已触发告警。 您需要同样操作 — 否则报表中的设备和告警表将为空。
  • 如果您刚开始使用ThingsBoard平台,建议先阅读ThingsBoard专业版入门指南

步骤1. 创建报表模板

作为示例,让我们创建一个包含以下内容的报表模板:

  • 包含所有客户设备的表格,显示其最新遥测值和当前状态。
  • 过去24小时这些设备上触发的告警表
  • 两个独立的折线图,分别显示设备过去24小时的温度和湿度值。

此设置既能提供设备状况的最新概览,又能快速查看今日检测到的问题 — 全部整合在一份报表中。

  • 从左侧边栏打开”报表“页面。您将自动进入”模板“标签页。
  • 点击右上角的”+ 添加报表模板“按钮。
  • 选择”创建新报表模板“。
  • 在弹窗中填写以下内容:
    • 将其名称设为”每日设备告警报表“。
    • 选择PDF报表格式
    • 选择报表作为模板类型
    • [可选] 描述:”每日设备活动和告警报表“。
    • 点击”添加“以创建报表模板并打开报表构建器界面。

报表构建器中,您可以设计报表的结构、布局和内容。

步骤2. 添加报表组件

报表构建器允许您添加和配置用于定义报表结构和视觉布局的组件。

通过将组件从组件库拖入内容区域来添加组件。

步骤2.1“标题”组件

首先,添加标题组件。

  • 报表组件库中找到并将其拖入报表的标题区域
  • 编辑器文本字段下,输入您想要的标题文本。本示例中,我们使用与报表模板相同的名称:
    1
    
    每日设备告警报表
    
  • 如需要,可调整字体设置(如大小、样式或对齐)以使标题更突出。
  • 完成后,点击应用保存组件。

步骤2.2“富文本”组件

接下来,添加富文本组件,其中包含报表用途的简要说明。

  • 组件库中找到富文本组件,并将其拖入内容区域
  • 在组件的文本字段中输入以下文本(或您偏好的描述)。 例如:
    1
    
    本报表列出您项目中当前部署的所有设备及其当日的告警。
    
  • 添加文本后,点击应用

步骤2.3“实体表”组件

下一个要添加的组件是实体表 — 表格型组件,用于显示所有设备及其最新遥测值和状态列表。

  • 组件库实体表组件拖放入内容区域
  • 数据源部分,创建新的实体别名,用于获取类型为设备的所有实体。
  • 开启表头并更新表头文本。
  • 部分:
    • 添加新表列,将键设为”temperature“。
    • 添加另一列表列,遥测键为”humidity“。
    • 再添加一列属性”active“,用于显示设备状态。
  • 列设置中,为每个键的单元格设置居中对齐
  • 点击保存组件以应用更改。

步骤2.4“告警表”组件

下一个要添加的组件是告警表组件,用于显示所选时间段的告警列表。

  • 从组件面板将告警表组件拖入报表布局的主内容区域。
  • 默认情况下,告警表预配置为显示过去24小时的告警。
  • 所有设备实体别名设为告警来源
  • 筛选器部分,勾选仅显示当前活动告警。
  • 向下滚动,找到标为表头的开关并开启。
  • 输入您想要的表头,例如:
    1
    
    下表列出您的设备过去一天的告警。
    
    • 如需要,调整水平对齐并减小字体大小
  • 保持表列不变(无需修改)。
  • 保存组件。

步骤2.5“折线图”组件

我们将在报表中添加的最后组件是两个独立的折线图,用于可视化温度湿度历史遥测趋势。每个图表将表示您设备过去24小时收集的数据。

1. 添加第一个图表 — 温度

  • 折线图组件拖入报表的内容区域。
  • 默认情况下,时间窗口显示过去一天的数据,按1小时聚合。
  • 将实体别名所有设备设为数据源
  • 保留遥测键temperature,但将标签改为
    1
    
    ${entityName} temperature
    
  • 配置Y轴:
    • 标签:温度
    • 最小值:15
    • 最大值:35
    • 单位:°C
  • 设置阈值:
    • 第一项:30 °C,颜色 红色
    • 第二项:18 °C,颜色 蓝色
  • 图例位置设为底部
  • 保存组件。


2. 添加第二个图表 — 湿度

  • 在第一个下方拖入另一个折线图组件。
  • 将实体别名所有设备指定为数据源
  • 将遥测键设为humidity,单位%,并将标签改为
    1
    
    ${entityName} humidity
    
  • 配置Y轴:
    • 标签:湿度
    • 单位:%
  • 图例位置设为底部
  • 保存组件。

步骤2.6保存报表模板并预览

在报表模板中添加并配置所有必需组件后,最后一步是保存您的工作,并可选择生成测试报表以验证显示是否正确。


更新报表文件名

保存模板前,更新报表文件名,便于识别导出的文件:

  • 文件名模式字段中输入清晰、描述性的名称,例如:
    1
    
    daily-device-alarm-report-%d{yyyy-MM-dd_HH:mm:ss}
    


保存模板

要保存当前配置:

  • 点击报表构建器界面右上角的保存按钮。

这将把您的布局、组件和设置保存到当前模板下,供手动或定时报表生成时使用。

步骤2.7生成测试报表(可选)

要确保模板配置正确且数据按预期显示,点击”生成测试报表“(位于保存按钮旁边)。 系统将使用您所选实体别名的可用测试数据创建示例报表。

步骤3:为客户安排报表

每日设备告警报表模板准备就绪后,您可以使用调度器功能为客户端配置自动交付。

正确调度的关键点

为确保报表正确生成且包含准确数据,您必须指定:

  • 报表收件人 — 将收到生成报表的用户(如经理或客户)。
  • 用户账户 — 代表其生成报表的账户。这定义了报表的数据范围和应用的权限。

为何重要

在ThingsBoard中,报表根据触发报表的用户账户的访问权限生成。

示例:

  • 如果报表应仅包含客户A拥有的设备,在调度报表时必须将用户字段设为属于客户A的用户的email地址。
  • 同样,要为客户B的收件人调度报表,在用户字段中使用客户B用户的email地址。

这确保报表仅显示该特定用户可访问的设备和数据。

步骤3.1为客户A用户调度报表

首先,我们为客户A的所有用户配置报表的自动deliver。 报表将代表Jane Smith(该客户的管理员)生成。

  • 进入”报表“页面的”调度“标签页。
  • 点击右上角的”+ 定时报表“创建新的调度器事件。
  • 在调度对话框中提供以下详情:
    • 为调度事件指定清晰的标题,例如:
      1
      
      客户A的每日设备告警报表
      
    • 事件类型 — 始终设为创建报表
    • 报表模板 — 选择之前创建的每日设备告警报表模板。
    • 用户 — 指定代表其生成报表的用户账户:janesmith@thingsboard.io(Jane Smith — 客户A管理员)。
  • 设置收件人
    • 在”收件人“字段中,点击新建创建新的收件人组。
      • 输入通知收件人组的名称
      • 选择客户用户筛选器。
      • 客户设为客户A
      • 点击”添加“。
  • 通知模板和推送方式:
    • 选择现有通知模板(定义报表的推送方式)并编辑。
    • Web之外添加Email作为推送方式。点击”下一步“。
    • 添加将附加PDF报表邮件通知主题和正文。点击”保存“。

设置调度

  • 进入调度标签页。
  • 开始时间 — 设置首次运行的日期和时间。
  • 时区 — 选择适用的时区。
  • 启用重复
    • 间隔 — 选择每日
    • 结束日期 — 设置结束日期或留空以持续deliver。
  • 最后,点击”创建“保存并应用调度器事件。

现在,每天在指定时间,所有客户A用户将自动收到包含其设备告警最新信息的报表。

步骤3.2. 为客户B用户调度报表

现在让我们创建另一个调度事件,将报表发送给客户B的用户。 此报表将代表Emma Johnson — 该客户的管理员生成。

  • 在”模板“页面的右上角点击”+ 定时报表“创建新的调度器事件。
  • 为调度指定描述性名称,例如:
    1
    
    客户B的每日设备告警报表
    
  • 选择与客户A相同的模板 — 每日设备告警报表
  • 将用户账户设为emmajohnson@thingsboard.io(Emma Johnson – 客户B管理员)。

    报表将代表此用户生成,仅包含客户B可访问的数据。

  • 在”收件人“字段中,点击”新建“创建新的收件人组。
    • 名称:输入组名
    • 筛选器:选择客户用户
    • 客户:设为客户B
    • 点击”添加“。
  • 使用已配置为通过EmailWeb发送消息的现有通知模板
  • 以与客户A相同的方式设置发送调度:
    • 开始日期/时间:指定首次运行的日期和时间。
    • 重复:启用此选项。
      • 间隔:选择”每日“。
      • 结束日期:设置调度的结束日期。
  • 最后,点击”创建“保存调度器事件。

步骤4. 调度事件结果

两种场景使用相同的模板 — 每日设备告警报表。

两个客户的每位用户各自收到的报表仅包含其可访问的实体。

系统在指定时间每天自动发送报表,无需任何人工干预。

在调度事件中指定的时间,客户A和客户B的所有用户将收到通知以及生成的设备告警报表。

通知将通过两个渠道发送:

1. Web UI通知

  • 有关生成报表的通知将出现在ThingsBoard Web UI中。
  • 租户用户可以直接在ThingsBoard界面中打开报表。

重要:

  • 仅租户用户可以直接在ThingsBoard Web UI中查看生成的报表。
  • 客户用户无法在Web UI中访问报表 — 他们只能通过EmailSlack接收。 如果收件人是客户用户,请确保至少选择其中一种推送渠道。


2. 邮件通知

  • 将向用户发送邮件,主题和正文为您在通知模板中配置的内容。
  • 邮件将附带报表作为PDF文件,可在浏览器中打开查看或下载。

从JSON导入模板

如需要,您也可以以JSON文件格式下载现成的“每日设备告警报表”模板。 要将JSON文件中的模板导入您的实例,请参阅本指南中的说明。

下一步

您的反馈

欢迎在github上为ThingsBoard加星,帮助我们传播。 如对本示例有任何疑问,请联系我们