安装与使用 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 StartedRust0446
源启盛夏_AtomGit暑期开发者成长计划「源启盛夏」暑期校园开发者成长计划旨在激活校园开源力量,通过积分激励、认证扶持、资源倾斜等形式,引导高校组织和开发者完成「入驻 — 建项目 — 做贡献 — 获认证 — 得资源」的完整闭环。无论你是想带领社团入驻平台的组织者,还是希望用代码贡献证明自己的开发者,都能在这里找到属于你的成长路径。Markdown00
jiuwenswarmJiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0761
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0310
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
