Home Assistant 和 Node-RED 入门
作者:社区 / 开发者
2023 年 12 月 11 日
导航至
智能家居爱好者们,大家好!如果您对家庭自动化世界着迷,但又发现自己与复杂的脚本和代码作斗争,那么您有福了!今天,我们将深入探讨 Home Assistant 和 Node-RED 的绝妙组合。Home Assistant 是一个出色的开源家庭自动化平台,而 Node-RED 是一个用于连接物联网的可视化工具。它们结合在一起,使家庭自动化变得轻而易举。
好的,让我们卷起袖子开始吧!
步骤 1:设置 Home Assistant
首先,我们需要运行 Home Assistant。您可以将其安装在 Raspberry Pi、Linux 机器,甚至使用 VirtualBox 的 Windows PC 上。您可以在此处找到详细说明。安装完成后,设置一些设备。灯、开关、传感器,应有尽有!
步骤 2:安装 Node-RED
接下来,我们将 Node-RED 引入组合。在 Home Assistant 中,导航至Supervisor > Add-on Store。找到 Node-RED,安装它,然后点击Start。就这么简单!
步骤 3:Node-RED 和 Home Assistant,最佳搭档
Node-RED 启动后,点击 Open Web UI。Node-RED 界面将欢迎您。现在,确保 Node-RED 和 Home Assistant 能够对话。接下来,检查侧边栏中是否有小的 Home Assistant 图标。如果是绿色,恭喜!如果是红色,请检查 Home Assistant 中的加载项日志。它通常会解决任何连接问题。
步骤 4:您的第一个流程
是时候创建您的第一个流程了,这是 Node-RED 中自动化的行话。点击 + 图标创建一个新选项卡。将一个 events: state 节点(来自 Home Assistant 部分)拖到工作区上。双击它,将其命名为 Turn on light,选择您的灯实体,并将 If State 设置为 on。
然后,将一个 call service 节点拖到工作区上。将其命名为 Notify,将 Server 设置为 Home Assistant,Domain 设置为 notify,Service 设置为您的通知服务,并将 Data 设置为类似 {“message”: “The light is on”} 的消息。
将两个节点连接在一起,点击 Deploy,瞧!您已创建了一个自动化,每当您选择的灯打开时,它都会发送通知!
步骤 5:安装 InfluxDB
您需要一个强大的数据存储解决方案,这就是 InfluxDB 的用武之地。
InfluxDB 专为管理重度写入和查询负载而开发,是一个时间序列数据库,具有卓越的性能。本质上,它是一个专门为处理按时间顺序索引的时间戳或时间序列数据集而构建的数据库。听起来很复杂,对吧?别担心。它比您想象的要简单。
时间序列数据可以被看作是一系列数据点,这些数据点通常包括在一段时间内进行的连续测量。这种类型的数据随处可见。股票市场数据、来自电网的能量负载数据、服务器指标、传感器数据,以及(请敲响鼓点)家庭自动化数据都是时间序列数据的示例。
InfluxDB 的卓越之处在于其专门构建的设计。在处理时间序列数据时,它提供了令人难以置信的速度和灵活性。可以将其视为与全科医生相比的高技能专家。
InfluxDB 具有类似 SQL 的查询语言,使您可以更轻松地与数据交互。您可以执行各种操作,例如查找特定数据点或查找特定时间戳之间的数据点范围。
当在家庭自动化场景中使用 InfluxDB 时,例如与 Home Assistant 和 Node-RED 一起使用时,InfluxDB 真正闪耀。传感器数据读数,例如随时间变化的温度或湿度,或开关的开/关状态,都是时间序列数据。InfluxDB 允许您高效地存储、检索和分析这些数据,从而使您的家庭自动化设置更加强大。
与 Node-RED 一样,您可以直接从 Home Assistant Add-on Store 安装 InfluxDB。安装完成后,点击 Start,并确保它运行顺畅。
InfluxDB 安装完成后,确保 Watchdog 滑块处于开启状态,然后点击 Start。您可以通过检查页面底部的日志来验证它是否正在运行。
要访问 InfluxDB 仪表板,请点击顶部的 OPEN WEB UI。这将带您进入 InfluxDB 仪表板,您可以在其中创建数据库和用户并执行其他管理任务。
步骤 6:将 Node-RED 链接到 InfluxDB
接下来,我们将 Node-RED 连接到 InfluxDB。在 Node-RED 中,您需要安装 InfluxDB 节点。转到 Manage Palette > Install,搜索 node-red-contrib-influxdb,然后安装它。
创建一个新流程,将一个 influxdb out 节点拖到工作区上,然后双击它以配置与 InfluxDB 服务器的连接。如果 InfluxDB 和 Node-RED 在同一台机器上,请使用 localhost 作为主机。
步骤 7:在 InfluxDB 中存储数据
准备好记录一些数据了吗?太棒了!让我们创建一个流程,将来自传感器的温度数据记录到 InfluxDB 中。拖动一个 state changed 节点,为您的温度传感器配置它,并将其链接到您的 influxdb out 节点。
在 influxdb out 节点中将测量值设置为 temperature。现在,每当您的温度传感器更新时,Node-RED 都会将数据记录到 InfluxDB 中。很漂亮,不是吗?
步骤 8:实际示例
让我们看一个实际示例。
示例 1:智能温度控制
假设您有一个智能恒温器,并且您想根据一天中的时间和您是否在家来调节温度。以下是如何使用 Node-RED 实现此目的。
首先,创建一个包含 time-range-switch 节点的流程(您可能需要从 Manage Palette 安装 node-red-contrib-light-scheduler)。然后,为早晨、白天、晚上和夜间设置不同的范围。每个范围都连接到一个 call service 节点,该节点将恒温器设置为所需的温度。
接下来,添加一个 events: state 节点,该节点触发跟踪您是否在场的设备(例如您的智能手机)的状态更改。例如,如果您不在家,它可以触发一个 call service 节点,该节点将恒温器设置为节能温度。
示例 2:入侵警报
当您外出时在家中检测到运动时,您可以设置安全警报。首先,对您的在场检测使用 events: state 节点。然后,当您外出时,它会将全局变量 Away 设置为 true。
然后,创建一个由来自运动传感器的 events: state 节点触发的流程。接下来,添加一个 switch 节点,检查 Away 变量。如果为 true,则它会连接到一个 call service 节点,该节点发送通知或触发警报。
示例 3:使用 InfluxDB 跟踪功耗
如果您有测量功耗的智能插座,您可以将此数据记录到 InfluxDB 中以进行分析。
设置一个流程,使用为您的智能插座配置的 state changed 节点。将其连接到一个 influxdb out 节点,并将测量值设置为 power。现在,每次功耗发生变化时,您都会将功耗数据记录到 InfluxDB 中。
使用 InfluxDB 的查询功能,您可以分析此数据以了解您的功耗模式,甚至可以发现节能机会。
这些只是您可以使用 Home Assistant、Node-RED 和 InfluxDB 实现的一些示例。可能性实际上是无限的,因此请让您的创造力闪耀,并享受自动化您的智能家居的乐趣!
总结
好了,您已经了解了!您现在正走在像专业人士一样使用 Home Assistant、Node-RED 和 InfluxDB 自动化您的家庭的道路上。开始尝试不同的流程,您很快就会意识到这个出色三人组的潜力。
请记住,每个智能家居都是独一无二的。因此,请继续修补,继续探索,最重要的是,玩得开心!您会惊叹于您可以想出巧妙、富有创意且方便的自动化。因此,享受您在家庭自动化世界中的旅程吧!
这篇文章由 Juan Reyes 撰写。作为一名企业家、技术娴熟的工程师和心理健康倡导者,Juan 追求可持续的自我成长,体现了领导力、智慧和热情。凭借在科技行业超过 15 年的经验,Juan 有机会与日本和美国移动开发、Web 开发和电子商务领域的一些最杰出的参与者合作。