SuperAPI AI 工具集

ha-addon

部署与运维

查看项目

更新于 10-16 11:05

技能介绍

用途

本技能面向 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 发布多架构镜像

使用方式

技能文档提供了分步骤的快速入门:

  1. 创建插件目录结构:mkdir -p my-addon/{rootfs,rootfs/etc/s6-overlay/s6-rc.d/service-name}
  2. 创建 config.yaml,填写必要字段
  3. 创建 Dockerfile,例如 FROM ghcr.io/home-assistant/amd64-base:latest,安装依赖、复制 rootfs、设置工作目录,并以 /init 作为 CMD
  4. 创建 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
  • 文档中未提供具体的收费、价格或效果承诺信息