用专门目录与 CI workflow 管理 ESPHome 设备配置
ESPHome 固件配置独立成目录并纳入 CI,与 Home Assistant 配置统一工程化管理
✓ 设备配置纳入 CI 统一管理
方案简介
这条配方来自 Frenck 的 Home Assistant 配置仓库:在以包模式模块化管理的 Home Assistant 配置工程中,为 ESPHome 设备配置提供专门的 esphome/ 目录,并配套专用 CI workflow。ESPHome 是用于配置 ESP 设备固件的开源体系,本仓库将其设备配置与智能家居主配置放在同一仓库内统一管理,并借助 GitHub Actions 实现自动化校验。适合同时使用 Home Assistant 与 ESPHome 自建设备、希望以工程化方式维护设备固件配置的用户。
亮点与能力
- 专门的
esphome/目录存放 ESPHome 设备配置。 - 为 ESPHome 配置提供专用 CI workflow。
- 与 Home Assistant 主配置同仓库共存,共享 lint 体系(yamllint、Prettier 等每次提交运行)。
- 配置每日对 Home Assistant Core 的
stable、beta、dev版本验证,设备配置改动同样处于受控流程中。
组成与分工
- ESPHome:负责 ESP 设备的固件配置定义,配置文件集中在
esphome/目录。 - Home Assistant:主智能家居平台,与 ESPHome 设备配置同一仓库管理。
- GitHub Actions:为 ESPHome 配置提供专属 workflow,并与其他配置共用提交时的 lint 检查。
实施步骤
1. 建立专门目录
在仓库根目录创建 esphome/ 目录,用于存放 ESPHome 设备配置,与本仓库结构保持一致:
txt
├── esphome/ # ESPHome device configurations
2. 配置专用 CI workflow
参照本仓库做法,为 ESPHome 配置建立专属的 GitHub Actions workflow,使设备配置变更也经过自动化校验,与主配置的每晚多版本验证、提交时 lint 机制并行运作。
使用与配置要点
- 新增或修改 ESPHome 设备时,配置文件统一放入
esphome/目录。 - 推送后通过 GitHub Actions 查看 ESPHome 专用 workflow 的执行结果验证配置正确性;仓库整体的 lint workflow(yamllint、remarklint、Prettier、actionlint、zizmor)也会在每次提交时运行。
优缺点
- ✓ 设备配置纳入 CI 统一管理
出处
本方案挖掘自开源项目 frenck/home-assistant-config,方案内容与实施命令均来自其 README 原文。
方案出处
frenck/home-assistant-config::house: My Home Assistant configuration, a bit different that others :) Be sure 2025 star :house: My Home Assistant configuration, a bit different that others :) Be sure to :star2: this repository for updates!
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。