Ölwechsel/Inspektion-Anzeige repariert, Selbst-Update der Integration gebaut

Zwei getrennte Themen in einem Commit, beide in derselben Sitzung entstanden:

1. Ölwechsel/Inspektion wurden komplett ausgeblendet ("kein Eintrag im
   Servicebuch"), sobald kein Servicebucheintrag vorlag - selbst wenn der
   zugeordnete Sensor eine gültige Fälligkeit meldete. In beiden Frontends
   prüfte die Anzeige nur den Servicebuch-Zweig, bevor sie die
   Fahrzeugmeldung überhaupt las. Jetzt steht die Fahrzeugmeldung für sich;
   fehlt zusätzlich ein Servicebucheintrag, übernimmt eine neue,
   fahrtenlog-basierte Prognose (kmProTagAusFahrten()/meldungsPrognose())
   die Hochrechnung statt der Servicebuch-Rate - deckelt auf die vom
   Fahrzeug selbst gemeldete Zeitgrenze, falls zu wenig gefahren wird.

2. install.ps1 als Update-Weg wird von Windows Smart App Control blockiert,
   ohne Umgehungsmöglichkeit. Die Integration lädt sich jetzt auf
   Tastendruck selbst von Gitea (aktualisierung.py), verifiziert das
   Manifest vor jedem Tausch und tauscht per os.rename mit automatischem
   Rollback bei Fehlern - install.ps1 bleibt nur noch für die
   Erstinstallation nötig. Zugangstoken über einen neuen OptionsFlow in
   entry.options, nie in configuration.yaml.

Nebenbei: mehrere seit der HACS-Ausschluss-Entscheidung liegen gebliebene
falsche HACS-Referenzen in Code-Kommentaren und einem UI-Text korrigiert.

Details, Sicherheitsbegründung und Verifikationsstand in AGENTS.md,
Abschnitte I und J.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-24 12:01:01 +02:00
parent 5ff33c92d9
commit fb251154c7
27 changed files with 1268 additions and 82 deletions
+12 -6
View File
@@ -55,7 +55,6 @@ Vergleich still falsch geworden statt laut.
manifest.json { "version": "2026.8.23.2" }
├─► Home Assistant führt sie als Version der Integration
│ └─► HACS vergleicht sie gegen das Repository und meldet Updates
├─► die Integration veröffentlicht sie als
│ sensor.audi_dashboard_app_version
@@ -97,7 +96,12 @@ ohne Netz darf keinen Fehlalarm auslösen.
Bündel) — ein Widerspruch, aus dem es ohne diesen Schritt keinen Ausweg
gibt. `install.ps1` prüft das seit 2026-08-24 selbst und warnt, falls
vergessen — aber besser, es passiert gar nicht erst.
3. Integration ausliefern: `homeassistant\installationspaket\Installieren.cmd`
3. Integration ausliefern: nach `git push` entweder in der App selbst unter
Einstellungen → Integration-Update auf „Auf Update prüfen" → „Update
installieren" (seit 2026-08-24, ersetzt install.ps1 als laufenden
Update-Weg — Windows Smart App Control blockiert dessen Ausführung
zuverlässig), danach Home Assistant neu starten; oder weiterhin
`homeassistant\installationspaket\Installieren.cmd` von Hand
(HACS scheidet aus — siehe Kasten oben, das Repository ist privat).
4. iOS-App für Xcode neu bauen (`npm run build`), damit eine über App Store
Connect / Sideload signierte Fassung dieselbe Zahl einkompiliert bekommt.
@@ -148,7 +152,9 @@ Fahrteintragung ungefragt die Oberfläche austauscht, wäre die falsche Sorte
Hilfsbereitschaft.
**HACS spielt hier keine Rolle und wird es auch nicht.** Das Update-Bündel
reist mit `install.ps1` (dem einzigen Installationsweg, siehe oben) genauso
mit wie mit einem hypothetischen HACS-Download — der Mechanismus hängt nicht
daran, wie die Integration selbst auf die Instanz kommt, nur daran, dass das
Bündel im Integrationsordner liegt.
reist mit jedem Weg, der die Integration ausliefert, automatisch mit —
`install.ps1` für die Erstinstallation ebenso wie das Selbst-Update seit
2026-08-24 (aktualisierung.py, ersetzt install.ps1 als laufenden Update-Weg,
siehe Abschnitt J in AGENTS.md) — der Mechanismus hängt nicht daran, wie die
Integration selbst auf die Instanz kommt, nur daran, dass das Bündel im
Integrationsordner liegt.