Files
audi-app/testumgebung/README.md
T
Paul Nothaft 982bb04c1a Phase 1: reproduzierbare HA-Testumgebung als Skript
Die urspruengliche Wegwerf-Testinstanz war verloren, weil sie nur als
Anleitung existierte. testumgebung/aufsetzen.sh baut sie jetzt vollstaendig
neu auf: Container, Nutzer, langlebiges Token, pyscript als Custom Component,
Projektdateien und nachgebildete Fahrzeugsensoren als Template-Entitaeten,
die ueber Helfer zur Laufzeit steuerbar sind.

Verifiziert: pyscript veroeffentlicht alle acht Entitaeten, Fahrzeugsensoren
liefern Werte, beide Smoke-Tests gruen.
2026-08-11 10:44:50 +02:00

68 lines
2.8 KiB
Markdown

# testumgebung/ — Wegwerf-Home-Assistant für Entwicklung und Tests
Setzt eine vollständige Home-Assistant-Instanz in Docker auf, in der das
pyscript-Backend dieses Projekts echt läuft: eigene Entitäten, echte Service-Aufrufe,
nachgebildete Fahrzeugsensoren. Gedacht als Ziel für die Abnahmekriterien aus
`../UMSETZUNGSPLAN.md` (Phasen 1, 6, 9).
Die ursprüngliche Testinstanz aus der Entwicklung des HA-Panels war eine
Wegwerfinstanz ohne Skript und ist verloren gegangen — deshalb liegt der Aufbau
hier als ausführbares Skript statt als Anleitung.
## Aufsetzen
```bash
./aufsetzen.sh
```
Das Skript ist mehrfach ausführbar (löscht einen vorhandenen Container vorher).
Es lädt das offizielle Image, startet den Container auf **Port 18123**, legt per
API einen Testnutzer an, erzeugt ein langlebiges Zugriffstoken, installiert
pyscript als Custom Component, kopiert `../homeassistant/{pyscript,www,data}`
hinein und startet neu.
Am Ende schreibt es das Token nach `../companion-app/.env.local`
(Variable `VITE_TEST_TOKEN`, gitignored) — von dort holen es die
authentifizierten Tests.
**Zugang:** http://localhost:18123 · Benutzer `test` · Passwort `testtest123`
## Was nachgebildet wird
`konfiguration.yaml` bildet die Entitäten der HACS-Integration
`TommiG1/HA_VAG-EU-Data-Act` als Template-Sensoren nach, damit das Backend echte
Werte sieht. Steuerbar zur Laufzeit über Helfer — damit lassen sich die
`@state_trigger`-Abläufe wirklich auslösen:
| Helfer | Steuert | Wofür |
|---|---|---|
| `input_number.test_kilometerstand` | `sensor.audi_rs_4_avant_mileage` | Reifenzähler, Fahrtabschluss-Screening |
| `input_number.test_tankfuellstand` | `sensor.audi_rs_4_avant_fuel_level` | automatische Tankerkennung |
| `input_number.test_reichweite` | `sensor.audi_rs_4_avant_range_primary` | Übersichtsanzeige |
| `input_text.test_wlan` | `sensor.iphone_wifi_connection` | Fahrterkennung (Start/Ende) |
| `input_boolean.test_tuer_vl` | Tür vorne links | „sicher abgestellt" |
| `input_boolean.test_fenster_vl` | Fenster vorne links | „sicher abgestellt" |
| `input_boolean.test_entriegelt` | Türschloss vorne links | „sicher abgestellt" |
Beispiel — Fahrt auslösen (WLAN des Fahrzeugs verbinden, dann trennen):
```bash
T=$(grep VITE_TEST_TOKEN ../companion-app/.env.local | cut -d= -f2)
curl -X POST -H "Authorization: Bearer $T" -H "Content-Type: application/json" \
-d '{"entity_id":"input_text.test_wlan","value":"Audi_MMI"}' \
http://localhost:18123/api/services/input_text/set_value
```
Der WLAN-Name muss zu `fahrzeug.wlan_ssid` in
`audi_dashboard/fahrzeugprofil.json` passen.
## Aufräumen
```bash
docker rm -f audi_ha_test
```
Die Konfiguration liegt außerhalb des Repos unter dem im Skript gesetzten
`ZIEL`-Pfad; es werden keine echten Fahrzeugdaten verwendet, sondern
`fahrzeugprofil.example.json`.