Files
audi-app/testumgebung/README.md
T
tobias 25d1cebd12 Fuenf gemeldete Bugs behoben: Haubenschloss/Tuerschloesser entfernt, Bestaetigungsdialog-Transparenz, geteilte FMM003-Koordinaten, Laedt-Haenger, generischer Beleg-Parser
Entfernt Haubenschloss-/Tuerschloss-Erkennung dauerhaft aus Setup-Katalog und
Sicherheitscheck (auf ausdruecklichen Wunsch, nicht nur leer/unzuordenbar wie
der Rest der abgeloesten VAG-Integration). Behebt eine durchscheinende
Bestaetigungs-Sheet ("Doppelt zugeordnet" u.a.) - derselbe --tile-2-
Transparenz-Fehler, der fuer das Setup-Popup schon behoben war, hier
nachgezogen. Ergaenzt einen zweiten GPS-Pfad (STANDORT_LAT_SENSOR/
STANDORT_LON_SENSOR) fuer Integrationen wie flespi, die Breiten-/Laengengrad
als zwei eigene Sensoren statt als device_tracker-Attribute liefern. Haertet
den bekannten "Laedt ..."-Haenger beim App-Start zusaetzlich ab: Tab-Klicks
pruefen jetzt aktiv nach, ob Daten inzwischen da sind. Ergaenzt
shell_beleg_parser.py um einen stationsunabhaengigen Fallback fuer
Tankbelege unbekannter Formate (Adresse/Gesamtbetrag/Menge/Rabatt-Herleitung
wie vom Nutzer vorgegeben) - die bestehende Shell-Erkennung bleibt
unveraendert und weiterhin durch die zehn echten Testbelege abgedeckt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-16 11:32:15 +02:00

3.3 KiB

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

./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 zwei Datenquellen 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_boolean.test_zuendung binary_sensor.testzone_fmm003_engine_ignition_or_acc_status Fahrterkennung (Start/Ende, einstellungen.ZUENDUNG_SENSOR)
input_number.test_kilometerstand sensor.audi_rs_4_avant_mileage Reifenzähler, Fahrtabschluss-Screening (nur bei manueller Zuordnung über das Setup-Menü, KM_SENSOR ist per Default leer)
input_number.test_tankfuellstand sensor.audi_rs_4_avant_fuel_level automatische Tankerkennung (nur bei manueller Zuordnung, TANK_SENSOR ist per Default leer)
input_number.test_reichweite sensor.audi_rs_4_avant_range_primary Übersichtsanzeige (nur bei manueller Zuordnung, RANGE_SENSOR ist per Default leer)
input_boolean.test_tuer_vl Tür vorne links „sicher abgestellt" (nur bei manueller Zuordnung)
input_boolean.test_fenster_vl Fenster vorne links „sicher abgestellt" (nur bei manueller Zuordnung)

Die Kilometerstand-/Tankfüllstand-/Reichweite- und Tür-/Fenster-Sensoren bilden die Entitäten der abgelösten HACS-Integration TommiG1/HA_VAG-EU-Data-Act nach (siehe einstellungen.py) — für den Standardbetrieb ohne Bedeutung, aber weiterhin nützlich, um die manuelle Zuordnung über das Setup-Menü zu testen. (Türschloss- und Haubenschloss-Erkennung wurden 2026-08-16 ersatzlos aus der App entfernt, siehe AGENTS.md.)

Beispiel — Fahrt auslösen (Zündung/ACC an, dann aus):

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_boolean.test_zuendung"}' \
  http://localhost:18123/api/services/input_boolean/turn_on

Aufräumen

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.