前期我们给ESP8266烧写了Tasmota固件,并连接了PZEM-004T、DHT11传感器,实现了Home Assistant集成,下面介绍应用InfluxDB、Grafana监测智能电表历史数据。
Grafana是一个功能强大的分析和监控的开放平台,提供监测指标的查询、可视化、提醒功能,可创建、浏览和共享定制的仪表板。InfluxDB是一个开源时间序列数据库,针对高写入量进行了优化,可用于记录度量、传感器数据、事件和执行分析。Grafana和InfluxDB结合使用可为智能家居提供强大的仪表盘展示功能。
一、安装InfluxDB和Grafana
在Home Assistant选择“配置”——》“加载项”——》“加载项商店”,选择“InfluxDB”——》“安装”。
完成安装后,启动InfluxDB。
在Home Assistant选择“配置”——》“加载项”——》“加载项商店”,选择“Grafana”——》“安装”。
完成安装后,启动Grafana。
二、配置InfluxDB
点击侧边栏InfluxDB。
选择“InfluxDB Admin”——》“Database”创建数据库。
选择“+Create Database”创建名称为“home_assistant”的数据库,并设置数据保存期限30d(30天)。
然后点击“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”,进入查询编辑界面。
选择数据库连接,点击“Add a Query”开始定制查询语句。
分别选择Database(前面创建的InfluxDB数据库)、Measurements & Tags(根据数据的计量单位选择对应表单、实体)、Fields(数据项)等,即可完成查询定制,点击“Submit Query”执行查询。
点击“Send to Dashboard”可将查询发送到InfluxDB的仪表盘,选择左侧的Dashboards,可进入仪表盘定制页面。
四、用Grafana定制HomeAssistant数据仪表盘
选择侧边栏Grafana,点击“DATA SOURCES”设置数据源(选择前面创建的InfluxDB数据库),分别设置数据库URL、数据库名、用户、密码等后,选择“Save & Test”。
点击Dashboards进入仪表盘定制界面。
选择“Add a new panel”。
点击“FROM”的“select measurement”,选择要展示的指标,注意:这里只显示指标的计量单位,如我们要展示温度就选择“℃”,电压选择“V”。然后点击“WHERE”后的“+”添加查询条件,在这里需选择具体的实体名称。接下来再根据需要设置“SELECT”“GROUP BY”等。设置好后如下图:
完成以上设置后可在右侧栏目进一步设置图形格式,如名称、线形、图例、坐标等等,最后点击“Save”保存。
完成后可点击上方的“★”设置为常用仪表盘。