138 lines
2.8 KiB
Markdown
138 lines
2.8 KiB
Markdown
# 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
|
||
```
|