用途
本技能面向 Home Assistant 插件的开发、配置与发布,提供基于 Docker、Supervisor 集成和多架构支持的专家指导。它旨在帮助开发者避免常见错误,例如权限错误、配置校验失败、Docker 基础镜像问题、ingress 配置错误以及多架构构建失败。
主要能力
- 从零创建插件目录结构,包括 rootfs、S6 Overlay 服务目录等
- 编写 config.yaml 清单,定义名称、版本、slug、镜像、架构、端口、设备、选项、schema、权限、环境变量、webui、ingress 等字段
- 编写 Dockerfile,使用官方 Home Assistant 基础镜像并集成 S6 Overlay
- 使用 bashio 辅助函数进行日志记录和读取配置选项
- 通过 SUPERVISOR_TOKEN 调用 Supervisor API(获取插件信息、发送通知等)
- 配置多架构构建(build.yaml,包含 amd64、armv7、aarch64、armhf 等)
- 配置 ingress 反向代理以暴露 Web UI,并设置正确的反向代理请求头
- 创建包含多个插件的仓库并发布
- 通过 GitHub Container Registry 发布多架构镜像
使用方式
技能文档提供了分步骤的快速入门:
- 创建插件目录结构:
mkdir -p my-addon/{rootfs,rootfs/etc/s6-overlay/s6-rc.d/service-name} - 创建 config.yaml,填写必要字段
- 创建 Dockerfile,例如
FROM ghcr.io/home-assistant/amd64-base:latest,安装依赖、复制 rootfs、设置工作目录,并以/init作为 CMD - 创建 S6 服务脚本
rootfs/etc/s6-overlay/s6-rc.d/service-name/run,并赋予可执行权限
文档还给出了使用 bashio 记录日志、读取配置选项以及调用 Supervisor API 的代码示例,多架构构建的 build.yaml 示例,ingress 配置示例,以及 Supervisor API 端点列表。
适用场景
- 为 Home Assistant 创建自定义插件
- 配置插件 Dockerfile、ingress 反向代理
- 设置插件的多架构支持与发布流程
- 排查插件启动失败、API 401、配置无法持久化、端口冲突、架构不匹配等问题
限制
- 需要基础环境:Home Assistant 2024.1+、Docker(最新版)、S6 Overlay 3.x(包含在基础镜像中)
- 可选依赖:bashio(包含在基础镜像中)、python3 3.9+、nodejs 18+
- 插件必须使用官方 Home Assistant 基础镜像,并使用
{arch}占位符 - 持久化数据必须放在
/data/目录 - 支持的架构仅限:amd64、armv7、aarch64、armhf、i386
- 文档中未提供具体的收费、价格或效果承诺信息