如何将 Grafana 与 Home Assistant 集成

导航至

本文由 Kennedy Gichuki 撰写。向下滚动查看作者的简介。

本文涵盖了如何开始使用 Home Assistant 和 Grafana,包括设置 InfluxDBGrafana 与 Docker,配置 InfluxDB 以从 Home Assistant 接收数据,以及创建 Grafana 仪表板来可视化您的数据。它为实时监控和分析 Home Assistant 数据提供了全面的指南。

在本教程中,您将学习如何使用 InfluxDB 将 Grafana 与 Home Assistant 集成。您将学习如何安装和配置 InfluxDB,如何安装和配置 Grafana,以及如何创建 Grafana 仪表板来可视化 Home Assistant 的数据。

定义:Grafana、Home Assistant、InfluxDB

Home Assistant 是一个开源的家庭自动化平台,它通过网页界面或移动应用使用户能够控制和监控各种设备。它支持多种设备和协议,高度可定制,允许用户通过自定义组件集成新的设备和协议。

Grafana 是一个多功能的开源分析和监控平台,提供了强大的数据可视化功能。它支持各种数据源,包括流行的数据库如 InfluxDB、Elasticsearch、Prometheus、MySQL、PostgreSQL 等。通过插件扩展,Grafana 允许用户轻松集成新的数据源以增强分析和监控。

InfluxDB 是一个开源的时序数据库,专为存储和查询时序数据而设计。它支持各种数据类型,包括整数、浮点数、字符串、布尔值等。此外,InfluxDB 通过插件的使用提供了将新数据类型集成进去的灵活性。

Home Assistant 与数据分析与监控平台 Grafana 集成,用于可视化和分析数据。这些数据可以收集并存储在开源时序数据库 InfluxDB 中,允许高效地查询时间戳数据。这些工具共同使用,使用户能够通过 Home Assistant 控制和监控智能家居设备,同时使用 Grafana 和 InfluxDB 实时可视化和分析数据。

home-assistant-grafana

为 Home Assistant 数据可视化设置 InfluxDB

步骤 1:安装和配置 InfluxDB

首先,您需要在您的机器上安装 InfluxDB。您可以在 InfluxDB 网站上找到您特定操作系统的说明。

安装 InfluxDB 后,您需要配置它以接受来自 Home Assistant 的数据。您可以通过创建新的 InfluxDB 数据库和用户帐户来实现。

通过在终端中运行 influx 来打开 InfluxDB CLI。

通过运行以下命令创建一个新的数据库

CREATE DATABASE homeassistant

通过运行以下命令创建一个新的用户帐户

CREATE USER homeassistant WITH PASSWORD 'yourpassword'

通过运行以下命令为新用户帐户授予权限

GRANT ALL ON homeassistant TO homeassistant

通过在终端中运行 exit 来退出 InfluxDB CLI。

步骤 2:在 Home Assistant 中安装 InfluxDB 集成

接下来,您需要安装 Home Assistant 中的 InfluxDB 集成。您可以通过导航到 Home Assistant 网络界面,从侧边栏选择 设置,然后选择 集成 来这样做。从那里,您可以在集成中搜索 InfluxDB 并按照提示配置集成。

InfluxDB integration in Home Assistant

Home Assistant 中的 InfluxDB 集成

更多说明 在此

在配置 InfluxDB 集成时,请确保输入您在上一个步骤中创建的数据库名称、用户帐户和密码。

步骤 3:从 Home Assistant 向 InfluxDB 发送数据

在 Home Assistant 中配置 InfluxDB 集成后,数据应该会自动从 Home Assistant 流向 InfluxDB。要验证数据是否正在发送,您可以在终端中运行 influx 登录 InfluxDB CLI,然后运行以下命令

USE homeassistant
SELECT * FROM "homeassistant"."autogen"."*" LIMIT 10

这将显示 Home Assistant 数据库中的前十个数据点。

使用 Docker 安装 Grafana

如果您希望使用 Docker 在本地机器上运行 Grafana 而不是安装它,您可以按照以下步骤操作。

grafana-docker

步骤 1:安装 Docker

如果您还没有安装 Docker,您需要安装 Docker 在您的机器上。您可以在 Docker 网站 上找到您特定 OS 的说明。

步骤 2:拉取 Grafana Docker 镜像

安装 Docker 后,您可以在终端中运行以下命令来拉取 Grafana Docker 镜像

docker pull grafana/grafana

这将下载到您的机器上的最新版本的 Grafana Docker 镜像。

步骤 3:运行 Grafana Docker 容器

要启动一个新的 Grafana Docker 容器,请在终端中运行以下命令

docker run -d -p 3000:3000 --name=grafana grafana/grafana

这将启动一个名为 grafana 的新容器,并将容器的 3000 端口映射到本地机器的 3000 端口。

步骤 4:访问 Grafana 网络界面

容器启动后,您可以通过在 Web 浏览器中导航到 https://127.0.0.1:3000 来访问 Grafana 网络界面。

步骤 5:创建 Grafana 帐户并连接数据源

当您首次访问 Grafana 网络界面时,您将被提示创建新的用户帐户。创建帐户后,您可以按照前面的步骤开始配置 Grafana,添加数据源并创建仪表板。

步骤 6:配置 Grafana

安装 Grafana 后,您需要配置它以连接到 InfluxDB 数据库。您可以通过以下步骤来实现

通过在 Web 浏览器中导航到 https://127.0.0.1:3000 来打开 Grafana 网络界面。使用默认用户名 admin 和密码 admin 登录 Grafana。

  1. 在侧边栏中单击 配置 图标并选择 数据源
  2. 单击 添加数据源 按钮,并选择 InfluxDB。在 InfluxDB 详细信息 部分输入以下信息
    • URL: https://127.0.0.1:8086

    • 数据库: homeassistant

    • 用户: homeassistant

    • 密码: yourpassword

    • HTTP 方法: GET

  3. 点击 保存 & 测试 按钮以保存数据源并测试与 InfluxDB 的连接。

Home Assistant Grafana tutorial

步骤 7:创建 Grafana 仪表板

在 Grafana 中配置 InfluxDB 数据源后,您可以创建一个新的仪表板来可视化 Home Assistant 数据。为此,请按照以下步骤操作

  1. 点击侧边栏中的 创建 图标并选择 仪表板

  2. 点击 添加新面板 按钮,并选择 图表

  3. 点击 面板标题

  4. 查询 选项卡中,选择您在步骤中配置的 InfluxDB 数据源

  5. 查询编辑器 中输入您的 InfluxDB 查询。例如,您可能输入以下查询以显示温度传感器的温度

SELECT mean("value") FROM "temperature" WHERE ("entity_id" = 'sensor.temperature') AND $timeFilter GROUP BY time($__interval)

此查询从 Home Assistant 中的传感器.temperature 实体的温度测量中选择平均温度值,并将结果按时间间隔分组。

点击 应用 按钮以保存查询并显示结果。

通过选择不同的可视化选项、添加图例和注释等,根据需要自定义面板。

点击工具栏中的 保存 图标以将面板保存到您的仪表板。

您可以通过使用不同的 InfluxDB 查询来显示不同的数据,重复这些步骤添加更多面板到您的仪表板。

步骤 8:查看您的仪表板

创建您的 Grafana 仪表板后,您可以通过在网页浏览器中导航到 https://127.0.0.1:3000/dashboards 来查看它并从列表中选择仪表板。现在您应该在 Grafana 中看到您的 Home Assistant 数据的视觉表示!

结论:Home Assistant 和 Grafana

开始使用 Home Assistant 和 Grafana 需要在您的机器上安装 InfluxDB 和 Grafana,配置 InfluxDB 以接受来自 Home Assistant 的数据,安装 Home Assistant 中的 InfluxDB 集成,配置 Grafana 以连接到 InfluxDB 数据库,并创建一个 Grafana 仪表板来可视化您的数据。使用这些工具和技术,您可以轻松地实时监控和分析您的 Home Assistant 数据。

关于作者

本文由 Kennedy Gichuki 撰写。Kenny 是一位开发者和技术作家,喜欢 Python 和云基础设施。在获得 Azure 基础知识后,他继续学习云技术,并现在正在追求机器学习。当不在写作时,Kenny 可以在探索山丘和了解最佳越野车辆时找到。