入门 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 上安装它。您可以在此处找到详细的说明here。安装完成后,设置一些设备。灯光、开关、传感器,您想要的都有了!
步骤 2:安装 Node-RED
接下来,我们将 Node-RED 加入到这个组合中。在 Home Assistant 中,导航到 Supervisor > 添加组件商店。找到 Node-RED,安装它,然后点击 启动。就这么简单!
步骤 3:Node-RED 与 Home Assistant,最佳拍档
Node-RED 启动后,点击打开 Web UI。Node-RED 界面将欢迎您。现在,请确保 Node-RED 和 Home Assistant 可以进行对话。接下来,检查侧边栏中的小 Home Assistant 图标。如果它是绿色的,恭喜!如果它是红色的,请回到 Home Assistant 中检查附加组件日志。它通常可以解决任何连接问题。
步骤 4:您的第一个流程
是时候创建您的第一个 流程(Node-RED 术语,指自动化)了。点击 + 图标创建一个新标签页。将来自 Home Assistant 部分的 events: state 节点拖放到工作区。双击它,将其命名为 打开灯,选择您的灯实体,并将 如果状态 设置为 开启。
然后,将一个 call service 节点拖放到工作区。将其命名为 通知,将 服务器 设置为 Home Assistant,将 域 设置为 notify,将 服务 设置为您通知服务,将 数据 设置为一个消息,例如 {“message”: “灯已开启”}。
将两个节点连接起来,点击 部署,搞定!您已创建了一个自动化,当您选择的灯开启时,它会发送通知!
步骤 5:安装 InfluxDB
您需要一个强大的数据存储解决方案,这正是 InfluxDB 的用武之地。
专门为管理大量的写入和查询负载而开发,InfluxDB 是一个性能卓越的时间序列数据库。本质上,它是一个专门用于处理按时间顺序索引的数据点的时间戳数据集的数据库。听起来很复杂,对吧?别担心,它比您想象的要简单。
时间序列数据可以想象成一系列数据点,通常包括在一段时间内连续测量的数据。这类数据无处不在。例如,股市数据、电网的能源负荷数据、服务器指标、传感器数据,以及(掌声,请)智能家居数据都是时间序列数据的例子。
InfluxDB的亮点在于其专门的设计。它在处理时间序列数据时提供了惊人的速度和灵活性。将其视为与全科医生相比的资深专家。
InfluxDB具有类似SQL的查询语言,这使得与数据交互变得更加容易。您可以进行各种操作,例如查找特定的数据点或查找特定时间戳之间的数据点范围。
InfluxDB在智能家居场景中表现出色,例如与Home Assistant和Node-RED一起使用。传感器数据读取,如温度或湿度随时间变化,或开关的开/关状态,都是时间序列数据。InfluxDB允许您高效地存储、检索和分析这些数据,使您的智能家居设置更加强大。
与Node-RED一样,您可以直接从Home Assistant插件商店安装InfluxDB。安装完成后,点击启动,确保其正常运行。
安装InfluxDB后,确保将看门狗滑块打开,然后点击启动。您可以通过查看页面底部的日志来验证其运行情况。
要访问InfluxDB仪表板,请点击顶部的打开Web UI。这会将您带到InfluxDB仪表板,您可以在其中创建数据库和用户并执行其他管理任务。
第6步:将Node-RED链接到InfluxDB
接下来,我们将连接Node-RED到InfluxDB。在Node-RED中,您需要安装InfluxDB节点。转到管理画布 > 安装,搜索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节点的流程(您可能需要从管理 画布中安装node-red-contrib-light-scheduler)。然后,为早上、白天、晚上和夜间设置不同的范围。每个范围都连接到一个设置恒温器到所需温度的call service节点。
接下来,添加一个触发设备(如您的智能手机)位置跟踪状态变化的 events: state 节点。例如,如果您不在家,它可以触发一个 call service 节点,将恒温器设置为节能温度。
示例 2:入侵警报
当您不在家时,如果家中检测到动作,您可以设置一个安全警报。首先使用您的 events: state 节点进行位置检测。然后,当您不在家时,它会将全局变量 Away 设置为 true。
然后,创建一个由动作传感器触发的 events: state 节点触发的流程。接下来,添加一个检查 Away 变量的 switch 节点。如果它是 true,则连接到发送通知或触发警报的 call service 节点。
示例 3:使用 InfluxDB 跟踪电力消耗
如果您有测量电力消耗的智能插头,可以将这些数据记录到 InfluxDB 以进行分析。
使用配置为您的智能插头的 state changed 节点设置一个流程。将其连接到设置测量为 power 的 influxdb out 节点。现在每次电力变化时,您都会将电力数据记录到 InfluxDB。
使用 InfluxDB 的查询功能,您可以分析这些数据,了解您的电力消耗模式,甚至识别节能机会。
这些只是 Home Assistant、Node-RED 和 InfluxDB 可以实现的一小部分功能。可能性几乎是无限的,所以发挥您的创造力,享受自动化智能家居的乐趣!
总结
好了,这就是全部内容!您现在正走在使用 Home Assistant、Node-RED 和 InfluxDB 专业化自动化家庭的道路上。开始尝试不同的流程,您很快就会意识到这个出色三合会的潜力。
记住,每个智能家居都是独一无二的。所以继续尝试,继续探索,最重要的是,享受其中!您会对您能够想出的聪明、创意和便利的自动化感到惊讶。所以享受您在智能家居世界的旅程!
本文由 Juan Reyes 撰写。作为一名企业家、熟练的工程师和心理健康倡导者,Juan 追求可持续的自我成长,体现领导力、智慧和激情。拥有超过 15 年的科技行业经验,Juan 有机会与日本和美国的一些最显赫的移动开发、网页开发和电子商务公司合作。