Node-RED 是什么
Node-RED 是 IBM 开发的一个可视化编程工具,通过拖拽节点、连接流程来编程。它特别适合 IoT(物联网)场景,是 Home Assistant 自动化之外的一个强大补充。
安装 Node-RED
方式 1:在 Home Assistant 中安装
通过 HACS 安装 Node-RED 插件。
方式 2:独立安装
# 通过 Docker 安装 docker run -d -p 1880:1880 --name nodered nodered/node-red # 通过 npm 安装 npm install -g node-red
访问
安装后访问 http://你的IP:1880
界面介绍
- 节点面板 – 左侧,包含各种功能节点
- 流程画布 – 中间,拖拽节点、连接流程
- 信息面板 – 右侧,调试和节点信息
基础节点
常用节点
- inject – 手动触发或定时触发
- debug – 输出调试信息
- function – 编写 JavaScript 代码
- switch – 条件判断
- change – 修改消息内容
- http request – HTTP 请求
实战示例
示例 1:定时发送消息
节点: [inject (every day at 8:00)] -> [debug]
配置 inject 节点:
- Repeat: at a specific time
- Time: 08:00
示例 2:Home Assistant 实体控制
节点: [inject] -> [HA API: turn on light] -> [HA API: turn on fan]
配置 Home Assistant 节点:
- 添加「server」节点,配置 Home Assistant 地址
- 添加「call service」节点
- Domain: light
- Service: turn_on
- Entity ID: light.living_room
示例 3:条件触发
[温度传感器] -> [switch: > 30?] -> [开空调]
| -> [发通知]
示例 4:API 获取天气
[inject] -> [http request: 天气API] -> [function: 解析数据] -> [HA: 设置空调]
高级功能
Dashboard
Node-RED Dashboard 可以创建可视化仪表板:
# 安装 Dashboard npm install @node-red/node-red-dashboard # 常用 UI 节点 # ui_text - 文本显示 # ui_button - 按钮 # ui_slider - 滑块 # ui_gauge - 仪表盘 # ui_chart - 图表
子流程
将重复的流程封装为子流程,提高复用性。
在 Home Assistant 中集成
Node-RED 可以通过 HA 节点与 Home Assistant 深度集成:
- 监听 HA 实体状态变化
- 调用 HA 服务
- 发送 HA 事件
- 访问 HA 历史数据
总结
Node-RED 是可视化编程的强大工具,特别适合创建复杂的智能家居自动化流程。相比 YAML 配置,Node-RED 的图形界面更直观,调试更容易。建议配合 Home Assistant 使用,打造更强大的智能家居系统。