Home Assistant + ESPHome+ GitHub Actions

用专门目录与 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 的 stablebetadev 版本验证,设备配置改动同样处于受控流程中。

组成与分工

  • 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 原文,安装使用请遵循项目开源协议。