前期我们给ESP8266烧写了Tasmota固件,并连接了PZEM-004T、DHT11传感器,实现了Home Assistant集成,下面介绍应用InfluxDB、Grafana监测智能电表历史数据。

Grafana是一个功能强大的分析和监控的开放平台,提供监测指标的查询、可视化、提醒功能,可创建、浏览和共享定制的仪表板。InfluxDB是一个开源时间序列数据库,针对高写入量进行了优化,可用于记录度量、传感器数据、事件和执行分析。Grafana和InfluxDB结合使用可为智能家居提供强大的仪表盘展示功能。

一、安装InfluxDB和Grafana

在Home Assistant选择“配置”——》“加载项”——》“加载项商店”,选择“InfluxDB”——》“安装”。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_Grafana容器重启后仪表板没有数据

 完成安装后,启动InfluxDB。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_数据库_02

 在Home Assistant选择“配置”——》“加载项”——》“加载项商店”,选择“Grafana”——》“安装”。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_Grafana容器重启后仪表板没有数据_03

 完成安装后,启动Grafana。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_智能家居_04

二、配置InfluxDB

点击侧边栏InfluxDB。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_智能家居_05

 选择“InfluxDB Admin”——》“Database”创建数据库。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_grafana_06

 选择“+Create Database”创建名称为“home_assistant”的数据库,并设置数据保存期限30d(30天)。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_数据库_07

 然后点击“Users”创建用户。

三、InfluxDB获取HomeAssistant数据

打开HomeAssistant配置文件configuration.yaml,添加以下代码段:

influxdb:
  host: a6d7b788-influxdb
  port: 8086
  database: homea_ssistant
  username: <yourname>
  password: <yourpassword>
  max_retries: 3
  default_measurement: state

保存后重启HomeAssistant,这样就可以在InfluxDB查看从HomeAssistant流入到InfluxDB的数据。

返回InfluxDB,点击“Explore”,进入查询编辑界面。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_grafana_08

 选择数据库连接,点击“Add a Query”开始定制查询语句。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_grafana_09

分别选择Database(前面创建的InfluxDB数据库)、Measurements & Tags(根据数据的计量单位选择对应表单、实体)、Fields(数据项)等,即可完成查询定制,点击“Submit Query”执行查询。

点击“Send to Dashboard”可将查询发送到InfluxDB的仪表盘,选择左侧的Dashboards,可进入仪表盘定制页面。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_数据库_10

 

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_智能家居_11

四、用Grafana定制HomeAssistant数据仪表盘

选择侧边栏Grafana,点击“DATA SOURCES”设置数据源(选择前面创建的InfluxDB数据库),分别设置数据库URL、数据库名、用户、密码等后,选择“Save & Test”。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_智能家居_12

 点击Dashboards进入仪表盘定制界面。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_数据_13

 选择“Add a new panel”。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_grafana_14

 点击“FROM”的“select measurement”,选择要展示的指标,注意:这里只显示指标的计量单位,如我们要展示温度就选择“℃”,电压选择“V”。然后点击“WHERE”后的“+”添加查询条件,在这里需选择具体的实体名称。接下来再根据需要设置“SELECT”“GROUP BY”等。设置好后如下图:

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_grafana_15

 完成以上设置后可在右侧栏目进一步设置图形格式,如名称、线形、图例、坐标等等,最后点击“Save”保存。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_grafana_16

 完成后可点击上方的“★”设置为常用仪表盘。

Grafana容器重启后仪表板没有数据 grafana仪表盘展示工具_grafana_17