告别复杂配置:3步实现Home Assistant与Node-RED智能家居联动

告别复杂配置:3步实现Home Assistant与Node-RED智能家居联动

【免费下载链接】awesome-selfhost-docker 🚀 Curated list of open-source, self-hosted projects deployable with Docker and docker-compose. Your go-to resource for amazing self-hostable software. 【免费下载链接】awesome-selfhost-docker 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-selfhost-docker

你是否曾遇到这样的困扰:智能家居设备品牌繁多难以统一管理?自动化场景设置步骤繁琐门槛高?本文将带你通过Docker容器化部署,仅需3个步骤即可实现Home Assistant与Node-RED的无缝联动,让普通用户也能轻松打造个性化智能家居系统。读完本文你将获得:零代码搭建智能家居中枢的方法、5个实用自动化场景模板、设备状态可视化监控方案。

项目概述与准备工作

GitHub推荐项目精选 / aw / awesome-selfhost-docker是一个精选的开源自托管项目列表,特别收录了可通过Docker和docker-compose部署的应用。其中Home Automation分类下的两个核心项目将成为我们智能家居系统的基石:

Docker+开源项目

核心组件简介

项目描述项目路径
Home Assistant开源家庭自动化平台,支持1000+品牌智能设备Home Automation
Node-RED基于流程的编程工具,用于快速创建自动化逻辑Home Automation

环境准备清单

  • Docker Engine 20.10+及docker-compose工具
  • 至少2GB内存的设备(树莓派4B/PC/服务器均可)
  • 稳定的网络环境(建议设备通过有线连接)
  • Git工具(用于克隆项目仓库)

步骤1:部署Home Assistant容器

首先通过项目提供的Docker化方案部署Home Assistant,这是整个智能家居系统的"大脑":

# 克隆项目仓库
git clone https://gitcode.com/GitHub_Trending/aw/awesome-selfhost-docker.git
cd awesome-selfhost-docker

# 创建Home Assistant专用目录
mkdir -p ./homeassistant/config

# 启动Home Assistant容器
docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=Asia/Shanghai \
  -v ./homeassistant/config:/config \
  -p 8123:8123 \
  homeassistant/home-assistant:stable

容器启动后,访问http://设备IP:8123即可打开Home Assistant界面。首次使用需完成初始设置向导,系统会自动发现局域网内的智能设备。建议通过README.md查阅最新的部署指南,确保获得最佳兼容性。

步骤2:部署Node-RED实现流程自动化

Node-RED提供了可视化编程界面,让你无需编写代码即可创建复杂的自动化逻辑:

# 创建Node-RED数据目录
mkdir -p ./nodered/data

# 启动Node-RED容器
docker run -d \
  --name nodered \
  --restart=unless-stopped \
  -e TZ=Asia/Shanghai \
  -v ./nodered/data:/data \
  -p 1880:1880 \
  --link homeassistant:homeassistant \
  nodered/node-red:latest

访问http://设备IP:1880进入Node-RED编辑器。首次使用需安装Home Assistant插件:点击右上角菜单 > "管理面板" > " palette" > 搜索"node-red-contrib-home-assistant-websocket"并安装。

步骤3:实现设备联动与场景自动化

完成基础部署后,我们来创建第一个实用自动化场景:"离家模式",当检测到家庭成员全部外出时,自动关闭灯光并启动安防系统。

场景实现步骤

  1. 在Home Assistant中配置设备

    • 进入"设置" > "设备与服务" > "添加集成"
    • 分别添加你的智能灯、门窗传感器和安防摄像头
  2. 在Node-RED中创建自动化流程

[{"id":"abc123","type":"tab","label":"离家模式"},
{"id":"1","type":"server-state-changed","z":"abc123","name":"家庭成员状态","server":"homeassistant","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"person.*","entityidfiltertype":"regex","outputinitially":false,"state_type":"str","haltifstate":"not_home","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":150,"y":120,"wires":[["2"],[]]},
{"id":"2","type":"api-current-state","z":"abc123","name":"所有成员离家?","server":"homeassistant","version":3,"outputs":2,"halt_if":"0","halt_if_type":"num","halt_if_compare":"is","entity_id":"sensor.number_of_people_home","state_type":"num","blockInputOverrides":false,"outputProperties":[],"for":0,"forType":"num","forUnits":"minutes","x":380,"y":120,"wires":[["3"],[]]},
{"id":"3","type":"api-call-service","z":"abc123","name":"关闭所有灯光","server":"homeassistant","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"all","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":610,"y":120,"wires":[["4"]]},
{"id":"4","type":"api-call-service","z":"abc123","name":"启动安防系统","server":"homeassistant","version":3,"debugenabled":false,"service_domain":"alarm_control_panel","service":"arm_away","entityId":"alarm_control_panel.home","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":830,"y":120,"wires":[]}]
  1. 导入流程并测试
    • 在Node-RED中点击右上角菜单 > "导入"
    • 粘贴上述JSON代码并部署
    • 在Home Assistant中模拟家庭成员离家状态,观察设备是否按预期响应

进阶应用与最佳实践

推荐自动化场景模板

利用项目Home Automation分类下的资源,你还可以实现更多实用场景:

  • 早晨唤醒流程:逐步调亮灯光、拉开窗帘、播放新闻
  • 节能模式:无人房间自动关闭空调和灯光
  • 夜间模式:检测到用户入睡后关闭不必要设备
  • 环境监测:空气质量下降时自动开启空气净化器

系统维护与备份

为确保系统稳定运行,建议定期执行以下操作:

# 备份Home Assistant配置
tar -czf homeassistant_backup_$(date +%Y%m%d).tar.gz ./homeassistant/config

# 更新容器镜像
docker pull homeassistant/home-assistant:stable
docker pull nodered/node-red:latest

完整的备份策略可参考README.md中的"维护指南"部分,确保你的智能家居系统长期稳定运行。

总结与扩展

通过本文介绍的方法,你已成功搭建了基于Home Assistant和Node-RED的智能家居系统。这两个强大工具的组合,配合GitHub推荐项目精选 / aw / awesome-selfhost-docker中提供的其他开源项目,可进一步扩展系统功能:

访问项目主页可获取更多自托管应用,打造完全属于你的智能家居生态。如有疑问或需要交流经验,欢迎参与项目的社区讨论。

【免费下载链接】awesome-selfhost-docker 🚀 Curated list of open-source, self-hosted projects deployable with Docker and docker-compose. Your go-to resource for amazing self-hostable software. 【免费下载链接】awesome-selfhost-docker 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-selfhost-docker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值