impress_sig_mesh_hacs/DEPLOY.md
impressionyang db02581f5c docs: 添加部署指南文档
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 18:27:39 +08:00

2.8 KiB
Raw Permalink Blame History

SigMesh Gateway - 部署脚本

自动部署脚本

部署到 Home Assistant

#!/bin/bash
# deploy.sh - 部署到 Home Assistant

# 配置
HA_CONFIG_DIR="${HA_CONFIG_DIR:-$HOME/.homeassistant}"
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"

echo "=== SigMesh Gateway 部署脚本 ==="
echo "项目目录:$PROJECT_DIR"
echo "HA 配置目录:$HA_CONFIG_DIR"

# 创建目录
mkdir -p "$HA_CONFIG_DIR/custom_components"

# 复制集成文件
echo "复制集成文件..."
cp -r "$PROJECT_DIR/custom_components/sigmesh_gateway" \
      "$HA_CONFIG_DIR/custom_components/"

# 设置权限
echo "设置权限..."
chown -R $(id -u):$(id -g) "$HA_CONFIG_DIR/custom_components/sigmesh_gateway"

# 验证配置
echo "验证配置..."
if [ -f "$HA_CONFIG_DIR/custom_components/sigmesh_gateway/manifest.json" ]; then
    echo "✓ 部署成功"
    echo ""
    echo "下一步:"
    echo "1. 重启 Home Assistant: ha core restart"
    echo "2. 在 HA 中添加集成:设置 → 设备与服务 → 添加集成 → SigMesh Gateway"
else
    echo "✗ 部署失败"
    exit 1
fi

创建发布包(用于 HACS

#!/bin/bash
# release.sh - 创建 HACS 发布包

PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
RELEASE_DIR="$PROJECT_DIR/release"
VERSION="${1:-1.0.0}"

echo "=== 创建 HACS 发布包 ==="
echo "版本:$VERSION"

# 清理旧文件
rm -rf "$RELEASE_DIR"
mkdir -p "$RELEASE_DIR"

# 复制必要文件
cp -r "$PROJECT_DIR/custom_components" "$RELEASE_DIR/"
cp "$PROJECT_DIR/hacs.json" "$RELEASE_DIR/"
cp "$PROJECT_DIR/README.md" "$RELEASE_DIR/"
cp "$PROJECT_DIR/LICENSE" "$RELEASE_DIR/" 2>/dev/null || true

# 创建 zip 包
cd "$RELEASE_DIR"
zip -r "sigmesh_gateway.zip" ./*

echo "✓ 发布包创建成功:$RELEASE_DIR/sigmesh_gateway.zip"

保存后运行:
```bash
chmod +x deploy.sh
./deploy.sh

快速部署命令

一行部署:

cp -r custom_components/sigmesh_gateway ~/.homeassistant/custom_components/ && ha core restart

部署检查清单

  • HA 配置目录确认(默认 ~/.homeassistant
  • custom_components 目录存在
  • 文件权限正确homeassistant 用户可读)
  • 重启 HA 使集成生效
  • 在 HA UI 中确认集成已加载
  • 配置串口设备
  • 验证实体创建成功

常见问题

Q: 集成不显示?

# 检查 manifest.json
cat ~/.homeassistant/custom_components/sigmesh_gateway/manifest.json

# 查看 HA 日志
tail -f ~/.homeassistant/home-assistant.log | grep sigmesh

Q: 串口权限问题?

# 添加用户到 dialout 组
sudo usermod -a -G dialout homeassistant

# 重启 HA
ha core restart

Q: 如何更新代码?

# 拉取最新代码
cd /home/ubuntu/workspace/cherry-studio/enginneer/impress_sig_mesh_hacs
git pull origin main

# 重新部署
./deploy.sh

# 重启 HA
ha core restart