# SigMesh Gateway - 部署脚本 ## 自动部署脚本 ### 部署到 Home Assistant ```bash #!/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) ```bash #!/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 ``` --- ## 快速部署命令 **一行部署**: ```bash cp -r custom_components/sigmesh_gateway ~/.homeassistant/custom_components/ && ha core restart ``` --- ## 部署检查清单 - [ ] HA 配置目录确认(默认 `~/.homeassistant`) - [ ] `custom_components` 目录存在 - [ ] 文件权限正确(homeassistant 用户可读) - [ ] 重启 HA 使集成生效 - [ ] 在 HA UI 中确认集成已加载 - [ ] 配置串口设备 - [ ] 验证实体创建成功 --- ## 常见问题 **Q: 集成不显示?** ```bash # 检查 manifest.json cat ~/.homeassistant/custom_components/sigmesh_gateway/manifest.json # 查看 HA 日志 tail -f ~/.homeassistant/home-assistant.log | grep sigmesh ``` **Q: 串口权限问题?** ```bash # 添加用户到 dialout 组 sudo usermod -a -G dialout homeassistant # 重启 HA ha core restart ``` **Q: 如何更新代码?** ```bash # 拉取最新代码 cd /home/ubuntu/workspace/cherry-studio/enginneer/impress_sig_mesh_hacs git pull origin main # 重新部署 ./deploy.sh # 重启 HA ha core restart ```