db3c870910
Der Docker-Container auf :18123 ist umbenannt (Ansage des Eigentuemers). Umgestellt sind nur die betriebsrelevanten Verweise: testumgebung/aufsetzen.sh NAME= testumgebung/README.md docker rm -f companion-app/vite.config.ts Kommentar am Entwicklungs-Proxy Die uebrigen ~120 Nennungen in AGENTS.md stehen in Verlaufsabschnitten und bleiben, wie sie geschrieben wurden - stattdessen eine bindende Notiz oben in der Datei, dass "audi_ha_test" in allen aelteren Abschnitten denselben Container meint. Sie haelt auch fest, dass aufsetzen.sh mit "docker rm -f" auf diesen Namen beginnt: ein Lauf loescht den Container samt allem, was darin aufgezeichnet ist. Geprueft: Portzuordnung 18123 unveraendert, Container startet unter dem neuen Namen sauber (Audi Dashboard 2026.9.6.9 eingerichtet, kein Traceback), Profil und Daten unberuehrt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
93 lines
3.4 KiB
Bash
Executable File
93 lines
3.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Setzt die Wegwerf-Testinstanz auf. Mehrfach ausfuehrbar.
|
|
# Siehe README.md im selben Ordner.
|
|
set -euo pipefail
|
|
|
|
HIER="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJEKT="$(dirname "$HIER")"
|
|
NAME="Data-Metric-360"
|
|
PORT="18123"
|
|
ZIEL="${AUDI_TEST_CONFIG:-${TMPDIR:-/tmp}/audi-ha-test-config}"
|
|
BASIS="http://localhost:${PORT}"
|
|
|
|
echo "==> Zielordner: $ZIEL"
|
|
rm -rf "$ZIEL"
|
|
mkdir -p "$ZIEL"
|
|
|
|
echo "==> Alten Container entfernen (falls vorhanden)"
|
|
docker rm -f "$NAME" >/dev/null 2>&1 || true
|
|
|
|
echo "==> Image laden"
|
|
docker pull ghcr.io/home-assistant/home-assistant:stable
|
|
|
|
echo "==> Container starten"
|
|
docker run -d --name "$NAME" -p "${PORT}:8123" -v "$ZIEL:/config" \
|
|
ghcr.io/home-assistant/home-assistant:stable >/dev/null
|
|
|
|
echo "==> Auf Home Assistant warten"
|
|
for _ in $(seq 1 60); do
|
|
if [ "$(curl -s -o /dev/null -w '%{http_code}' --max-time 3 "$BASIS/" || true)" != "000" ]; then
|
|
break
|
|
fi
|
|
sleep 5
|
|
done
|
|
|
|
echo "==> Nutzer anlegen und Token erzeugen"
|
|
TOKEN="$(node "$HIER/einrichten.mjs" "$BASIS")"
|
|
if [ -z "$TOKEN" ]; then
|
|
echo "FEHLER: kein Token erhalten" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Seit dem Umbau zur eigenen Integration (2026-08-23) faellt hier einiges weg,
|
|
# was frueher noetig war: pyscript herunterladen und entpacken, das Backend
|
|
# nach pyscript/ kopieren, die Oberflaeche nach www/ kopieren, ein
|
|
# Fahrzeugprofil aus der Vorlage anlegen, den Belegleser ablegen und das
|
|
# Zugriffstoken in eine Datei schreiben. Alles davon macht die Integration
|
|
# jetzt selbst - hier bleibt ein einziger Kopiervorgang.
|
|
echo "==> Integration einspielen"
|
|
cp "$HIER/konfiguration.yaml" "$ZIEL/configuration.yaml"
|
|
mkdir -p "$ZIEL/custom_components"
|
|
cp -r "$PROJEKT/custom_components/audi_dashboard" "$ZIEL/custom_components/"
|
|
find "$ZIEL/custom_components/audi_dashboard" -name __pycache__ -type d -exec rm -rf {} + 2>/dev/null || true
|
|
|
|
echo "==> Neu starten"
|
|
docker restart "$NAME" >/dev/null
|
|
|
|
echo "==> Auf Home Assistant warten"
|
|
for _ in $(seq 1 60); do
|
|
if [ "$(curl -s -o /dev/null -w '%{http_code}' --max-time 3 \
|
|
-H "Authorization: Bearer $TOKEN" "$BASIS/api/" || true)" = "200" ]; then
|
|
break
|
|
fi
|
|
sleep 5
|
|
done
|
|
|
|
# Der Konfigurationseintrag entsteht sonst nur ueber die Oberflaeche. Der
|
|
# Ablauf hat keine Eingabefelder, deshalb genuegen zwei Aufrufe: Ablauf
|
|
# starten, Ablauf mit leerem Formular bestaetigen.
|
|
echo "==> Integration hinzufuegen"
|
|
FLOW="$(curl -s -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
|
|
-d '{"handler":"audi_dashboard","show_advanced_options":false}' \
|
|
"$BASIS/api/config/config_entries/flow" | sed 's/.*"flow_id":"\([^"]*\)".*/\1/')"
|
|
if [ -z "$FLOW" ]; then
|
|
echo "FEHLER: Konfigurationsablauf liess sich nicht starten" >&2
|
|
exit 1
|
|
fi
|
|
curl -s -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
|
|
-d '{}' "$BASIS/api/config/config_entries/flow/$FLOW" >/dev/null
|
|
|
|
echo "==> Pruefen, ob die Entitaeten da sind"
|
|
ANZAHL="$(curl -s -H "Authorization: Bearer $TOKEN" "$BASIS/api/states" \
|
|
| tr ',' '\n' | grep -c '"entity_id":"sensor.audi_dashboard' || true)"
|
|
echo " $ANZAHL Entitaeten sensor.audi_dashboard_*"
|
|
|
|
echo "==> Token nach companion-app/.env.local schreiben"
|
|
printf 'VITE_TEST_URL=%s\nVITE_TEST_TOKEN=%s\n' "$BASIS" "$TOKEN" \
|
|
> "$PROJEKT/companion-app/.env.local"
|
|
|
|
echo
|
|
echo "Fertig. $BASIS · Benutzer test · Passwort testtest123"
|
|
echo "Token liegt in companion-app/.env.local (gitignored)."
|
|
echo "Sensoren zuordnen: in der App unter Einstellungen -> Fahrzeug einrichten -> Setup."
|