pyscript-Backend zur echten HA-Integration umgebaut (HACS-fähig)

Das Backend liegt jetzt als custom_components/audi_dashboard/ vor - eine
normale Home-Assistant-Integration mit Config-Flow, einer sensor-Plattform
und 18 Diensten. Damit ist die App über HACS installierbar; bis das Repo auf
GitHub gespiegelt ist (HACS spricht ausschließlich mit GitHub), installiert
homeassistant/installationspaket/install.ps1 denselben Ordner ohne HACS.

Fünf Installationsschritte entfallen ersatzlos: der pyscript:-Block, der
panel_custom:-Block, das Kopieren der Oberfläche nach www/, das langlebige
Zugriffstoken (der Verlauf wird direkt über die recorder-API gelesen) und
"pip install pypdf" (steht in manifest.json). Das Fahrzeugprofil legt die
Integration beim ersten Start aus ihrer Vorlage an.

Drei alte Schwächen sind dabei mit erledigt:
- Die Nutzlast landet nicht mehr in der Recorder-Datenbank
  (_unrecorded_attributes - das kann nur eine echte Entität).
- Eine laufende Fahrt überlebt einen Neustart (Store statt Arbeitsspeicher);
  fiel sie während eines Ausfalls ins Ende, schließt
  nach_neustart_fortsetzen() sie beim letzten aufgezeichneten Zeitpunkt.
- Sensor-Zuordnungen wirken sofort - die Zustandsbeobachter werden neu
  gebunden, der Neustart-Hinweis und der Neustart-Dienst sind weg.

Namensvertrag geändert, beide Oberflächen mitgezogen:
pyscript.audi_dashboard_x -> sensor.audi_dashboard_x,
pyscript.audi_dashboard_y -> audi_dashboard.y. Eine Companion-App vom alten
Stand findet nach dem Umstieg nichts mehr und muss neu gebaut werden; das
Panel liegt in der Integration und kann nicht driften.

Der selbstgebaute Updater entfällt - HACS ist die Update-Mechanik, die Home
Assistant kennt. Die Versionierung schrumpft auf eine Quelle: manifest.json.

Geprüft am laufenden Testcontainer (Container byteweise identisch mit dem
Repo): alle 18 Dienste, Panel, Config-Entry neu laden, Historienimport,
echter Shell-Beleg in-process, Neuinstallation im Wegwerf-Container blank mit
automatisch nachinstalliertem pypdf. Companion-App: tsc sauber, 112/112
Tests, beide Rauchtests gegen das laufende Backend grün. Belegparser 8/8.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-23 23:53:56 +02:00
co-authored by Claude Opus 5
parent 99cef7c393
commit d8b12da36d
136 changed files with 5289 additions and 17641 deletions
+6 -13
View File
@@ -1,11 +1,11 @@
# Wegwerf-Testinstanz fuer DataMetric360.
# Bildet zwei Datenquellen nach: den FMM003-Zuendungssensor (Fahrterkennung,
# aktiv per Standard in einstellungen.py) sowie die Entitaeten der
# im Auslieferstand nicht zugeordnet) sowie die Entitaeten der
# abgeloesten HACS-Integration TommiG1/HA_VAG-EU-Data-Act (Kilometerstand,
# Tankfuellstand, Tueren/Fenster - in einstellungen.py per Default leer,
# Tankfuellstand, Tueren/Fenster - alle im Auslieferstand leer,
# aber ueber das Setup-Menue weiterhin manuell zuordenbar). Ueber die
# input_*-Helfer sind die Werte zur Laufzeit aenderbar (Fahrterkennung,
# Reifenzaehler, Tankerkennung haengen an @state_trigger).
# Reifenzaehler, Tankerkennung beobachten die zugeordneten Entitaeten).
default_config:
@@ -20,16 +20,9 @@ http:
- capacitor://localhost # native Huelle iOS
- ionic://localhost # native Huelle Android
pyscript:
allow_all_imports: true
panel_custom:
- name: audi-dashboard-panel
sidebar_title: Mein Audi
sidebar_icon: mdi:car-sports
module_url: /local/audi-dashboard-panel.js?v=1
embed_iframe: false
trust_external_script: false
# Frueher standen hier ein pyscript:- und ein panel_custom:-Block. Beide sind
# mit dem Umbau zur eigenen Integration entfallen: sie meldet ihr Panel selbst
# an und braucht dafuer kein YAML.
input_number:
test_kilometerstand: