|
Node-RED 是 Home Assistant (HA) 中最强大的自动化工具之一。基于 2025.12.2+ 版本,HA 的集成方式已经非常成熟。 HA系列主机发货之前均已经安装了Nodered端口为默认的1880 前置确认确保你的两个容器都已经正常运行。[1] 第一步:在 Home Assistant 中生成“长期访问令牌”这是 Node-RED 登录 HA 的“钥匙”。 打开 Home Assistant 网页版。 点击左下角的用户头像(你的个人资料页)。 向下滚动页面,找到 “长期访问令牌” (Long-Lived Access Tokens) 区域。 点击 “创建令牌” (Create Token)。 在弹出的窗口中输入名称,例如 NodeRED_Docker,点击确定。 重要: 系统会生成一串很长的字符。立即复制这串字符并保存好(例如先粘贴到记事本),因为关掉窗口后你就再也看不到了。
第二步:在 Node-RED 中安装 HA 插件Node-RED 原生不支持 HA,需要安装专门的节点包。 打开 Node-RED 网页版 (http://IP:1880)。 点击右上角的 “三道杠”菜单 -> 设置 (Settings)。 在左侧选择 “节点管理” (Palette)。 切换到 “安装” (Install) 选项卡。 在搜索框输入:node-red-contrib-home-assistant-websocket 点击右下角的 “安装” (Install),等待安装完成。 安装完成后,关闭设置窗口。你会发现左侧节点栏多出了很多蓝色的 “Home Assistant” 节点。
第三步:配置服务器连接 (最关键一步)这一步将把你的 Node-RED 容器与 HA 容器绑定。 在左侧节点栏找到 events: state (或者叫 events: all) 节点,把它拖到中间的工作区。 双击 这个节点,进入编辑界面。 在 Server 栏的右侧,点击 小铅笔图标 (Add new Server)。 进入配置界面,按照以下标准填写(针对 Docker 环境): Name (名称): 随意填,例如 My Home Assistant。 Base URL (基础地址): 输入 HA 的完整地址。 Access Token (访问令牌): 粘贴第一步里你保存的那长串字符。 Enable Heartbeat (启用心跳): 勾选(保持默认)。 Cache Location (缓存位置): 保持默认(通常是 LocalStorage)。
点击右上角的 “添加” (Add)。 回到节点编辑界面,点击右上角的 “完成” (Done)。 最后一步: 点击 Node-RED 界面右上角红色的 “部署” (Deploy) 按钮。
第四步:验证是否连接成功 第五步:创建一个简单的自动化(测试)我们做一个简单的测试:当“灯”打开时,在 Node-RED 调试窗口输出消息。 拖入节点: 连线: 配置 部署: 触发: 去 Home Assistant 页面把那个灯打开。 回到 Node-RED,看右侧边栏的 调试图标 (小虫子) 选项卡。 你应该能看到一条包含该设备信息的 JSON 消息弹出来。
进阶建议 (Home Assistant 2025+)虽然上述 WebSocket 方式已经完美够用,但为了更好的体验,建议在 Home Assistant 的 HACS (Home Assistant Community Store) 中安装 "Node-RED Companion" 集成。
-----------------------------------------接下来讲解Node-RED Companionh和Nod-red的关系-------------------------------------------------------------------------------------------
用最通俗的话来说:Docker 安装的是“房子和人”,而 HACS 安装的是“高级对讲机”。 它们根本不是替代关系,而是互补关系。 下面我用大白话给你拆解一下它们的区别: 1. 核心角色的区别 2. 功能上的区别(为什么要装 HACS 这个?)如果你只用 Docker 部署了 Node-RED,并且只安装了第二步提到的那个 websocket 节点包,你能做的是: 但是! 此时 Node-RED 在 HA 眼里只是一个“外人”。 如果你安装了 HACS 里的 Node-RED Companion,神奇的事情发生了: 3. 总结与建议为了让你看得更清楚,请看这个简单的关系图: 结论: 必须装: Docker 里的 HA 和 Node-RED(这是基础)。 必须装: Node-RED 里的 node-red-contrib-home-assistant-websocket 节点(不然连不上)。 强烈建议装: HACS 里的 Node-RED Companion。
小白教程建议:
先不要纠结 HACS 这个 Companion。你目前只用前文提到的 Docker 环境 + Node-RED 内部插件,已经足够你控制家里的灯光开关了。等你玩熟了,想在 Node-RED 里“创造”虚拟传感器并在 HA 界面显示时,再去装 HACS 的这个集成也不迟。
-------------HACS 里的 Node-RED Companion 安装之后是不是就不需要在docker里面安装nodered了?---------------------------------
完全不是! 这是新手最容易产生的误解。直接回答你的问题:安装了 HACS 的插件,你依然必须保留 Docker 里的 Node-RED。 如果不装 Docker 里的 Node-RED,你装的那个 HACS 插件就是个“光杆司令”,没有任何用处。 为了让你彻底明白,我们可以用**“手机和手机壳”或者是“游戏机和手柄”**来做比喻: 1. 形象的比喻问: 我买了“增强型手柄”(HACS插件),是不是就可以把“游戏机”(Docker容器)扔了?
答: 当然不行!扔了游戏机,手柄连什么? 2. 为什么你会产生这个误解?通常是因为看了一些基于 Home Assistant OS (HassOS) 的教程。 3. 如果你删了 Docker 里的 Node-RED 会发生什么?如果你现在去把 Node-RED 的 Docker 容器停掉或删掉: 总结请记住这个公式: 完整好用的系统 = Docker Node-RED (必须有) + Docker Home Assistant (必须有) + HACS Companion 集成 (选装,推荐)
所以,请保持你的 Docker 容器正常运行,不要删除它。
-----------------------------------------------------应用案例------------------------------------------------------
在 HA 中安装 Companion 集成这里的操作全部在 Home Assistant 网页端进行。 下载组件: 点击左侧栏的 HACS。 点击 集成 (Integrations)。 点击右下角的 “浏览并下载存储库” (Explore & Download Repositories) 蓝色按钮。 在搜索框输入:Node-RED。 找到 Node-RED Companion (通常作者是 Zachary Barett),点击进入。 点击右下角的 下载 (Download),再次点击下载确认。 等待下载完成后,必须重启 Home Assistant (设置 -> 系统 -> 右上角电源按钮 -> 重启 Home Assistant)。
添加集成: 重启完成后,进入 设置 (Settings) -> 设备与服务 (Devices & Services)。 点击右下角 添加集成 (Add Integration)。 搜索 Node-RED。 点击出现的 Node-RED Companion 图标。 系统通常会自动完成配置。如果它询问配置,直接点提交即可(它会自动侦测)。 安装成功后,你会在集成列表里看到 "Node-RED"。
第一阶段:实战教程——“凭空创造”一个虚拟开关为了演示 Companion 的强大,我们不仅是读取数据,我们要在 Node-RED 里创造一个开关,显示在 HA 上,并用它控制流程。 步骤 1:在 Node-RED 中找到“实体”节点打开 Node-RED 界面。 在左侧节点栏向下滚动,找到深蓝色的 Home Assistant Entities 分类(注意不是之前的 Home Assistant 灰色/浅蓝色分类)。 找到 entity (或者叫 sensor, switch 等独立节点,新版本通常合并了或者有独立图标) 节点。
步骤 2:配置虚拟开关步骤 3:连接逻辑这个开关在 HA 里被点击时,Node-RED 会收到消息。 步骤 4:见证奇迹 (验证)回到 Home Assistant 网页。 去 设置 -> 设备与服务 -> Node-RED 集成,点击“1 个设备”或“实体”。 你会发现多了一个叫 My Virtual Test 的开关! 把它添加到你的仪表盘(概览)上。 测试: 在 HA 仪表盘上点击这个开关(打开它)。 观察: 回到 Node-RED,看右侧调试窗口,你会收到一条 true 或 on 的消息。
第二阶段:进阶玩法——双向同步上面的例子只是 HA 控制 Node-RED。真正的强大在于 Node-RED 也可以改变这个开关的状态(比如自动化运行结束了,自动把开关关掉)。 场景模拟: 你在 HA 打开开关 -> 触发 Node-RED 里的一个 5 秒倒计时 -> 倒计时结束,Node-RED 自动把 HA 里的开关关掉。 修改连线: 部署并测试: 在 HA 打开开关。 等待 5 秒。 你会看到 HA 界面上的开关自动变回关闭状态。
总结Node-RED Companion 的核心价值在于:把 Node-RED 的逻辑处理能力,伪装成 HA 的原生设备。 按照上述步骤,你已经成功打通了这层“伪装”,可以开始构建复杂的自动化了!
|