484f2ffe6d
Installieren.cmd (double-click) wraps install.ps1, which automates steps 1-3 of ANLEITUNG.md: find the HA config share, copy pyscript/, data/ -> audi_dashboard/ and www/, merge the configuration.yaml snippet, optionally write ha_token.txt. The .cmd wrapper exists because double-clicking a .ps1 opens it in an editor and the execution policy blocks it; the bypass applies to that one call only. Designed to be safe to re-run: - Never overwrites fahrzeugprofil.json, fahrten.jsonl, tankvorgaenge.jsonl, entitaeten.json or ha_token.txt, so re-running on a live install keeps the vehicle profile, trips, fills and sensor mapping. - configuration.yaml is backed up to .bak first; the inserted part sits between marker lines and gets replaced instead of appended twice. - If pyscript: or panel_custom: are already there from another source, the file is left untouched and the script prints what to merge by hand - duplicate top-level keys would be invalid YAML and HA would not start. - Aborts before writing if the target has no configuration.yaml. Steps that cannot be automated from a Windows share (HA restart, pip install pypdf, sensor mapping) are collected into a closing to-do list. -Pruefen shows what would happen without writing. install.ps1 is stored UTF-8 *with* BOM - PowerShell 5.1 reads scripts as ANSI otherwise and mangles the umlauts; the files it writes stay BOM-less. Verified against a fake config tree: fresh install, re-run idempotency, existing-data preservation, foreign-key refusal, wrong-directory abort, and the merged configuration.yaml parses as valid YAML. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
122 lines
4.3 KiB
Markdown
122 lines
4.3 KiB
Markdown
# Kurzanleitung — Installation auf einer neuen Home-Assistant-Instanz
|
||
|
||
Alle Dateien, die dafür nötig sind, liegen schon in diesem Ordner. Ausführliche
|
||
Erklärungen, Troubleshooting und Hintergründe stehen in `../INSTALL.md` — hier
|
||
nur die Checkliste.
|
||
|
||
## Voraussetzungen
|
||
|
||
- HACS installiert, darüber **pyscript** installiert (HACS → Integrationen →
|
||
„pyscript" suchen → Download → HA neu starten)
|
||
- Das **Samba-Share-Add-on** in HA läuft, damit `\\<HA-IP>\config` vom PC aus
|
||
erreichbar ist
|
||
|
||
---
|
||
|
||
## Der schnelle Weg: `Installieren.cmd`
|
||
|
||
**Doppelklick auf `Installieren.cmd`** — das erledigt die Schritte 1–3 unten von
|
||
selbst: es sucht die HA-Instanz im Netz (`\\homeassistant\config` und die
|
||
üblichen Alternativen, sonst fragt es nach dem Pfad), kopiert `pyscript\`,
|
||
`data\` → `audi_dashboard\` und `www\`, trägt die beiden Blöcke in die
|
||
`configuration.yaml` ein und listet am Ende auf, was noch von Hand zu tun ist
|
||
(Neustart, Token, Sensoren zuordnen).
|
||
|
||
Was es dabei **nicht** tut:
|
||
|
||
- Bestehende Daten überschreiben. `fahrzeugprofil.json`, `fahrten.jsonl`,
|
||
`tankvorgaenge.jsonl`, `entitaeten.json` und `ha_token.txt` bleiben
|
||
unangetastet — ein zweiter Lauf auf einer laufenden Installation ist deshalb
|
||
gefahrlos.
|
||
- Die `configuration.yaml` blind verändern. Sie wird vorher nach
|
||
`configuration.yaml.bak` gesichert, und stehen dort schon eigene
|
||
`pyscript:`- oder `panel_custom:`-Einträge, fasst das Skript sie gar nicht an
|
||
und sagt stattdessen, was zu ergänzen ist (zwei gleiche Top-Level-Schlüssel
|
||
wären ungültiges YAML — HA würde nicht mehr starten).
|
||
|
||
Erst schauen, was passieren würde, ohne etwas zu schreiben:
|
||
|
||
```powershell
|
||
.\install.ps1 -Pruefen
|
||
```
|
||
|
||
Mit festem Ziel und Token in einem Rutsch:
|
||
|
||
```powershell
|
||
.\install.ps1 -Ziel "\\192.168.1.50\config" -Token "eyJhb..."
|
||
```
|
||
|
||
Danach weiter bei **Schritt 3** (Token, falls nicht übergeben), **4** und **5**.
|
||
|
||
---
|
||
|
||
## Der Weg von Hand
|
||
|
||
Falls `Installieren.cmd` nicht durchläuft oder lieber nachvollziehbar
|
||
Schritt für Schritt gearbeitet werden soll:
|
||
|
||
## 1. Dateien kopieren
|
||
|
||
Ziel ist das `config`-Verzeichnis der neuen HA-Instanz, z. B. über das
|
||
Samba-Share-Add-on (`\\<HA-IP>\config`):
|
||
|
||
| Aus diesem Ordner | Nach |
|
||
|---|---|
|
||
| `pyscript\` | `\\<HA-IP>\config\pyscript\` |
|
||
| `data\` | `\\<HA-IP>\config\audi_dashboard\` (**umbenennen** von `data` zu `audi_dashboard`) |
|
||
| `www\` | `\\<HA-IP>\config\www\` |
|
||
|
||
In `audi_dashboard\` danach `fahrzeugprofil.example.json` zu
|
||
`fahrzeugprofil.json` umbenennen — die Platzhalter darin lassen sich nach dem
|
||
ersten Start direkt in der App unter **Einstellungen → Fahrzeug einrichten**
|
||
eintragen.
|
||
|
||
## 2. configuration.yaml ergänzen
|
||
|
||
Die beiden Blöcke aus `configuration_snippet.yaml` (`pyscript:` und
|
||
`panel_custom:`) in die bestehende `configuration.yaml` übernehmen — nicht
|
||
ersetzen. Falls dort schon `pyscript:` existiert, nur `allow_all_imports: true`
|
||
ergänzen.
|
||
|
||
## 3. Long-Lived Access Token
|
||
|
||
Profil-Avatar (unten links) → „Long-lived access tokens" → Token erstellen →
|
||
Wert in eine neue Datei `audi_dashboard\ha_token.txt` einfügen (nur der Token,
|
||
keine Anführungszeichen). Wird fürs Kilometerstand-Screening gebraucht.
|
||
|
||
## 4. Neu starten
|
||
|
||
**Einstellungen → System → Neu starten.**
|
||
|
||
## 5. Sensoren zuordnen
|
||
|
||
Nach dem Neustart sollte „Mein Audi" in der Sidebar erscheinen. Dort:
|
||
**Einstellungen → Fahrzeug einrichten → Einrichten → „Setup — Sensoren
|
||
zuordnen"**. Zwingend für die Fahrterkennung: der Zündungs-/ACC-Sensor
|
||
(`binary_sensor`, meist vom Teltonika FMM003). Alles Weitere ist optional —
|
||
ohne zugeordneten Sensor zeigt die App „unbekannt" statt eines Werts.
|
||
|
||
## 6. Optional: Beleg-Parser
|
||
|
||
Nur nötig, wenn Shell-Tankbelege hochgeladen werden sollen: im Terminal &
|
||
SSH-Add-on (oder `docker exec`) `pip install pypdf` ausführen.
|
||
|
||
## Künftige Updates
|
||
|
||
Nicht diesen Ordner erneut kopieren — stattdessen `..\update.ps1` aus dem
|
||
Hauptprojekt verwenden:
|
||
|
||
```powershell
|
||
..\update.ps1 -Ziel "\\<HA-IP-Adresse>\config"
|
||
```
|
||
|
||
Kopiert `pyscript\` und alle `www\`-Dateien (inkl. `audi-dashboard-ios.css`
|
||
und `badges\`, die früher hier im Skript fehlten), lässt `data\`/
|
||
`audi_dashboard\` unangetastet. pyscript lädt automatisch neu, fürs Frontend
|
||
reicht ein normales Neuladen der Seite (F5).
|
||
|
||
---
|
||
|
||
Details, Screenshots-Ersatz-Erklärungen und die vollständige
|
||
Troubleshooting-Tabelle: siehe `../INSTALL.md`.
|