#!/bin/bash set -e # CONFIG TZ="America/Sao_Paulo" CONFIG_ROOT="$HOME/ha-stack" DOCKER_COMPOSE_FILE="$CONFIG_ROOT/docker-compose.yml" Z2M_CONFIG_PATH="$CONFIG_ROOT/zigbee2mqtt/data/configuration.yaml" echo "🐳 Verificando instalação do Docker..." if ! command -v docker &> /dev/null; then echo "📦 Docker não encontrado. Instalando Docker..." curl -sSL https://get.docker.com | sh sudo usermod -aG docker $USER echo "⚠️ Docker instalado. Faça logout/login para aplicar permissões ou reinicie o Raspberry." fi if ! command -v docker-compose &> /dev/null; then echo "📦 docker-compose não encontrado. Instalando plugin..." mkdir -p ~/.docker/cli-plugins curl -SL https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-linux-aarch64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose echo "✅ docker-compose instalado." fi echo "🔧 Criando estrutura de pastas em: $CONFIG_ROOT" mkdir -p "$CONFIG_ROOT/homeassistant" mkdir -p "$CONFIG_ROOT/mosquitto/config" "$CONFIG_ROOT/mosquitto/data" "$CONFIG_ROOT/mosquitto/log" mkdir -p "$(dirname "$Z2M_CONFIG_PATH")" echo "🔍 Detectando dongle Zigbee..." dongle=$(ls /dev/serial/by-id/ 2>/dev/null || true) if [ -z "$dongle" ]; then echo "❌ Nenhum dongle encontrado em /dev/serial/by-id/" exit 1 fi dongle_path="/dev/serial/by-id/$dongle" case "$dongle" in *"Sonoff"*|*"CC2531"*) adapter="zstack" ;; *"ZBDongle-E"*|*"EZSP"*) adapter="ezsp" ;; *"ConBee"*|*"deCONZ"*) adapter="deconz" ;; *) adapter="zstack" ;; esac echo "✅ Dongle encontrado:" echo " Porta: $dongle_path" echo " Adapter: $adapter" echo "📝 Gerando configuration.yaml para Zigbee2MQTT..." cat > "$Z2M_CONFIG_PATH" < "$DOCKER_COMPOSE_FILE" <