OTA-Updates für die iOS-App; HACS-Fehlannahme korrigiert
HACS kann laut eigener Dokumentation grundsätzlich nicht mit privaten GitHub-Repositories arbeiten (hacs.xyz/docs/faq/private_repositories) - keine Ausnahme für Tokens oder verbundene Konten. Meine frühere Annahme, HACS käme damit zurecht, wenn es unter dem richtigen Konto angemeldet ist, war falsch. Da das Repository aus Lizenzgründen privat bleiben muss (Audi-Hausschrift, Typenschilder), ist install.ps1 damit nicht die Rückfallebene, sondern der einzige Installationsweg - README, INSTALL.md, ANLEITUNG.md, install.ps1 und VERSIONIERUNG.md korrigiert. Oberflächen-Updates für die iOS-App laufen jetzt ohne Xcode: @capgo/capacitor-updater eingebaut, ein Update-Abschnitt in den Einstellungen lädt ein neues Bündel und tauscht die Oberfläche aus. Kein Selbstlauf (autoUpdate: false) - nur auf Tastendruck, nie während der Benutzung. Das Bündel liegt in der Integration selbst (custom_components/audi_dashboard/frontend/app/), nicht unter /local/: so reist es bei jeder Installation automatisch mit, ohne zweiten Auslieferungsweg. Gebaut von companion-app/scripts/ota-paket.ps1 (neuer Befehl: npm run ota), gemeldet über sensor.audi_dashboard_app_version (neues Feld daten.buendel). Ein echter Bug beim Bauen gefunden: [IO.Compression.ZipFile]::CreateFrom- Directory schreibt unter Windows PowerShell 5.1 Backslashes in die Zip-Einträge - iOS hätte das Archiv falsch entpackt. Behoben, indem die Einträge von Hand mit "/" geschrieben werden. Rückfallebene: notifyAppReady() läuft erst, wenn React nachweislich gerendert hat (App.tsx). Kommt diese Meldung nicht, rollt das Plugin nach 20 Sekunden von selbst auf das vorherige Bündel zurück. Am laufenden Testcontainer verifiziert: die ausgelieferte Zip hasht exakt auf den in bundle.json hinterlegten Wert, 13 Einträge, index.html in der Wurzel, keine Backslashes, keine Beschädigung. tsc sauber, 117/117 Tests (5 davon neu für buendelPasst() - dabei eine echte Lücke gefunden: die Funktion hätte bei unbekannter eigener Version fälschlich ein Update angeboten, jetzt genauso vorsichtig wie versionVergleichen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+15
-20
@@ -1,8 +1,17 @@
|
||||
# Installation — Schritt für Schritt
|
||||
|
||||
Zwei Wege führen zum selben Ergebnis: HACS lädt den Ordner
|
||||
`custom_components/audi_dashboard/` aus dem Repository, das Skript kopiert
|
||||
denselben Ordner von der Festplatte. Was danach passiert, ist identisch.
|
||||
HACS scheidet für dieses Repository aus — nicht als Vorbehalt, sondern nach
|
||||
eigener Dokumentation von HACS: „Private GitHub repositories can not be used
|
||||
with HACS at all" (hacs.xyz/docs/faq/private_repositories), ohne Ausnahme für
|
||||
Tokens oder verbundene Konten. Das Repository ist privat, weil es die
|
||||
Audi-Hausschrift und die Typenschilder enthält, die nur für diese eine
|
||||
private Installation lizenziert sind — öffentlich machen ist deshalb keine
|
||||
Option.
|
||||
|
||||
Es gibt also nur einen Weg: das Skript unten kopiert
|
||||
`custom_components/audi_dashboard/` von der Festplatte in die Instanz. Das
|
||||
ist keine Verlegenheitslösung — es prüft dieselben Dinge, die HACS auch
|
||||
prüfen würde, und derselbe Aufruf installiert und aktualisiert.
|
||||
|
||||
Wer von der früheren pyscript-Fassung kommt: [Umstieg](#umstieg-von-der-pyscript-fassung)
|
||||
weiter unten. Die Fahrzeugdaten bleiben dabei, wo sie sind.
|
||||
@@ -13,7 +22,7 @@ weiter unten. Die Fahrzeugdaten bleiben dabei, wo sie sind.
|
||||
|
||||
- Home Assistant 2025.1 oder neuer
|
||||
- Zugriff auf das `config`-Verzeichnis (Samba-Add-on, SSH oder ein
|
||||
gemounteter Pfad) — nur für den Weg ohne HACS
|
||||
gemounteter Pfad)
|
||||
- Mindestens eine Datenquelle, die den Zündungs-/ACC-Status des Fahrzeugs
|
||||
als `binary_sensor` meldet. Ohne sie läuft die App, erkennt aber keine
|
||||
Fahrten.
|
||||
@@ -25,21 +34,7 @@ langlebiges Zugriffstoken, ein `pip install` im Container und Einträge in der
|
||||
|
||||
---
|
||||
|
||||
## Weg A — über HACS
|
||||
|
||||
1. HACS → **Integrationen** → Menü oben rechts → **Benutzerdefinierte
|
||||
Repositories**
|
||||
2. Repository-URL eintragen, Kategorie **Integration**, hinzufügen
|
||||
3. **Audi Dashboard** suchen und herunterladen
|
||||
4. Home Assistant neu starten
|
||||
|
||||
**Hürde, die man kennen muss:** HACS spricht ausschließlich mit GitHub —
|
||||
`github.com` und `api.github.com` stehen fest im Code, es gibt keinen
|
||||
Schalter für Gitea, GitLab oder eine selbst gehostete Instanz. Liegt das
|
||||
Repository woanders, findet HACS es auch als benutzerdefiniertes Repository
|
||||
nicht, und es bleibt Weg B.
|
||||
|
||||
## Weg B — ohne HACS, per Skript
|
||||
## Installation per Skript
|
||||
|
||||
Vom Windows-Rechner aus, der das `config`-Verzeichnis erreicht:
|
||||
|
||||
@@ -160,7 +155,7 @@ Dateiformate sind unverändert. Die Integration liest den bestehenden Bestand
|
||||
einfach weiter — es gibt keine Migration und damit auch keinen Weg, dabei
|
||||
etwas zu verlieren.
|
||||
|
||||
1. Integration installieren (Weg A oder B oben)
|
||||
1. Integration installieren (siehe oben)
|
||||
2. Aus der `configuration.yaml` entfernen: den `pyscript:`-Block und den
|
||||
`panel_custom:`-Eintrag `audi-dashboard-panel`. Bleiben sie stehen, gibt
|
||||
es den Sidebar-Eintrag zweimal, und beide Backends schreiben in dieselben
|
||||
|
||||
Reference in New Issue
Block a user