# 3. Die Service-Datei mit Platzhaltern generieren cat << 'EOF' > ./app/spannung.service [Unit] Description=Spannung Control Service After=network-online.target i2c.service Wants=network-online.target StartLimitIntervalSec=0 [Service] Type=simple ExecStartPre=/bin/bash -c 'for i in {1..10}; do i2cdetect -y 1 | grep -E "40:" | grep -q -E "\b48\b" && i2cdetect -y 1 | grep -E "40:" | grep -q -E "\b49\b" && exit 0; echo "warte auf ADS1115 Module..."; sleep 2; done; exit 1' # Diese Platzhalter werden beim Installieren auf dem Pi automatisch ersetzt: ExecStart={{TARGET_DIR}}/{{BINARY}} WorkingDirectory={{TARGET_DIR}} User={{TARGET_USER}} Restart=on-failure RestartSec=5s StartLimitIntervalSec=60s StartLimitBurst=3 StandardOutput=append:{{TARGET_DIR}}/spannung.log StandardError=append:{{TARGET_DIR}}/spannung.log [Install] WantedBy=multi-user.target EOF # 4. Ein automatisches Installations-Skript für den Pi im app-Ordner erstellen cat << 'EOF' > ./app/install.sh #!/bin/bash set -e echo "🚀 Starte automatische Einrichtung des Spannung-Monitors..." # Pfade und Benutzer auf dem aktuellen Pi ermitteln PI_DIR=$(pwd) PI_USER=$(whoami) # Architektur des Betriebssystems prüfen ARCH=$(uname -m) if [ "$ARCH" = "aarch64" ]; then BINARY="spannung-arm64" echo "🎯 64-Bit OS erkannt. Nutze: $BINARY" else BINARY="spannung-arm32_7" echo "🎯 32-Bit OS erkannt. Nutze: $BINARY" fi # Platzhalter in der Service-Datei direkt auf dem Pi ersetzen sed -i "s|{{TARGET_DIR}}|$PI_DIR|g" spannung.service sed -i "s|{{TARGET_USER}}|$PI_USER|g" spannung.service sed -i "s|{{BINARY}}|$BINARY|g" spannung.service echo "📝 Service-Datei wurde erfolgreich für diesen Pi konfiguriert." # Service in das Systemverzeichnis kopieren und aktivieren echo "⚙️ Kopiere Service-Datei nach /etc/systemd/system/..." sudo cp spannung.service /etc/systemd/system/spannung.service sudo systemctl daemon-reload sudo systemctl enable spannung.service echo "▶️ Starte den Dienst..." sudo systemctl restart spannung.service echo "✅ Fertig! Der Spannung-Monitor läuft und der Autostart ist aktiv." EOF chmod +x ./app/install.sh echo "📝 Service-Datei und install.sh generiert." echo "📂 Inhalt des fertigen app-Verzeichnisses:" ls -la app