2.8 KiB
2.8 KiB
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