安装与使用 Home Assistant on OpenWrt 教程
项目介绍
Home Assistant on OpenWrt 是一个便捷的工具集合,旨在让你能够通过一条命令在运行OpenWrt固件(版本23.05及以上)的设备上部署最新版的Home Assistant (2024.3.x系列)。该项目特别优化了组件清单,仅包括最小必需的组件列表,以适应资源有限的环境。然而,它保留了MQTT、ESPHome和ZHA这些广泛用于智能家居解决方案的组件,确保了兼容性和实用性。
快速启动指南
前提条件
确保你的设备满足以下要求:
- 至少256MB存储空间
- 至少256MB RAM
- 已安装OpenWrt 23.05.0或更新版本
安装步骤
执行以下命令下载并自动安装Home Assistant:
wget https://raw.githubusercontent.com/openlumi/homeassistant_on_openwrt/23.05/ha_install.sh -O - | sh
脚本执行完毕并显示"Done"后,Home Assistant即被成功安装。服务将会自动启动,或你可以选择重启设备。完成所有组件加载后,可以通过默认的8123端口访问Web界面。初始安装的组件限于MQTT和ZHA;添加额外组件时,如果遇到依赖项问题,重启动Home Assistant可能解决。
ZHA在小米网关上的使用
该组件使用内部UART与ZigBee芯片通信。芯片必须刷入适当的固件才能与Home Assistant通信。推荐固件版本为v3.23。
在ZHA配置中使用 /dev/ttymxc1 端口,该端口连接到zigbee芯片。
在添加新设备之前必须擦除持久数据管理器(PDM),否则设备添加会失败。
在控制台中使用以下命令擦除PDM:
jntool erase_pdm
Zigbee端口不能被任何程序锁定,如ZHA或zigbee2mqtt。
注意:通过UI添加新组件后,可能需要重启Home Assistant以使其看到新安装的要求。例如,ZHA安装paho-mqtt,除非重启HA,否则不允许配置它。
启用其他组件和安装自定义组件
你可能希望向HA安装添加更多组件。在这种情况下,你必须从PyPI下载tar.gz文件,然后解压内容并将所需的组件复制到 /usr/lib/python3.11/site-packages/homeassistant/components。如果组件使用前端向导,你可能还需要取消注释 /usr/lib/python3.11/site-packages/homeassistant/generated/config_flows.py 中的相应行。
或者你可以在 /etc/homeassistant 中创建 custom_components 目录并将组件复制到那里。
尝试使用 pip3 手动安装 manifest.json 中的要求,以检查它是否安装且不需要预编译的C库。否则,你必须交叉编译python3依赖项并将其安装为 ipk 包。
如果依赖项已经通过opkg或pip3安装,你可能希望修复 manifest.json 中的严格依赖项为较弱版本或完全删除版本。
应用案例和最佳实践
应用案例:将OpenWrt路由器上的网络状态实时同步到Home Assistant中。例如,利用其集成的能力监控每个无线网络连接的设备数、WAN流量统计以及系统负载等。对于那些希望从路由器层面获得更深入智能家居数据的用户而言,这是非常实用的功能。通过配置Home Assistant中的自定义传感器和利用MQTT,可以轻易实现这些数据的采集和历史记录。
最佳实践建议定期检查Home Assistant及其依赖的更新,并在添加新组件前评估其对系统资源的影响。此外,定期备份配置是保持系统稳定性的关键操作。
典型生态项目
在Home Assistant的OpenWrt应用场景中,可以结合ESPHome轻松管理基于ESP微控制器的家庭自动化设备,或者利用MQTT作为消息总线,让家庭中的不同智能设备相互通信。另外,集成Glances监控插件可以扩展监控功能,不仅限于上述提到的指标,还能获取系统更加详细的状态信息,进一步丰富你的智能家居生态系统。
通过这样的配置,OpenWrt不仅是网络的守护者,也成为了智能家居控制中心的关键一环,实现了路由器与智能家居系统的深度整合。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0220
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0140
uni-appA cross-platform framework using Vue.jsJavaScript09
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03
